Go live in the United Arab Emirates

Work through this checklist before you send UAE e-invoices in production. You need UAE documents that already pass in sandbox and the company's authorization for its accredited service provider in production.

Onboard the company in production

A company onboarded in sandbox is not registered in production.

  1. In the Invoice Portal, select United Arab Emirates and Production.
  2. Follow Onboard a UAE company, choosing Verify with EmaraTax with the company’s TIN.
  3. Add the branch and the source that will send its invoices.

Open Onboard and check the company’s registration status. A Pending registration is not ready to send invoices.

Create a production API key

In Developer portal › API keys, create a key under Production API keys. Give it Write access if it sends invoices. See Create an API key.

With Production selected, open Source management and link the source you added during onboarding to your integration mapping and the company’s branch. See Manage sources and their links.

Pass the required test cases

Check that the test cases for the United Arab Emirates show Passed in Test your mapping. If your workspace uses the Default GETS Mapping, production documents are refused with 412 until they do.

Switch your requests to production

  • Load the production key in place of the sandbox key.
  • Send "environment": "production" in every Unify request.
  • Set source to the production source’s name:version.
  • If you use an SDK, change its environment setting to production. Each SDK guide shows where.

Check credits and webhooks

  • In the Invoice Portal, open Credits with Production selected and check the balance. See Check your credit balance and usage.
  • If you receive purchase invoices through webhooks, create a separate webhook for Production that points to your live endpoint. See Set up a webhook.

Send the first production invoice

Send one real invoice and follow it with its documentId until isTerminal is true. See Submit and retrieve. final_valid means it was accepted as compliant; in the Invoice Portal it shows as Compliant. rejected or final_invalid means it was not: read errors for the reason.

UAE checks

  • Replace every sample identity from your tests with real ones: the seller’s and buyer’s TRNs, Peppol IDs and their schemes, such as 0235.
  • Check each document type against the UAE field reference, the allowed code lists and the validation rules. Credit notes and self-billed documents have their own rules.

If something goes wrong

ASP_LINKAGE_NOT_FOUND during onboarding: the company’s ASP authorization is missing for production. Ask its authorized administrator to check it, then try again.

The company stays Pending: use Refresh status if it is offered, and check again later.

403 with permission_denied: the key is a sandbox key. Use a production key with "environment": "production".

404: the source is not in production. Check its name and version in Source management with Production selected.

412 with failed_precondition: the required test cases for the United Arab Emirates have not all passed. Run them, then send the document again.

422: the document failed validation. Correct the fields named in errors; see UAE validation rules.

Last updated