billing

GET /v1/invoices/{invoiceId}/pdf

Download the invoice or credit note as a PDF, in a chosen language.

Tous les points de terminaison billing

Authentification

Envoyez une clé d'API en tant que jeton du porteur (bearer token). Cet endpoint n'indique pas de permission spécifique dans la spécification, attribuez donc à votre clé le minimum requis et vérifiez la réponse plutôt que de faire des suppositions.

Cet endpoint ne prend aucun identifiant d'organisation. Votre clé identifie déjà l'organisation à laquelle elle appartient, et la réponse y est limitée.

Essayer

Remplacez tout ce qui se trouve entre crochets par vos propres valeurs, et le espace réservé à la clé par une clé de votre tableau de bord.

curl -X GET https://api.zinndigital.com/v1/invoices/{invoiceId}/pdf \
  -H "Authorization: Bearer zdk_live_…"

Connecté ? La console d'API de votre tableau de bord saisit votre véritable ID d'organisation ainsi que votre propre clé, et exécute la requête sur l'API de production afin que vous puissiez voir la réponse réelle. Ouvrir ce point de terminaison dans la console API

Détails

The rendered legal document (#708, `docs/34` §4.2) — server-side HTML→PDF, in all 58 locales including RTL, with embedded fonts covering Latin, Greek, Cyrillic, CJK, Arabic and Hebrew. Rendered from the invoice's **immutable snapshot**, never from live data: a customer who has since moved still sees the address that was on the document, because a re-render that updated it would be a different legal document under the same number. That is also what makes the render deterministic and the cache disposable. ⭐ **Labels translate; numbers, tax wording and the document identity do not.** The invoice number, the amounts and the dates keep their canonical form, and the **English document is the authoritative original** — a translated rendering is a copy of the same numbered document for the customer's convenience and says so in its footer. Answers a short-lived signed URL rather than the bytes, so a multi-megabyte document never transits the engine twice. ⛔ When no document bucket is configured in an environment the response is the **PDF itself** (`application/pdf`) rather than a refusal: the cache is an optimisation, and a customer must not be unable to download their own invoice because a bucket is missing.

Paramètres

NomTypeObligatoireQu'est-ce que c'est
invoiceId (path)UuidOuiThe billing document's id. This is the `Invoice`/`CreditNote` id — **not** the order's. It was the order's id while `/v1/invoices` projected orders (docs/34 §7); the projection…
locale (query)stringNonLanguage to render in. Defaults to the account's own. A language this platform does not ship is a `422` rather than a silent fallback — and it is validated because the value rea…

Réponse

NomTypeObligatoireQu'est-ce que c'est
urlstringOuiMinted per request and **never persisted** — it expires in minutes, so storing it in a list payload or a cache would hand a client a link that is already dead.
expires_atstringNon
localestringOuiThe language the document was rendered in.

Erreurs que cet point de terminaison peut renvoyer

401 · 403 · 404 · 422 · 429 · 503