{referenceId} = OpenCard transaction reference from the match request.
Required headers
Signature calculation
X-Data-Signature header exactly. Raw body bytes, not re-serialized JSON.
Resolved payload
Content type depends on callback type configured for the request:application/xml— receipt XML (parsed for VAT + line items)application/json— structured receipt data
- True VAT rates and amounts →
transaction.true.vatwebhook - Line items →
transaction.line.itemswebhook - Receipt file → stored, URL sent via
receipt.fetchedwebhook
Response
Duplicate
CallbackRequestResolved for already-resolved requests → 200 (idempotent, logged as warning).
What happens after
- Receipt file downloaded and stored in cloud
- TrueVAT records created
- LineItem records created
- Webhooks fired to EMS (per org webhook config)

