Analyze confirmed, normalized historical invoice rows
const url = 'https://api.invogi.com/v1/scans';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"companyId":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","rows":[{"supplierName":"example","supplierTaxId":"example","invoiceNumber":"example","issueDate":"2026-04-15","currency":"GBP","grossAmount":"example","purchaseOrderRef":"example","bankIban":"example","bankSortCode":"60-16-13","bankAccountNumber":"31926819","externalId":"example","sourceRowNumber":1}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.invogi.com/v1/scans \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "companyId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "rows": [ { "supplierName": "example", "supplierTaxId": "example", "invoiceNumber": "example", "issueDate": "2026-04-15", "currency": "GBP", "grossAmount": "example", "purchaseOrderRef": "example", "bankIban": "example", "bankSortCode": "60-16-13", "bankAccountNumber": "31926819", "externalId": "example", "sourceRowNumber": 1 } ] }'Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Defaults to the default company
object
Optional. Rows without a currency are analysed in the organization’s base currency (a ledger export is in one functional currency).
UK sort code; used only together with bankAccountNumber
Example
60-16-13UK account number (6-8 digits); used only together with bankSortCode
Example
31926819Responses
Section titled “Responses”Scan created
object
Rows not analyzed because their externalId was already imported or repeated in the file
object
Total gross value of the analysed invoices in the organization’s base currency (analyzedValueCurrency). Invoices with no exchange rate are left out; see unconvertedInvoices.
Analysed invoices not included in analyzedValue because no exchange rate was available
object
object
Example
{ "status": "COMPLETE", "skippedRows": [ { "reason": "ALREADY_IMPORTED" } ]}Invalid request
object
object
Example
{ "error": { "code": "NOT_FOUND" }}Missing or invalid API key
object
object
Example
{ "error": { "code": "NOT_FOUND" }}Conflicting idempotency key or resource processing state
object
object
Example
{ "error": { "code": "NOT_FOUND" }}Request-rate or customer-usage limit exceeded; inspect the stable error code
object
object
Example
{ "error": { "code": "NOT_FOUND" }}