Send Self Billed Credit Note

Issue a self-billed credit note (UBL 261) through the Peppol network.

As with POST /self-billing/invoices you are the customer; provide the
supplier counterparty, the original's previous_document_id, and
credit_note_reason_code.

Live mode requires an active subscription for the taxpayer’s organization.
Returns HTTP 402 with detail.code=subscription_required when absent or
inactive, or HTTP 503 with detail.code=billing_status_unavailable when
billing status is stale. Sandbox does not require a subscription.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Request body for POST /self-billing/credit-notes — a self-billed
credit note (UBL 261). You are the customer; provide the supplier.

string
enum
Defaults to ap

Where the original invoice was issued: ap (this AP; requires previous_document_id), or external (legacy system/another ASP; caller retains original records). External requires its number; its issue date is optional. This declaration does not establish FTA acceptance of pre-transition invoices.

Allowed:
string | null

AP document_id of the original invoice. Required for ap references; not the UBL document_uuid.

string | null

Original invoice number (IBG-03). Supply only for external references; derived for ap references.

string | null

Original issue date YYYY-MM-DD; optional for external references.

string | null

AP document_id of a C3-rejected document this submission corrects. Keep its business number/type and supply corrected content. Requires a new Idempotency-Key and uses queued delivery. The AP handles FTA recovery internally; retry the same request/key if recovery is pending.

metadata
object

Customer-defined string key-value pairs (up to 100 keys, 100 characters per key, 16 KiB total). Stored separately from the fiscal document; never sent to Peppol or the FTA.

string | null

Issue date YYYY-MM-DD (defaults to today)

string
length ≤ 64
^pint:selfbilling-1(@ae-1)?\*?$
Defaults to pint:selfbilling-1@ae-1

PINT self-billing profile. Override for conformance, e.g. 'pint:selfbilling-1*' to reach a testbed receiver.

string
^(ALWAYS_SEND|FAILURE_ONLY)$
Defaults to ALWAYS_SEND

eDEC Message Level Status preference: ALWAYS_SEND (MLS for every message — recommended for tax-invoice confirmation/audit) or FAILURE_ONLY (MLS only on rejection).

string
length between 3 and 3
Defaults to AED

ISO 4217 currency code

string | null

Buyer's purchase order reference

string | null

The caller's own id for this document (e.g. your invoice id). Stored on the AP record and echoed back in every document.* webhook so you can correlate callbacks to your own document.

string | null

Free-text note

string
^[01]{8}$
Defaults to 00000000

§10.4 invoice transaction-type code (BTAE-02): 8 flags, one per scenario, left→right — Free zone, Deemed supply, Margin scheme, Summary invoice, Continuous supply, Disclosed agent billing, E-commerce, Exports. '1' = applies (multiple allowed). '00000000' = no special scenario.

invoice_period
object

Invoicing period (IBG-14) covered by the document. Required when the summary-invoice transaction flag is set.

line_items
array of objects
required
length between 1 and 1000
Line Items*
supplier
object
required

The seller (counterparty) you are self-billing

string
required
length ≤ 64

Your credit note number

string | null

Credit note reason code (BTAE-03). One of DL8.61.1.A–E, or VD (volume discount, no preceding invoice).

Headers
string | null
^[\x21-\x7e]+$

Optional taxpayer-scoped submission key. Repeat the same key and payload to replay the saved response without resending. Required with corrects_document_id or queued delivery. Changed payloads and unfinished attempts return 409. Keys have no automatic expiry.

string | null
enum

Set respond-async with Idempotency-Key to request durable queued delivery. Requires server enablement.

Allowed:
string | null
string
required

Taxpayer ID (txpay_…). Required with an organization API key (pk_…) for this taxpayer-specific operation, even for one taxpayer. Not a TIN. Optional with a taxpayer access token, which already names its taxpayer.

string | null

Grant ID (tgr_…) to act through, with an organization API key. The request then has exactly that grant's scopes and fails once the grant is revoked. Without it, the key acts through all of the organization's active grants on the taxpayer.

Responses

409

Idempotency conflict, correction recovery pending, or the earlier submission is in progress/unconfirmed. Retry the same payload/key.

503

Billing/authentication is temporarily unavailable, or the idempotency reservation/response could not be persisted. Retry with the same Idempotency-Key and, for portal service authentication, a fresh token.

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json