Upload a statement (ANALYST+, dashboard user)
const url = 'https://api.invogi.com/v1/statements';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/pdf'}, body: 'binary'};
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/statements \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/pdf' \ --data binaryThe file is the raw request body, its type the Content-Type: PDF, CSV,
Excel (.xlsx), PNG, JPEG or TIFF; the contents must match the type.
The same file again returns the existing statement (200, duplicate: true). The statement is read in the background (status PROCESSING)
or at once. A statement that reads, balances and whose supplier is
known is READY; otherwise NEEDS_REVIEW with reviewReasons. PDFs and
scans need the workspace’s external document processing.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Whose statement this is
Request Bodyrequired
Section titled “Request Bodyrequired”Responses
Section titled “Responses”The same file was already received; the existing statement
object
Signed; negative is in the customer’s favour
Signed; negative means the supplier holds the customer’s money
Opening balance + lines = closing balance
List only
As printed on the statement
As printed on the statement
How the supplier was found
CSV/Excel only: the headers found, the column layout used, and a sample of rows
object
Signed; positive adds to what the customer owes
Running balance as printed
Upload only
Example
{ "status": "PROCESSING", "reviewReasons": [ "UNKNOWN_SUPPLIER" ], "source": "UPLOAD", "balanceCheck": "BALANCED", "supplierMatchMethod": "SENDER", "lines": [ { "type": "INVOICE" } ]}The statement
object
Signed; negative is in the customer’s favour
Signed; negative means the supplier holds the customer’s money
Opening balance + lines = closing balance
List only
As printed on the statement
As printed on the statement
How the supplier was found
CSV/Excel only: the headers found, the column layout used, and a sample of rows
object
Signed; positive adds to what the customer owes
Running balance as printed
Upload only
Example
{ "status": "PROCESSING", "reviewReasons": [ "UNKNOWN_SUPPLIER" ], "source": "UPLOAD", "balanceCheck": "BALANCED", "supplierMatchMethod": "SENDER", "lines": [ { "type": "INVOICE" } ]}Invalid request
object
object
Example
{ "error": { "code": "NOT_FOUND" }}API key lacks required scope/role
object
object
Example
{ "error": { "code": "NOT_FOUND" }}