FAQ
Answers to the questions integrators ask first.
Is there a sandbox?
Use a test key (sk_test_…). It works against the same API and organization, creates documents flagged isTest, and can only submit while the e-invoicing connection is in Test (simulated) mode, where a simulated ASP answers. Test documents are excluded from reports and analytics.
Do I have to send seller data with every invoice?
No. Seller name, TRN, address and contact (BT-27 to BT-43) come from the organization profile. If they are incomplete, validation fails with the corresponding business term until the profile is completed in the app.
Can I supply my own invoice numbers?
Yes, with invoiceNumber. It must be unused. Without it, the next number of the series is allocated atomically. Keep issued tax invoices sequential as required by UAE VAT rules.
Why did my batch return 400 although some invoices were created?
Elements are processed independently. The status mirrors the first failure and extra.results[] shows every element; those with success: true exist. Retry only the failed ones.
How do I know when the FTA accepted an invoice?
Subscribe a webhook to invoice.reported (and invoice.rejected), or poll GET /invoices/{id}/status until invoiceStatus is accepted or rejected.
Can I change an invoice after submission?
No. Issue a credit note (381) or debit note (383) with precedingInvoice: { id }. Payments, category, cost centre, archive flag and custom fields remain editable through PATCH /invoices/{id}.
Can I get the invoice as a PDF?
Yes. GET /invoices/{id}?format=pdf returns the PDF of any invoice, credit note, debit note or proforma, the same document the app downloads and attaches to emails. ?format=xml gives the PINT AE XML and ?format=html a printable version. A 503 is only possible for a received invoice's visualisation when the environment has no HTML-to-PDF service.
Why is the delivery state 'skipped' when I send an invoice?
No email provider is configured on that environment. The delivery is logged so the audit trail is complete; configure the provider (Resend) to send for real.
Which currencies are supported?
Any ISO 4217 code with exchangeRate against AED; vatAccountingCurrency covers BT-6. Reporting is in AED.
How does a CA firm act for its clients?
Create the key in the firm's organization and send X-Organization-Id with the client's organization id on each request. GET /organizations/managed lists the ids.
What is the rate limit?
600 requests per minute per key; 429 with Retry-After beyond that. Batch endpoints count as one request.
Where is the OpenAPI specification?
GET /openapi.json on the API, and in the API reference tab of this site. GET /llms.txt returns a condensed guide for language models.