Start Invoice Bill Review
Starts a bill review of the invoice against the company’s bill review rules
and answers 202 immediately with the runId to poll.
Nothing is reviewed inside this request. The review runs as background
work, so a 202 means the run was created and dispatched — not that a
verdict exists. Read it with
Get Invoice Bill Review.
There is no request body. The rules are the company’s own and are
snapshotted when the run is created, and the invoice version is pinned from
its current head — so there is nothing for a caller to send. No actionId
and no If-Match either: a bill review reads the invoice and records a
verdict beside it, it does not journal an action against the document.
Re-posting is safe. While a review of this invoice is queued or running,
a second call creates nothing and answers 202 with outcome: in_flight
and the id of the run ALREADY under way. Once that run is terminal, the next
call mints a fresh one — re-reviewing an invoice is a legitimate thing to
want, so this is not deduplicated indefinitely.
Capacity (429). Background work is capped per company. A call made
while the company is at that cap is refused outright, with a message naming
both numbers; nothing is queued. Retry once some of the work in flight has
finished.
Required permission: company.payment:update
Authorizations
API key authentication. Send your raw API key as the Authorization header value with NO scheme prefix — Authorization: YOUR-API-KEY. Do NOT prefix it with Bearer or ApiKey, and do not use an X-API-Key header; those are not accepted.
Path Parameters
Company identifier
Invoice identifier
Response
Accepted — the review was queued (or one was already under way); poll runId
The bill-review run to poll. On in_flight this is the run that was ALREADY under way, not a new one
enqueued when a fresh run was created and dispatched; in_flight when a review of this invoice was already queued or running (nothing new was created); duplicate when the task transport had already seen this run id — each request mints a fresh run, so it should not occur, and is reported rather than hidden
enqueued, in_flight, duplicate 