Skip to content

Deliveries and statuses

POST /invoices/{id}/deliveries sends an issued invoice. Send an Idempotency-Key so retries are safe.

curl -s -X POST $BASE/invoices/<id>/deliveries -H "Authorization: Bearer $KEY" \
  -H 'Content-Type: application/json' -d '{"channel":"peppol","recipient":"0204:04011000-12345-34"}'

Channels

  • peppol: the archived XRechnung (UBL, else CII) to a Peppol participant (scheme:value, e.g. 9930:DE123456788 or a Leitweg-ID 0204:…). Leave out recipient to use the buyer's electronic address in the invoice (BT-49). If the recipient takes only the other XRechnung syntax, it is generated from the same invoice, checked and sent. With "fallbackEmail": "buyer@example.de" a Peppol delivery that fails is sent by e-mail instead. The seller needs a Peppol address with a numeric scheme; real Peppol needs a verified seller with Peppol activated and the Growth plan or higher.
  • email: all documents attached, from " via Fakturnaut", replies go to the seller. Verified sellers only; at most 200 per 24 hours.
  • anaf: Romanian sellers connected to ANAF in the portal; the recipient is the seller's CIF.

Statuses

PENDING (retried for 24 hours) → SENT → DELIVERED, or REJECTED / FAILED (with error). UNCONFIRMED: no confirmation within 72 hours; the invoice may have arrived, so sending again needs "resend": true. OUTCOME_UNKNOWN: the access point did not answer clearly; we look for the invoice there and never send it twice blindly.

A Peppol delivery that did not arrive has a failure with a stable code and texts in English (en) and German (de): not-on-peppol (no Peppol address, or not registered), format-not-supported, validation, transport, recipient-rejected, duplicate (sent before; not sent again), sender-not-registered or other.

Follow a delivery with GET /deliveries/{id}, list an invoice's deliveries with GET /invoices/{id}/deliveries, or receive delivery.updated webhooks. A second delivery to the same recipient answers 409 delivery.duplicate unless you set "resend": true.

Documents your sellers receive over Peppol are under GET /received-documents.