agency-invoicing
POST /v1/agency-invoicing/invoices/{invoiceId}/send
Email the invoice to your client, with the PDF attached.
인증
Bearer 토큰으로 API 키를 전송하세요. 키는 반드시 agency.invoicing.manage 권한을 가지고 있어야 하며, 권한이 없는 키는 404가 아닌 403으로 거부됩니다.
조직 ID가 들어가는 위치
이 엔드포인트는 org_id을(를) 쿼리 매개변수로 사용합니다. 생략하면 테넌트 하위 트리 전체가 호출 대상이 되며, 값을 전달하면 특정 조직으로 호출 범위를 좁힐 수 있습니다.
조직 ID는 대시보드의 API 키 화면에서 키 바로 옆에 있습니다. 이는 실행하는 모든 호출에서 동일한 ID입니다.
무료 체험하기
대괄호 안에 있는 모든 내용을 사용자 지정 값으로 바꾸고, 키 플레이스홀더는 대시보드의 키로 바꾸세요.
curl -X POST https://api.zinndigital.com/v1/agency-invoicing/invoices/{invoiceId}/send \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ }'로그인하셨나요? 대시보드의 API 콘솔이 실제 조직 ID와 본인의 키를 자동으로 채우고 라이브 API를 대상으로 요청을 실행하므로 실제 응답을 확인할 수 있습니다. API 콘솔에서 이 엔드포인트를 여세요
상세 정보
Issues it first if it is still a draft. Leaves on YOUR mail account when you have connected one, otherwise on ours with your address as Reply-To and a line saying who issued it. The PDF is attached as bytes rather than linked — a link would expire, and it would put our storage hostname in front of your client. Requires `agency.invoicing.manage`.
매개변수
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
invoiceId (path) | Uuid | 예 | — |
org_id (query) | Uuid | 아니요 | 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… |
요청 본문
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
to | string | 아니요 | Where to send it. Defaults to the client's stored email. |
locale | string | 아니요 | Which language to render in. Defaults to the client's locale — an agency in Berlin invoicing a French client sends a French invoice. |
note | string | 아니요 | A covering line to put above the amount. |
응답
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
id | Uuid | 예 | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
number | string | 아니요 | 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> | 예 | — |
is_overdue | boolean | 아니요 | ⭐ 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 | 아니요 | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
client_name | string | 아니요 | — |
currency | string | 예 | — |
issue_date | string | 예 | — |
due_date | string | 아니요 | — |
reference | string | 아니요 | — |
notes | string | 아니요 | — |
footer | string | 아니요 | — |
subtotal_minor | integer | 아니요 | — |
discount_minor | integer | 아니요 | — |
tax_minor | integer | 아니요 | — |
total_minor | integer | 예 | — |
amount_paid_minor | integer | 아니요 | — |
amount_due_minor | integer | 아니요 | — |
tax_breakdown | AgencyInvoiceTaxGroup[] | 아니요 | — |
source | string | 아니요 | Where the invoice came from — `time_tracking` when it was generated from tracked hours, empty when an agency typed it. |
sent_at | string | 아니요 | — |
last_sent_to | string | 아니요 | — |
paid_at | string | 아니요 | — |
void_reason | string | 아니요 | — |
created_at | string | 아니요 | — |
lines | AgencyInvoiceLine[] | 아니요 | — |
payments | AgencyInvoicePayment[] | 아니요 | — |
portal_url | string | 아니요 | 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,… |
sent_to | string | 아니요 | — |
이 엔드포인트가 반환할 수 있는 오류
401 · 403 · 404 · 409 · 422 · 429 · 503