Application · ERP setup

QuickBooks

QuickBooks has no tax-number field on a customer, so one has to be created. This is the single most common reason a QuickBooks invoice is rejected here.

Send this to the client

Copies the whole QuickBooks checklist below as plain text — the steps, the fields each one fills, and the rules that apply to every system — ready to paste into an email.

Before you invoice a customer

A one-time job per customer. Until it is done, that customer's invoices cannot be filed, because a buyer with no tax number and no address cannot be identified to the FTA.

  • Create a custom field named “Tax ID number” on the customer

    Customer details → Custom fields → add a field named Tax ID number, then enter that customer's 15-digit TRN in it. Repeat for every customer you invoice.

    Read from CustomerInfo.CustomField[0].StringValue

    If it is missing: “The Customer Tax Number (TRN) is missing from the custom field. Please add a custom field on the QuickBooks customer details page named “Tax ID number” and enter the customer’s TRN in that field.”

  • Keep it as the FIRST custom field

    The default mapping reads custom field number one. If the TRN sits in your second or third custom field, either reorder them or repoint buyer_tax_id on the PINT Mapping page — both work, but one of the two has to be done.

    Read from CustomField[0] — position matters, the field name is not searched for

  • Fill in the customer's billing address

    Street, city, state and country. Country is mandatory; for a UAE buyer the state is the emirate.

    Read from CustomerInfo.BillAddr.Line1 / .City / .CountrySubDivisionCode / .Country

    If it is missing: “Customer Address Country is missing.”

  • Give every invoice a number no other invoice has used

    QuickBooks only auto-increments the number while custom transaction numbers are off. Turn them on — many accounts do, to keep their own numbering — and the field is typed by hand on every invoice, which is where repeats come from. Switch on Settings → Sales → Sales form content → “Warn if duplicate invoice number is used” so QuickBooks catches it before we do. Unlike the rest of this list, this one is per invoice, not per customer.

    Read from DocNumber

    If it repeats: The invoice is rejected with 409 and the invoice already holding that number is returned with the error. Nothing is filed until the number is changed.

  • Apply tax on the invoice, not just on the total

    Each line needs a tax code, and the invoice needs its tax detail — that is where the taxable base comes from. An invoice with no tax detail has no net amount to report.

    Read from TxnTaxDetail.TaxLine[0].TaxLineDetail.NetAmountTaxable, Line[].SalesItemLineDetail.TaxCodeRef

What is the same for all of them

A UAE buyer's TRN is 15 digits. Fourteen or sixteen is rejected — the length is checked, not just the presence.

A buyer outside the UAE has no UAE TRN and is not expected to. Put its own national tax number in the same field and the platform builds its Peppol address from that, under its country's scheme. If the buyer is on the Peppol network under an identifier of its own, that is better still. Leave the field empty and nothing fails: a buyer outside the UAE is never refused for a missing tax number, and is addressed by the export placeholder instead.

Some countries publish a company-register or e-invoicing identifier rather than a tax number — Denmark, Sweden, Norway, Finland, Singapore and others — so no address can be built from a tax number alone. Those invoices are still filed: the buyer is addressed by the FTA's export placeholder, which means the document reaches the authority but is not delivered to the buyer over the network. Supplying a real participant id, where the buyer has one, is what turns that into a delivery.

The country is mandatory on every buyer, and for a UAE buyer the emirate is what the FTA reads as the region.

If the field lives somewhere else

Every path above is a default, not a fixed contract. The PINT Mapping screen points any field at a different source in your own data — so data kept somewhere unusual is repointed rather than moved.

All ERP prerequisites