POST/v1/finance/report
Dapatkan laporan ringkasan keuangan
finance_report
Mengembalikan total faktur atau pembayaran organisasi, dikelompokkan menurut hingga tiga dimensi (kategori, grup, jenis usaha pemasok, pemasok, pembeli, pihak lawan transaksi, arah, mata uang, bulan, kuartal, tahun), dengan metrik invoiced, paid, unpaid, dan tax. Total hanya mencakup dokumen yang terlihat oleh pengguna (koleksi dan kategori profil datanya, serta pengaturan “jawab hanya dari kartu terverifikasi”); filter permintaan mempersempit cakupan ini tetapi tidak pernah memperluasnya.
Dalam mode reporting (default), jumlah dikonversi ke mata uang pelaporan organisasi dengan kurs pada tanggal dokumen, dan jumlah tanpa kurs dicantumkan di conversion.unconverted. Dalam mode original, jumlah dalam mata uang yang berbeda tidak dijumlahkan, dan mata uang menjadi dimensi baris. Jika jumlah baris melebihi limit, truncated bernilai true, dan totals tetap mencakup semua baris. Memerlukan profil data dengan akses ke data keuangan (finance.forbidden).
Laporan, daftar faktur dan pembayaran, serta ekspornya adalah operasi baca meskipun memakai POST: semuanya tersedia dalam mode “View as” dan bagi kunci API dengan cakupan read (dan, seperti sebelumnya, bagi kunci dengan cakupan write).
Autentikasi
Kirim kunci API di header Authorization: Authorization: Bearer <kunci>.
Parameter header
X-View-AsstringHanya untuk kunci API dengan peran
admin. Menjalankan permintaan sebagai profil data<profile>[:viewer|verifier|editor], misalnyaemployee:viewer. Kunci instalasi tidak dapat memakai header ini (403).
Parameter cookie
kb_view_asstringCookie mode “View as” (Lihat sebagai) untuk sesi.
POST /auth/view-asmenetapkannya danDELETE /auth/view-asmenghapusnya.
Isi permintaan
application/json
basisstringinvoices: faktur, nota kredit, dan kuitansi.payments: log pembayaran (arus kas). Denganpayments, satu-satunya metrik adalahpaid, sedangkan dimensidirectiondan totalnya menunjukkan pergerakan uang,inatauout, dan transfer antar-badan hukum Anda sendiri adalahinternal.Nilai yang diizinkan:
invoicespaymentsDefault: "invoices"
group_byarray of FinanceDimensionitems ≤ 3
measuresarray of FinanceMeasureDefault:
invoiced(paiduntukpayments).currency_modeFinanceCurrencyModedate_basisstringTanggal mana yang menentukan periode dan filter
from/to: tanggal dokumen atau tanggal pembayaran.Nilai yang diizinkan:
documentpaymentDefault: "document"
filtersFinanceFilterorder_bystringMetrik atau dimensi untuk pengurutan. Secara default, metrik pertama dalam urutan menurun.
order_descbooleanDefault: true
limitintegerDefault: 1000≥ 1, ≤ 10000
languagestringBahasa label kategori dan grup,
en|ru. Default:en.
Respons
200Laporan
Header respons
RateLimit-PolicyBatas yang berlaku, dalam format draf IETF
draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma"<name>";q=<quota>;w=<window in seconds>.keyadalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainyauser, tanpa kredensialip);minute,day, danmonthadalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.RateLimitSisa setiap batas di
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitBatas dari entri paling ketat di
RateLimit-Policy(entri dengan sisa permintaan paling sedikit).X-RateLimit-RemainingSisa permintaan dalam batas paling ketat.
X-RateLimit-ResetDetik hingga batas paling ketat direset.
application/json
currencystringMata uang pelaporan (mode
reporting).Total atas semua baris sebelum dipangkas, satu catatan per mata uang (untuk laporan yang dipisah menurut arah, per mata uang dan arah,
FinanceReportTotal.direction).truncatedbooleanwajiblimitintegerwajibtotal_rowsintegerwajibJumlah baris yang dikelompokkan sebelum dipangkas.
conversionFinanceConversionwarningsarray of stringKode peringatan:
profile_missing, data perusahaan organisasi belum diisi, sehingga arah faktur default-nyain;catalog_missing, direktori perusahaan belum dimuat;fx_rate_missing, sebagian jumlah tidak memiliki kurs (conversion.unconverted);fx_rate_stale, sebagian kurs sudah usang;enrichment_pending, sebagian dokumen masih diproses dan belum masuk ke total. Tampilkan kode yang tidak dikenal dengan pesan umum.
400Permintaan tidak valid: nilai parameter atau status objek tidak memungkinkan tindakan ini (`detail` berisi pesan).
Header respons
RateLimit-PolicyBatas yang berlaku, dalam format draf IETF
draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma"<name>";q=<quota>;w=<window in seconds>.keyadalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainyauser, tanpa kredensialip);minute,day, danmonthadalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.RateLimitSisa setiap batas di
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitBatas dari entri paling ketat di
RateLimit-Policy(entri dengan sisa permintaan paling sedikit).X-RateLimit-RemainingSisa permintaan dalam batas paling ketat.
X-RateLimit-ResetDetik hingga batas paling ketat direset.
application/json
401Kredensial tidak dikirim (baik cookie sesi maupun kunci API), atau kunci tidak ditemukan.
Header respons
RateLimit-PolicyBatas yang berlaku, dalam format draf IETF
draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma"<name>";q=<quota>;w=<window in seconds>.keyadalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainyauser, tanpa kredensialip);minute,day, danmonthadalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.RateLimitSisa setiap batas di
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitBatas dari entri paling ketat di
RateLimit-Policy(entri dengan sisa permintaan paling sedikit).X-RateLimit-RemainingSisa permintaan dalam batas paling ketat.
X-RateLimit-ResetDetik hingga batas paling ketat direset.
application/json
403Tindakan tidak diizinkan: peran tidak memadai, tidak ada akses ke koleksi atau kartu, permintaan berjalan dalam mode “View as”, atau organisasi ditangguhkan atau dihapus (`detail` adalah objek dengan `code: org_suspended | org_deleted`).
Header respons
RateLimit-PolicyBatas yang berlaku, dalam format draf IETF
draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma"<name>";q=<quota>;w=<window in seconds>.keyadalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainyauser, tanpa kredensialip);minute,day, danmonthadalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.RateLimitSisa setiap batas di
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitBatas dari entri paling ketat di
RateLimit-Policy(entri dengan sisa permintaan paling sedikit).X-RateLimit-RemainingSisa permintaan dalam batas paling ketat.
X-RateLimit-ResetDetik hingga batas paling ketat direset.
application/json
429Terlalu banyak permintaan (`api.rate_limited`), kuota organisasi untuk menit, hari, atau bulan sudah habis (`api.quota_exceeded`; `error.details` berisi `quota`, `limit`, dan `reset_at`), batas organisasi tercapai, atau layanan jawaban sedang sibuk (`answers.engine_busy`). Tunggu selama waktu di header `Retry-After`.
Header respons
Retry-AfterJumlah detik yang perlu ditunggu sebelum Anda mencoba ulang permintaan.
RateLimit-PolicyBatas yang berlaku, dalam format draf IETF
draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma"<name>";q=<quota>;w=<window in seconds>.keyadalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainyauser, tanpa kredensialip);minute,day, danmonthadalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.RateLimitSisa setiap batas di
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitBatas dari entri paling ketat di
RateLimit-Policy(entri dengan sisa permintaan paling sedikit).X-RateLimit-RemainingSisa permintaan dalam batas paling ketat.
X-RateLimit-ResetDetik hingga batas paling ketat direset.
application/json
503Layanan yang dibutuhkan permintaan ini untuk sementara tidak tersedia. Coba lagi nanti.
Header respons
RateLimit-PolicyBatas yang berlaku, dalam format draf IETF
draft-ietf-httpapi-ratelimit-headers: item yang dipisahkan koma"<name>";q=<quota>;w=<window in seconds>.keyadalah laju permintaan kunci API (kuotanya adalah lonjakan, jendela waktunya adalah waktu untuk mengisinya kembali sepenuhnya; untuk sesi nilainyauser, tanpa kredensialip);minute,day, danmonthadalah kuota organisasi untuk menit, hari, dan bulan kalender dalam UTC.RateLimitSisa setiap batas di
RateLimit-Policy:"<name>";r=<remaining>;t=<seconds until reset>.X-RateLimit-LimitBatas dari entri paling ketat di
RateLimit-Policy(entri dengan sisa permintaan paling sedikit).X-RateLimit-RemainingSisa permintaan dalam batas paling ketat.
X-RateLimit-ResetDetik hingga batas paling ketat direset.
application/json
Kode error
Kode yang dapat dikembalikan endpoint ini di error.code, selain kode umum yang berlaku untuk setiap permintaan.
Percobaan ulang yang aman
Kirim header Idempotency-Key (misalnya UUID) bersama setiap POST dan PATCH. Percobaan ulang dengan kunci yang sama dalam 24 jam mengembalikan respons yang tersimpan alih-alih menjalankan permintaan lagi.
Batas laju
Respons berisi header RateLimit dan RateLimit-Policy serta header lama X-RateLimit-Limit, X-RateLimit-Remaining, dan X-RateLimit-Reset. Respons 429 berisi Retry-After dalam detik: tunggu, lalu coba lagi.