Enrichment API

Operations related to Qvalia Enrichments

Upload an Invoice PDF

post
/enrichment/{accountRegNo}/invoice

API accepts a single invoice file (PDF or XML) and processes it asynchronously. Returns a polling ID to check the status of enrichment. Send the pollingId to the enrchment GET endpoint to get the status or completed result.

The Enrichment API is billed separately hence require additional permissions to be enabled. Please contact Qvalia support if you require access.

Authorizations
AuthorizationstringRequired
Path parameters
accountRegNostringRequired

Account registration number issued by Qvalia

Default: ""
Body
fileNamestringOptional

Optional name of the file being uploaded, including extension (e.g., invoice.pdf).

Example: invoice.pdf
fileContentstring · byteRequired

The Base64 encoded content of the file.

Example: UEsFBgAAAAAAAAAAAAAAAAAAAAAAAA==
enrichmentTypesstringRequired

types of enrichment tasks to perform. Ex; "capture"

Example: capture
parametersobjectOptional

Optional parameters for enrichment processing

Responses
post
/enrichment/{accountRegNo}/invoice

Send a products list to categorise

post
/enrichment/{accountRegNo}/categorisation

API accepts a list of products and processes it asynchronously. Returns a polling ID to check the status of enrichment. Send the pollingId to the enrchment GET endpoint to get the status or completed result.

The Enrichment API is billed separately hence require additional permissions to be enabled. Please contact Qvalia support if you require access.

Authorizations
AuthorizationstringRequired
Path parameters
accountRegNostringRequired

Account registration number issued by Qvalia

Default: ""
Body
productsobject · byteRequired

Products list that needs to be categorised. id and product_name are required fields.

Example: [{"id":1,"product_name":"fire alarm"}]
enrichmentTypesstringRequired

types of enrichment tasks to perform. Ex; "unspsc"

Example: unspsc
Responses
post
/enrichment/{accountRegNo}/categorisation

Poll for and get enrichment

get
/enrichment/{accountRegNo}/{pollingId}

This endpoint allows clients to check the status of an enrichment process using a polling ID. Since enrichment is an asynchronous operation, this endpoint should be used to monitor progress and retrieve results once processing is complete.

Response Content: The response data will contain results for the specific enrichment types that were requested in the original POST request. For example:

  • If "capture" was requested, the response will include a capture object

  • If "categorisation" was requested, the response will include a categorisation object

  • If both were requested, both objects will be present in the response

Polling Behavior

  • If the enrichment process is still ongoing, the API will return HTTP 202 (Accepted), indicating that the request was received and is still being processed.

  • Once the enrichment is complete, the API will return HTTP 200 (OK) along with the final result.

  • Clients must limit polling requests to once every 30 seconds. Requests made at a higher frequency may be rate-limited or rejected

Authorizations
AuthorizationstringRequired
Path parameters
accountRegNostringRequired

Account registration number issued by Qvalia

Default: ""
pollingIdstringRequired

The unique polling ID for the file

Default: ""
Responses
200

Enrichment complete, result available.

application/json
get
/enrichment/{accountRegNo}/{pollingId}

Get individual enrichment result

get
/enrichment/{accountRegNo}/{pollingId}/{enrichmentType}

Get the enrichment result using the polling ID. Returns the result in the format requested.

Authorizations
AuthorizationstringRequired
Path parameters
accountRegNostringRequired

Account registration number issued by Qvalia

Default: ""
pollingIdstringRequired

The unique polling ID for the file

Default: ""
enrichmentTypestring · enumRequired

The enrichment type sent on posting of the document

Default: captureExample: capturePossible values:
Responses
200

Enrichment complete, result available.

application/json
get
/enrichment/{accountRegNo}/{pollingId}/{enrichmentType}

Last updated

Was this helpful?