Пређите на садржај
Sursa Developers

POST/v1/finance/report

Добијање финансијског збирног извештаја

finance_report

Враћа збирове фактура или плаћања организације, груписане по највише три димензије (категорија, група, делатност добављача, добављач, купац, пословни партнер, смер, валута, месец, квартал, година), са показатељима invoiced, paid, unpaid и tax. Збирови обухватају само документе видљиве кориснику (колекције и категорије његовог профила приступа и подешавање „одговор само из проверених картица“); филтери захтева сужавају овај опсег, али га никада не проширују.

У режиму reporting (подразумевано) износи се претварају у извештајну валуту организације по курсу на датум документа, а износи без курса наводе се у conversion.unconverted. У режиму original износи у различитим валутама се не сабирају, а валута постаје димензија реда. Ако има више редова од limit, truncated је true, а totals и даље обухватају све редове. Захтева профил приступа са приступом финансијским подацима (finance.forbidden).

Извештај, листе фактура и плаћања и њихови извози су операције читања иако користе POST: доступни су у режиму „View as“ и API кључевима са опсегом read (и, као и раније, кључевима са опсегом write).

Аутентификација

Пошаљите API кључ у заглављу Authorization: Authorization: Bearer <кључ>.

Параметри заглавља

  • X-View-Asstring

    Само за API кључеве са улогом admin. Извршава захтев у име профила приступа <profile>[:viewer|verifier|editor], на пример employee:viewer. Кључ инсталације не може да користи ово заглавље (403).

Параметри колачића

  • kb_view_asstring

    Колачић режима „View as“ за сесију. POST /auth/view-as га поставља, а DELETE /auth/view-as брише.

Тело захтева

application/json

Објекат: FinanceReportRequest

  • basisstring

    invoices: фактуре, књижна одобрења и признанице. payments: дневник плаћања (новчани ток). Уз payments једини показатељ је paid, а димензија direction и укупни износ приказују кретање новца, in или out, док је пренос између ваших сопствених правних лица internal.

    Дозвољене вредности: invoicespayments

    Подразумевано: "invoices"

  • group_byarray of FinanceDimension

    items ≤ 3

  • measuresarray of FinanceMeasure

    Подразумевано invoiced (paid за payments).

  • currency_modeFinanceCurrencyMode
  • date_basisstring

    Који датум одређује период и филтер from/to: датум документа или датум плаћања.

    Дозвољене вредности: documentpayment

    Подразумевано: "document"

  • order_bystring

    Показатељ или димензија за сортирање. Подразумевано – први показатељ, опадајућим редоследом.

  • order_descboolean

    Подразумевано: true

  • limitinteger

    Подразумевано: 1000≥ 1, ≤ 10000

  • languagestring

    Језик назива категорија и група, en|ru. Подразумевано en.

Одговори

200Извештај

Заглавља одговора

  • RateLimit-Policy

    Ограничења која важе, у формату IETF нацрта draft-ietf-httpapi-ratelimit-headers: ставке раздвојене зарезима "<name>";q=<quota>;w=<window in seconds>. key је учесталост захтева API кључа (квота је налет, прозор је време за потпуно обнављање; за сесију то је user, без акредитива – ip); minute, day и month су квоте организације за календарски минут, дан и месец по UTC.

  • RateLimit

    Колико је преостало од сваког ограничења из RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Ограничење најстроже ставке у RateLimit-Policy (оне са најмање преосталих захтева).

  • X-RateLimit-Remaining

    Број преосталих захтева по најстрожем ограничењу.

  • X-RateLimit-Reset

    Број секунди до ресетовања најстрожег ограничења.

application/json

Објекат: FinanceReport

  • currency_modeFinanceCurrencyModeобавезно
  • currencystring

    Извештајна валута (режим reporting).

  • rowsarray of FinanceReportRowобавезно
  • totalsarray of FinanceReportTotalобавезно

    Укупни износи по свим редовима пре скраћивања, један запис по валути (за извештај подељен по смеру – по валути и смеру, FinanceReportTotal.direction).

  • truncatedbooleanобавезно
  • limitintegerобавезно
  • total_rowsintegerобавезно

    Број груписаних редова пре скраћивања.

  • warningsarray of string

    Кодови упозорења: profile_missing – подаци о компанији организације нису подешени, па је смер фактуре подразумевано in; catalog_missing – именик компанија није учитан; fx_rate_missing – за неке износе нема девизног курса (conversion.unconverted); fx_rate_stale – неки курсеви су застарели; enrichment_pending – неки документи се још обрађују и нису укључени у укупне износе. Непознат код прикажите уз општу поруку.

400Захтев није исправан: вредност параметра или стање објекта не дозвољава радњу (`detail` је порука).

Заглавља одговора

  • RateLimit-Policy

    Ограничења која важе, у формату IETF нацрта draft-ietf-httpapi-ratelimit-headers: ставке раздвојене зарезима "<name>";q=<quota>;w=<window in seconds>. key је учесталост захтева API кључа (квота је налет, прозор је време за потпуно обнављање; за сесију то је user, без акредитива – ip); minute, day и month су квоте организације за календарски минут, дан и месец по UTC.

  • RateLimit

    Колико је преостало од сваког ограничења из RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Ограничење најстроже ставке у RateLimit-Policy (оне са најмање преосталих захтева).

  • X-RateLimit-Remaining

    Број преосталих захтева по најстрожем ограничењу.

  • X-RateLimit-Reset

    Број секунди до ресетовања најстрожег ограничења.

