agency-time

POST /v1/agency/time/billing-runs

Bill now — turn unbilled time into a draft invoice.

Barcha agency-time yakuniy nuqtalari

Autentifikatsiya

API kalitini bearer token sifatida yuboring. Ushbu yakuniy nuqta spetsifikatsiyada ma'lum bir ruxsatni ko'rsatmaydi, shuning uchun kalitingizga eng kam kerakli huquqni bering va taxmin qilish o'rniga javobni tekshiring.

Tashkilotingiz identifikatori kiritiladigan joy

Ushbu so'rov JSON tanasida org_id ni maydon sifatida qabul qiladi.

Tashkilotingiz identifikatori boshqaruv panelingizdagi API kalitlari ekranida, kalitning o'z yonida joylashgan. Bu siz amalga oshiradigan har bir so'rovda bir xil identifikator hisoblanadi.

Sinab ko'rish

Qavslardagi har qanday narsani o'z qiymatlaringiz bilan, kalit pleysxolderini эsa boshqaruv panelingizdagi kalit bilan almashtiring.

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> }'

Tizimga kirganmisiz? Boshqaruv panelingizdagi API konsoli haqiqiy tashkilot ID raqamingiz va shaxsiy kalitingizni avtomatik to'ldiradi hamda haqiqiy javobni ko'rishingiz uchun so'rovni jonli API orqali bajaradi. Ushbu yakuniy nuqtani API konsolida oching

Tafsilotlar

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.

Soʻrov tanasi

NomiTuriMajburiyNima bu
client_idstringHa
currencystringHa
untilstringYo'qBill work up to and including this date — "everything to the end of last month".
notesstringYo'q
org_idstringYo'q

Javob

NomiTuriMajburiyNima bu
idstringHa
client_idstringYo'q
currencystringHa
period_startstringYo'q
period_endstringYo'q
triggerstring<manual, on_log, day_of_month, threshold>Ha
statusstring<claimed, invoiced, failed, released>Ha`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_minorintegerHaOur own exact arithmetic, before tax. What the invoice is reconciled against.
minutes_totalintegerHa
duration_labelstringYo'q
entry_countintegerYo'q
fixed_line_countintegerYo'q
invoice_idstringYo'q
invoice_numberstringYo'q
invoice_createdbooleanYo'qFALSE 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>Yo'qWhether 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_detailstringYo'q
invoiced_atstringYo'q
released_atstringYo'q
last_errorstringYo'q
created_atstringHa
actualobjectYo'qWhat 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.

Ushbu yakuniy nuqta qaytarishi mumkin bo'lgan xatolar

401 · 403 · 422