When an invoice fails
A rejected invoice was not filed. It is not a warning and it does not clear itself on the next sync — but it is also not lost: the reason is recorded, and once the cause is fixed the same invoice can go.
Where to look
Rejected Invoices lists what was stopped and why, in the same words the validator used. The reason names the field, so it can be acted on without interpreting it.
Staged Invoices is a different thing and is not a failure: those are waiting for a field you said you would supply by hand.
The causes that account for most of it
| What you see | What to do |
|---|---|
| “Contact TaxNumber (TRN) is missing” | The customer record in your accounting system has no tax number. Add it there — not here — and the next sync picks it up. This is a UAE rule, checked for UAE customers only: a customer outside the UAE is never refused for a missing tax number. |
| “…must be 15 characters long” | A UAE TRN is exactly 15 digits. A shortened, spaced or mistyped number is rejected rather than trimmed to fit. |
| “Contact Address Country is missing” | The customer has no country on the address the platform reads. In Xero and Naqood that is the street address specifically. |
| The QuickBooks custom-field message | The customer has no “Tax ID number” custom field, or the TRN is in a different custom field from the one being read. Both are covered on ERP prerequisites. |
| A tax rate with no category | A rate used on the invoice is not mapped on Tax Codes. Map it and send again. |
| “Currency exchange rate is required” | The UAE Central Bank published no rate for that currency on or before the invoice date. The rate is ours, not the one on the invoice in your system, so there is nothing to fill in there: check the invoice date is real and the currency is one the Central Bank lists. |
Fix the cause where the data lives
Almost every rejection above is fixed in your accounting system rather than here, because that is where the invoice and the customer come from. Correcting it here would only last until the next sync overwrote it with your own data — which is the right behaviour, and the reason the fix belongs upstream.
The two exceptions are configuration: Tax Codes and PINT Mapping, both of which are set here and stay here.
Not a failure, whatever it sounds like
A received invoice showing received from peppol with no accounting system connected is a success, not a rejection. The invoice arrived, it is filed, and you can download it now; the only thing outstanding is the optional push into your ledger, which depends on a connection rather than on anything about the document. It is covered on Receiving invoices.
If it is not one of these
The reason text names a rule identifier — something like ibr-… or a field code such as IBT-049. Those come from the UAE e-invoicing specification, and quoting one to support identifies the exact rule immediately, which is faster than describing the symptom.