Skip to main content
Transaction states are the primary channel for delivering purchases to OpenCard. Send every state in the lifecycle so connected EMS apps receive a complete and accurate history.
{card_id} is the id you sent when creating the card. Response 202 — accepted for asynchronous processing. Empty body on success.

Example — cleared purchase


Field reference


States

authorized — one event per purchase

Send one authorized state per purchase: the final authorization at the amount the cardholder approved. This is what EMS apps show the cardholder in real time. Do not send any of these as separate states: If your systems produce several authorization messages for one purchase, collapse them to a single authorized state with the same transaction id, then continue the lifecycle with cleared. Use the same id for all states belonging to one purchase. EMS apps upsert on OpenCard’s internal id after ingestion — your id is the issuer reference across states.

Errors


What happens next

OpenCard normalizes the payload, links it to the card and TPA, and forwards events to EMS webhooks. Optional enrichment (receipts, true VAT, line items) may follow as separate webhook events at the EMS — you do not implement that layer as an issuer.