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.
- Submit an Outbound Credit Note:
POST /credit-notes - Fetch Credit Note Details:
GET /credit-notes/{uuid}
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.
- Inbound Arrival Notification: Webhook event
document.received - Inbound Credit Note Details:
GET /credit-notes/{uuid}
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
- Download the original payload:
GET /credit-notes/{uuid}/source
Listing your credit notes
- List Credit Notes:
GET /credit-notes
Returns the flat list of your credit notes (both directions), sorted by the most recent first.