Chapter 03 of 05 · UAE sandbox

Prepare an invoice

Build the sandbox request for your customer’s first UAE invoice. You need the ready source from the previous chapter and invoice data that matches its mapping.

Download the sample payload

Download the UAE GETS sample and save it as `uae-invoice-payload.json`.

This is the UAE GETS sample from the published documentation. It is a starting point, not a registered test identity or an invoice ready to send unchanged. Confirm its structure matches your source’s mapping; otherwise use a matching sample from your system.

Replace the example data

PartWhat to check
headerUnique document number, issue date, due date and currency
parties.sellerOnboarded company’s legal name, tax details and address
parties.buyerIntended buyer’s legal name, tax details, address and Peppol identity
lineItemsDescriptions, quantities, prices and tax details
totalsAmounts agree with the lines, allowances, charges and taxes
extensionsUAE and Peppol fields required by the invoice and mapping

Use a document number such as INV-2026-0142 that you have not already submitted for this test. Replace all sample identity values with your agreed sandbox details.

Keep the Peppol identifier value in parties.buyer.peppolId separate from its scheme in extensions.peppol_buyer_peppolIdScheme. For a UAE identifier using scheme 0235, do not put the 0235: prefix into the identifier value itself.

Wrap the payload for Unify

Create uae-invoice-request.jsonbash
jq --arg source "${COMPLYANCE_SOURCE}" '{
  country: "AE",
  environment: "sandbox",
  purpose: "invoicing",
  source: $source,
  documentType: {
    base: "tax_invoice",
    modifiers: []
  },
  payload: .
}' uae-invoice-payload.json > uae-invoice-request.json

COMPLYANCE_SOURCE must match the returned sourceName:sourceVersion. Leave the country and environment as AE and sandbox for this walkthrough.

Review the request

Check the request before sendingbash
jq -e '.country == "AE" and .environment == "sandbox" and (.source | length > 0) and (.payload | type == "object")' uae-invoice-request.json

This checks the request envelope and JSON structure. It does not replace invoice validation or verify the buyer’s identity.

If something goes wrong

The JSON cannot be read: check missing commas, quotation marks and brackets before submitting.

The source is empty or wrong: return to the saved onboarding response and use its exact source name/version.

Last updated


04 Next: submit the invoice Send the invoice through Unify.