agency-invoicing
POST /v1/agency-invoicing/invoices
Start a draft invoice.
Autenticazione
Invia una chiave API come token di tipo bearer. La chiave deve disporre dell'autorizzazione agency.invoicing.manage; una chiave sprovvista di tale autorizzazione viene rifiutata con 403 anziché 404.
L'ID della tua organizzazione va qui
Questo endpoint accetta org_id come parametro di query. Omettilo e la chiamata coprirà l'intero sottoalbero del tuo tenant; invialo per limitare la chiamata a una singola organizzazione.
L'identificativo della tua organizzazione si trova nella schermata delle chiavi API nella tua dashboard, accanto alla chiave stessa. È lo stesso identificativo in ogni chiamata che effettui.
Provalo
Sostituisci qualsiasi elemento tra parentesi angolari con i tuoi valori e il segnaposto key con una chiave dalla tua dashboard.
curl -X POST https://api.zinndigital.com/v1/agency-invoicing/invoices \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ }'Hai effettuato l'accesso? La console API nella tua dashboard inserisce il tuo ID organizzazione reale e la tua chiave personale, ed esegue la richiesta sull'API live in modo da poter vedere la risposta effettiva. Apri questo endpoint nella console API
Dettagli
Give a `client_id`, or a `client` object to create one inline — a client typed during invoicing is SAVED, so next time you can just select them. ⛔ Totals are never accepted from the caller; they are computed from the lines. Requires `agency.invoicing.manage`.
Parametri
| Nome | Tipo | Obbligatorio | Che cos'è |
|---|---|---|---|
org_id (query) | Uuid | No | Which of your organizations is invoicing. Required only when you belong to more than one — otherwise it is inferred from your DIRECT membership, never from the subtree-expanded… |
Corpo della richiesta
| Nome | Tipo | Obbligatorio | Che cos'è |
|---|---|---|---|
client_id | Uuid | No | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
client | AgencyClientWrite | No | — |
currency | string | No | — |
issue_date | string | No | — |
due_date | string | No | — |
reference | string | No | — |
notes | string | No | — |
footer | string | No | — |
lines | AgencyInvoiceLineWrite[] | No | — |
Risposta
| Nome | Tipo | Obbligatorio | Che cos'è |
|---|---|---|---|
id | Uuid | Sì | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
number | string | No | The agency's own number. ⛔ Empty until issue: a number allocated to something that may never be sent leaves a hole in a sequence. |
status | string<draft, sent, partially_paid, paid, void> | Sì | — |
is_overdue | boolean | No | ⭐ DERIVED from the due date and the status, never stored — so there is no sweep to maintain a flag and nothing to go stale. A draft is never overdue however old it is: nobody ha… |
client_id | Uuid | No | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
client_name | string | No | — |
currency | string | Sì | — |
issue_date | string | Sì | — |
due_date | string | No | — |
reference | string | No | — |
notes | string | No | — |
footer | string | No | — |
subtotal_minor | integer | No | — |
discount_minor | integer | No | — |
tax_minor | integer | No | — |
total_minor | integer | Sì | — |
amount_paid_minor | integer | No | — |
amount_due_minor | integer | No | — |
tax_breakdown | AgencyInvoiceTaxGroup[] | No | — |
source | string | No | Where the invoice came from — `time_tracking` when it was generated from tracked hours, empty when an agency typed it. |
sent_at | string | No | — |
last_sent_to | string | No | — |
paid_at | string | No | — |
void_reason | string | No | — |
created_at | string | No | — |
lines | AgencyInvoiceLine[] | No | — |
payments | AgencyInvoicePayment[] | No | — |
portal_url | string | No | The payment link to send to the client. ⛔ Returned on a SINGLE-invoice read only, never in a list: a list is the thing that gets logged, cached and pasted into a support ticket,… |
Errori che questo endpoint può restituire
401 · 403 · 404 · 422 · 429