Skip to main content

Send invoice

The outbound invoicing module allows your system to transmit invoices to the United Arab Emirates customers while simultaneously fulfilling state tax reporting requirements. The communication workflow is split into two distinct operational parts: an initial asynchronous submission followed by continuous status monitoring.

For more details on supported formats, see Formats & Transmission Flow.

Submission and Detail Retrieval

To send an invoice, you must forward the structured file content to A-Cube. The platform validates the payload synchronously and responds immediately with a unique identifier (uuid). This ID is a critical piece of data; it must be stored in your database to fetch the current invoice layout, details, and historic processing state.

Sample Submission Response (201 Created)

{
"invoiceId": "{uuid of the invoice}",
"invoiceTypeCode": "380",
"createdAt": "2026-06-17T07:40:15+00:00",
"updatedAt": "2026-06-17T07:40:15+00:00",
"ownerFiscalId":"1006541906",
"legalEntityUuid":"b214a919-7233-4a07-b2ed-ceb866aed26b",
"documentType":"invoice",
"documentTypeCode": 380,
"direction":"incoming",
"status":"received",
"senderName":"Sender",
"senderIdentifier":"0235:1006541906",
"recipientName":"Recipient",
"recipientIdentifier":"0235:1006541906",
"invoiceNumber": "F202500001",
"invoiceDate": "2025-02-01",
"totalAmount":"1000",
"totalAmountNet":"1000",
"currencyCode":"AED",
"dueDate": "2025-03-03",
"externalReferenceId":null
}

Validation

When you submit an invoice, A-Cube performs synchronous validation against both the XML schema and the Schematron ruleset defined for the UAE mandate. The schema check verifies the structural correctness of the document, while the Schematron rules enforce the business and fiscal constraints required for acceptance. If either check fails, the POST /invoices response returns the validation errors immediately, allowing you to correct and resubmit the document without waiting for a status update from the tax authority.


Sample Lifecycle Webhook Payload

{
"eventId": "dd3411eb-b492-4b90-9c22-14c3cf4e1d7b",
"event": "document.received",
"delivery": "webhook",
"target": "https://example.com/webhook?param=xxx",
"authType": "header",
"authKey": "Authorization",
"authToken": "xxxxxxxxxxxxxxxxx",
"createdAt": "2026-06-17T07:40:15+00:00",
"updatedAt": "2026-06-17T07:40:15+00:00"
}

Configure your webhook handlers to catch these states automatically. This ensures your application's user interface can display when an invoice is accepted by the state, currently in dispute, or successfully settled without requiring manual calls.

Downloading invoices

Listing your invoices

Returns the flat list of your invoices (both directions), sorted by the most recent first.