Skip to main content

Credit Notes

Credit notes follow the same rules as invoices under the UAE e-invoicing mandate: the same 5-corner model, the same transmission logic over the Peppol network. If you've already integrated invoice sending and receiving, this module will feel familiar; the differences are limited to the resource name (/credit-notes instead of /invoices) and a couple of endpoint-level details called out below.

Sending a credit note (outbound)

To send a credit note, forward the structured file content to A-Cube. The platform validates the payload synchronously and responds immediately with a unique identifier (uuid), which you should store to retrieve the document's layout, details, and processing state going forward.

A-Cube accepts UBL XML documents; the syntax is detected automatically from the payload.

POST /credit-notes

Sample Submission Response (201 Created)

{
"creditNoteId":"b214a919-7233-4a07-b2ed-ceb866aed26b",
"ownerFiscalId":"1006541906",
"legalEntityUuid":"b214a919-7233-4a07-b2ed-ceb866aed26b",
"documentType":"credit-note",
"documentTypeCode": 381,
"direction":"incoming",
"status":"received",
"senderName":"Sender",
"senderIdentifier":"0235:1006541906",
"recipientName":"Recipient",
"recipientIdentifier":"0235:1006541906",
"creditNoteNumber":"b214a919-7233-4a07-b2ed-ceb866aed26b",
"creditNoteDate":"2026-06-17T07:40:15+00:00",
"totalAmount":"1000",
"totalAmountNet":"1000",
"currencyCode":"AED",
"externalReferenceId":null
}

Validation

The same validation logic applies when submitting a credit note: A-Cube checks the payload against the XML schema and the applicable Schematron rules before accepting it. If the document fails either check, the submission response includes the validation errors immediately, so you can fix and resend the credit note without waiting for downstream processing.

Sample Lifecycle Webhook Payload

Outbound processing-stage status updates for credit notes are delivered under dedicated event type document.received, so that they never get mixed up with invoice events on the same webhook endpoint.

{
"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, exactly as you would for invoices, so your UI can reflect approval, dispute, or settlement without polling the API.

Receiving a credit note (inbound)

When a supplier issues a credit note to one of your onboarded companies, A-Cube, acting as the certified receiving platform (PA-R), intercepts, validates, and stores it automatically. Your system doesn't need to poll for new documents.

Sample Arrival 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"
}

Downloading a credit note

Listing your credit notes

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