Simplified Debit Note

Issue debit notes

Changed on

Issues multiple simplified debit notes and automatically queues reporting for each document.

Accepts the same array payload as bulk-report. Validates the whole payload before allocating document counters. Returns 202 Accepted with document details and QR codes in request order, after saving signed XML. XML is not embedded in the JSON response. Use each document ID with the existing download endpoint (type=xml or type=pdf); PDFs render on demand or in the background.

The response confirms local validation and issuance, not acceptance by ZATCA. Follow each document through retrieval or webhooks. Downloads and reporting retries use the original signed XML and QR code, including during ZATCA outages. Sending through channels is queued after issuance and does not wait for successful reporting. Delivery retries preserve completed channels.

Available only for simplified documents. The existing bulk-report endpoint retains its asynchronous reporting contract and response shape.

post/zatca/simplified-debit-notes/bulk-issue/

Request

  • Base URL
    https://api.wafeq.com/v1
  • URL
    https://api.wafeq.com/v1/zatca/simplified-debit-notes/bulk-issue/
  • Auth
    API key in header Authorization

Headers

X-ZATCA-Branchstring

If the account is under a Group VAT, then it is required to be the TIN of the instance under the Group VAT. Otherwise it is optional and can be used as a branch name

X-ZATCA-Connected-Account-Idstring

The unique identifier of the connected account you're operating on behalf of.

Connected accounts should be used only for Platforms and White Label integrations that onboard customers and report documents on their behalf. Omit the X-ZATCA-Connected-Account-Id header when registering devices or reporting documents for your own organization. See the Platforms and White Label guide.

X-ZATCA-Environmentstring

The ZATCA environment to use, one of ['production', 'simulation']. A ZATCA API key (starting with zatca_live_ or zatca_sim_) already names its environment, so the header is optional with it and must match it when sent. Other API keys and OAuth tokens need it.

Request body

language'ar' | 'en'

The language of a document or response.

View the enum reference

metadataobject

The metadata of the document. Keys cannot contain . or start with $.

referencestring

The reference of the document

Response

Signed XML is saved, downloads are available, and reporting is queued.

created_tsstring date-time required

The datetime in UTC when the document was created.

metadataobject required

The metadata of the document.

qr_code_datastring required

Base64 encoded QR code data.

referencestring required

The reference of the document.

reported_tsstring date-time nullable required

The datetime in UTC when the document was reported/cleared.

responseunknown required
sent_tsstring date-time nullable required

The datetime in UTC when the document was sent.

statusstring required

The status of the document.

Changes