application/json

Објекат: Error

401Акредитиви нису послати (ни колачић сесије ни API кључ) или кључ није пронађен.

Заглавља одговора

  • RateLimit-Policy

    Ограничења која важе, у формату IETF нацрта draft-ietf-httpapi-ratelimit-headers: ставке раздвојене зарезима "<name>";q=<quota>;w=<window in seconds>. key је учесталост захтева API кључа (квота је налет, прозор је време за потпуно обнављање; за сесију то је user, без акредитива – ip); minute, day и month су квоте организације за календарски минут, дан и месец по UTC.

  • RateLimit

    Колико је преостало од сваког ограничења из RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Ограничење најстроже ставке у RateLimit-Policy (оне са најмање преосталих захтева).

  • X-RateLimit-Remaining

    Број преосталих захтева по најстрожем ограничењу.

  • X-RateLimit-Reset

    Број секунди до ресетовања најстрожег ограничења.

application/json

Објекат: Error

403Радња није дозвољена: улога није довољна, нема приступа колекцији или картици, захтев се извршава у режиму „View as“ или је организација суспендована или обрисана (`detail` је објекат са `code: org_suspended | org_deleted`).

Заглавља одговора

  • RateLimit-Policy

    Ограничења која важе, у формату IETF нацрта draft-ietf-httpapi-ratelimit-headers: ставке раздвојене зарезима "<name>";q=<quota>;w=<window in seconds>. key је учесталост захтева API кључа (квота је налет, прозор је време за потпуно обнављање; за сесију то је user, без акредитива – ip); minute, day и month су квоте организације за календарски минут, дан и месец по UTC.

  • RateLimit

    Колико је преостало од сваког ограничења из RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Ограничење најстроже ставке у RateLimit-Policy (оне са најмање преосталих захтева).

  • X-RateLimit-Remaining

    Број преосталих захтева по најстрожем ограничењу.

  • X-RateLimit-Reset

    Број секунди до ресетовања најстрожег ограничења.

application/json

Објекат: Error

429Превише захтева (`api.rate_limited`), квота организације за минут, дан или месец је потрошена (`api.quota_exceeded`; `error.details` садржи `quota`, `limit` и `reset_at`), достигнуто је ограничење организације или је сервис за одговоре заузет (`answers.engine_busy`). Сачекајте време наведено у заглављу `Retry-After`.

Заглавља одговора

  • Retry-After

    Број секунди које треба сачекати пре поновног покушаја захтева.

  • RateLimit-Policy

    Ограничења која важе, у формату IETF нацрта draft-ietf-httpapi-ratelimit-headers: ставке раздвојене зарезима "<name>";q=<quota>;w=<window in seconds>. key је учесталост захтева API кључа (квота је налет, прозор је време за потпуно обнављање; за сесију то је user, без акредитива – ip); minute, day и month су квоте организације за календарски минут, дан и месец по UTC.

  • RateLimit

    Колико је преостало од сваког ограничења из RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Ограничење најстроже ставке у RateLimit-Policy (оне са најмање преосталих захтева).

  • X-RateLimit-Remaining

    Број преосталих захтева по најстрожем ограничењу.

  • X-RateLimit-Reset

    Број секунди до ресетовања најстрожег ограничења.

application/json

Објекат: Error

503Сервис од кога овај захтев зависи привремено није доступан. Покушајте поново касније.

Заглавља одговора

  • RateLimit-Policy

    Ограничења која важе, у формату IETF нацрта draft-ietf-httpapi-ratelimit-headers: ставке раздвојене зарезима "<name>";q=<quota>;w=<window in seconds>. key је учесталост захтева API кључа (квота је налет, прозор је време за потпуно обнављање; за сесију то је user, без акредитива – ip); minute, day и month су квоте организације за календарски минут, дан и месец по UTC.

  • RateLimit

    Колико је преостало од сваког ограничења из RateLimit-Policy: "<name>";r=<remaining>;t=<seconds until reset>.

  • X-RateLimit-Limit

    Ограничење најстроже ставке у RateLimit-Policy (оне са најмање преосталих захтева).

  • X-RateLimit-Remaining

    Број преосталих захтева по најстрожем ограничењу.

  • X-RateLimit-Reset

    Број секунди до ресетовања најстрожег ограничења.

application/json

Објекат: Error

Кодови грешака

Кодови које ова операција може да врати у error.code, поред општих кодова сваког захтева.

Безбедни поновни покушаји

Уз сваки POST и PATCH захтев пошаљите заглавље Idempotency-Key (на пример UUID). Поновни покушај са истим кључем у року од 24 сата враћа сачувани одговор уместо да поново изврши захтев.

Ограничења учесталости

Одговори садрже заглавља RateLimit и RateLimit-Policy, као и старија X-RateLimit-Limit, X-RateLimit-Remaining и X-RateLimit-Reset. Одговор 429 садржи заглавље Retry-After у секундама: сачекајте и поновите захтев.

← finance · API референца