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
basisstringinvoices: фактури, кредитни известия и касови бележки.payments: дневникът на плащанията (паричен поток). Приpaymentsединственият показател еpaid, а измерениетоdirectionи общата сума показват движението на парите,inилиout, като превод между собствените ви юридически лица еinternal.Допустими стойности:
invoicespaymentsПо подразбиране: "invoices"
group_byarray of FinanceDimensionitems ≤ 3
measuresarray of FinanceMeasureПо подразбиране
invoiced(paidзаpayments).currency_modeFinanceCurrencyModedate_basisstringКоя дата задава периода и филтъра
from/to: датата на документа или датата на плащането.Допустими стойности:
documentpaymentПо подразбиране: "document"
filtersFinanceFilterorder_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
currencystringОтчетна валута (режим
reporting).Общи суми по всички редове преди отрязването, по един запис за всяка валута (при отчет, разделен по посока – за всяка валута и посока,
FinanceReportTotal.direction).truncatedbooleanзадължителноlimitintegerзадължителноtotal_rowsintegerзадължителноБрой на групираните редове преди отрязването.
conversionFinanceConversionwarningsarray 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
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
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
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
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.code, освен общите кодове на всяка заявка.
Безопасни повторни опити
Изпращайте заглавката Idempotency-Key (например UUID) с всяка заявка POST и PATCH. Повторен опит със същия ключ в рамките на 24 часа връща запазения отговор, вместо да изпълни заявката отново.
Лимити на честотата
Отговорите съдържат заглавките RateLimit и RateLimit-Policy, както и по-ранните X-RateLimit-Limit, X-RateLimit-Remaining и X-RateLimit-Reset. Отговорът 429 съдържа Retry-After в секунди: изчакайте и опитайте отново.