What you need
- A Xero organisation. The app works with UK organisations: UK VAT rates and UK addresses.
- An OpenAI API key. OpenAI turns your recordings into text and works out the details. You pay OpenAI directly for what you use, which is usually about a penny per invoice and less for a contact.
Getting an OpenAI API key
- Sign in or sign up at platform.openai.com.
- Add a small amount of credit under Settings → Billing (£5 lasts most people months). Turning off auto-recharge means you can never be charged more than you've added.
- Go to API keys, create a key, and copy it.
- Paste it into the app when asked. It's checked once, then kept in your iPhone's Keychain.
More detail, including what it costs and how to keep your spending and your key safe: the API key guide.
Getting started
- Open the app and tap Connect to Xero. Sign in to Xero and choose your organisation.
- Paste your OpenAI key and tap Validate.
- On the home screen, tap Start under Add New Contact or Create Invoice. Hold the mic while you speak, release it, and check what the app understood. Confirm each step, then review and submit.
Tips for good results
- Hold the button for the whole sentence, then let go.
- Say prices the way you would to a customer: "5 pallets of bricks at £100 each, inclusive of VAT", or "2 hours of labour at £40". With nothing said about VAT, standard 20% is added on top.
- Got one word wrong? Use Edit this item, or tap the field, instead of recording again.
Messages you might see
"Xero didn't connect your organisation … During launch, v2x Invoice can only connect a limited number of Xero organisations, so it may be full."
While v2x Invoice is new, Xero lets it connect only a few organisations in total. If you see this, it has probably reached that limit. Email support@voicetoinvoiceapp.com and we'll let you know when a place is free. The text in brackets is Xero's own reason, which helps if something else went wrong.
"No internet connection. Check your signal and try again."
The app couldn't reach Xero or OpenAI. Your work so far is saved as a draft, so try again when you have signal.
"Your OpenAI account has no credit left. Add credit at platform.openai.com, then try again."
Top up under Settings → Billing at platform.openai.com, then record again.
"OpenAI is busy right now. Please try again in a moment."
A temporary limit at OpenAI. Wait a few seconds and try again.
The app asks for your OpenAI key again
OpenAI rejected the saved key, for example because it was deleted or replaced. Create a new key and paste it in.
The app asks you to connect to Xero again
Your Xero connection ended: it was removed in Xero, or Xero asked for a fresh sign-in. Tap Connect to Xero and sign in again. Drafts are kept.
"I couldn't hear anything. Check your microphone isn't connected to a Bluetooth device, then try again."
The recording was almost silent. This usually means headphones or a car's Bluetooth have taken the microphone. Disconnect them, or speak closer to the phone.
"Hold the button while you speak."
The recording was too short. Hold the mic for the whole sentence, then release.
"Recording stopped because the app was interrupted. Please try again."
A call, Siri, Control Centre or leaving the app stopped the recording. Nothing was sent; record again.
"Microphone access is off. Allow it in Settings to record."
Tap Open Settings in the app, or go to iPhone Settings → v2x Invoice → Microphone, and turn it on.
"I didn't catch the …, please try again"
Your recording didn't include that detail (for example the price). Record again and include it, or type it in.
"A contact called … already exists in Xero"
Xero contact names must be unique. Change the name, or edit the existing contact from Contacts on the home screen.
Xero refuses an invoice or contact
The app shows Xero's own reason, for example an account code that doesn't exist in your organisation. Fix that detail and submit again.
Your data
There's no account with us and we receive none of your data. See the privacy policy. To remove everything from your phone, use Settings → Disconnect everything, then delete the app.