Skip to content

An invoice has a decision

POST

Sent for API submissions, document uploads, ERP-synced invoices, and re-analysis after a company change. Not sent per row of a historical scan (see scan.completed).

Media typeapplication/json
object
data
required
object
invoice_id
required
string format: uuid
decision
required
string | null
Allowed values: PASS REVIEW BLOCK
risk_score
required
integer | null
external_id

Present for API and ERP-synced invoices

string | null
erp

The ERP record the invoice was synced from, so a receiver can act on the bill in its ERP; null for other sources

object
provider
required
string
Allowed values: BUSINESS_CENTRAL ODOO XERO QUICKBOOKS_ONLINE
connection_id
required
string format: uuid
record_id
required

The bill’s ID in the ERP

string
linked_scan_id

Set when an ERP-synced bill is an invoice an earlier historical scan imported. The bill is still analysed in full; it is only not flagged as a duplicate of that copy

string | null format: uuid
initial_sync

ERP-synced bills only. True when the bill came from the connection’s first sync

boolean
export_ready
required
boolean
canonical_export_path
required
string | null
revision

Present when the event follows a correction of the invoice’s data (PATCH /v1/invoices/{invoiceId}). The revision that was analysed

integer
>= 2
superseded_finding_ids

Present with revision. Findings of earlier analyses that the correction replaced. They are no longer current and get no finding.reviewed event, so release any hold you placed for them when the decision allows it

Array<string>
id
required

Event ID

string
type
required
string
data
required
object

Acknowledged