agency-time

POST /v1/agency/time/billing-runs

Bill now — turn unbilled time into a draft invoice.

Todos os endpoints de agency-time

Autenticação

Envie uma chave de API como um token bearer. Este endpoint não especifica uma permissão específica na documentação, portanto, conceda à sua chave o mínimo necessário e verifique a resposta em vez de assumir.

Onde vai o ID da sua organização

Este endpoint aceita org_id como um campo no corpo JSON.

O ID da sua organização está na tela de chaves de API no seu painel, ao lado da própria chave. É o mesmo ID em todas as chamadas que você fizer.

Experimente

Substitua qualquer item entre colchetes por seus próprios valores e o espaço reservado para a chave por uma chave do seu painel.

curl -X POST https://api.zinndigital.com/v1/agency/time/billing-runs \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "client_id": <string>, "currency": <string> }'

Conectado? O console da API no seu painel preenche o ID da sua organização real e a sua própria chave, e executa a requisição contra a API de produção para que você possa ver a resposta real. Abra este endpoint no console da API

Detalhes

The owner's *"as well as sending on demand invoices"*. Claims the client's unbilled, priced work, hands it to the agency invoicing suite as a **draft**, and records what came back. ⛔ The entries are claimed in a committed transaction **before** the invoicing suite is called, so no other trigger can select them while the call is in flight. The idempotency key handed to the suite is derived from the sorted entry ids rather than minted, so a retry after a crash is given back the invoice that already exists instead of raising a second one for the same hours. `reconcile_state` is `ok` only when the invoice's total for these lines equals our own exact arithmetic. `mismatch` means do not send it.

Corpo da requisição

NomeTipoObrigatórioO que é
client_idstringSim
currencystringSim
untilstringNãoBill work up to and including this date — "everything to the end of last month".
notesstringNão
org_idstringNão

Resposta

NomeTipoObrigatórioO que é
idstringSim
client_idstringNão
currencystringSim
period_startstringNão
period_endstringNão
triggerstring<manual, on_log, day_of_month, threshold>Sim
statusstring<claimed, invoiced, failed, released>Sim`claimed` is the state between claiming the time and the invoicing suite's reply — a process that dies there leaves one, and the recovery pass finishes it with the same derived…
subtotal_minorintegerSimOur own exact arithmetic, before tax. What the invoice is reconciled against.
minutes_totalintegerSim
duration_labelstringNão
entry_countintegerNão
fixed_line_countintegerNão
invoice_idstringNão
invoice_numberstringNão
invoice_createdbooleanNãoFALSE means the invoicing suite's idempotency key fired and handed back an invoice an earlier attempt had already raised. Surfaced rather than hidden: it is the observable that…
reconcile_statestring<pending, ok, mismatch, unavailable>NãoWhether the invoice's total for these lines equals our own arithmetic **exactly**. There is no "close enough": both sides compute from the same two integers, so any difference i…
reconcile_detailstringNão
invoiced_atstringNão
released_atstringNão
last_errorstringNão
created_atstringSim
actualobjectNãoWhat this run actually consumed, derived from the time entries rather than read off the run's stored columns — so a divergence is visible on the screen.

Erros que este endpoint pode retornar

401 · 403 · 422