Skip to main content
When receiptable: true on a transaction, OpenCard tries to match it against merchant digital receipt networks.

What you receive

Three separate webhooks, in any order:
EventContains
receipt.fetchedPDF/image URL (expires — download it!)
transaction.true.vatCorrect VAT breakdown from merchant
transaction.line.itemsIndividual purchase items
Subscribe to all three in your webhook config for the full picture.

Receipt URL handling

{
  "url": "https://api.opencard.io/files/receipts/abc123",
  "content_type": "application/pdf",
  "expiration_time": "2026-07-08 13:23:08"
}
  1. Download immediately when webhook arrives
  2. Store in your system
  3. Don’t hotlink — URLs expire

When no receipt comes

Not all merchants are in the receipt network. If receiptable: true but no receipt.fetched within reasonable time → no match found. Your users can still upload photo receipts via your UI or use Receipt Scanner.