Upload a purchase invoice or receipt

Uploads one PDF, UBL, PNG or JPG file to Inkopen for SnelStart to read.

POST https://cotlet.dev/api/v1/snelstart/purchase-documents

write

Does what dragging a file into Inkopen does. SnelStart reads the file and lists it as a purchase with status Te controleren, with the date, amount and supplier it recognised. Recognition is not 100 percent accurate, and the purchase stays on Vraagposten until a cost account is set. The upload reaches no one and books nothing final, so it does not ask for confirmation.

Parameters

Parameters: upload_purchase_document
NameTypeDescription
file_name string required string File name with extension: pdf, xml (UBL), png, jpg or jpeg.
file_base64 string required string File contents, base64 encoded.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/snelstart/purchase-documents \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"file_name":"Hosting invoice Oct.pdf","file_base64":"JVBERi0xLjQK..."}'
Python
result = client.call("snelstart", "upload_purchase_document", {"file_name":"Hosting invoice Oct.pdf","file_base64":"JVBERi0xLjQK..."})
Node.js
const result = await cotlet.call('snelstart', 'upload_purchase_document', {"file_name":"Hosting invoice Oct.pdf","file_base64":"JVBERi0xLjQK..."});
CLI
cotlet call snelstart upload_purchase_document --data '{"file_name":"Hosting invoice Oct.pdf","file_base64":"JVBERi0xLjQK..."}'

Example response

JSON

{
  "purchase_id": "pur_552",
  "status": "to_check",
  "recognised": {
    "supplier": "Hosting BV",
    "date": "2026-10-12",
    "amount_total": 48.4
  },
  "ledger_account": "Vraagposten"
}

Sign in once. Your agent does the rest.

Sign up and add the apps you need. Free 7-day trial with 2,000 credits, no card needed.