Skip to main content
All webhook deliveries include:
X-Event: {event_name}
Plus any custom headers you configured, and auth headers if you set authentication_type.

Event catalog

TPA

EventFlag to enableWhen
tpa.signedtpa_signedTPA fully signed, PDF generated

Card holder

EventFlagWhen
card_holder.createdcard_holder_createdCard holder created via API
card_holder.identifiedcard_holder_identifiedIdentity linked via eID
card_holder.signed.pdpccard_holder_signed_pdpcPDPC consent signed
card_holder.deletedcard_holder_deletedCard holder deleted
card_holder.email.deliveredcard_holder_email_deliveredPDPC email delivered
card_holder.email.failedcard_holder_email_failedPDPC email bounced

Transactions

EventFlagWhen
card.transaction.authorizedcard_transaction_authorizedPurchase authorized (real-time)
card.transaction.clearedcard_transaction_clearedTransaction settled (3-5 days)
card.transaction.deletedcard_transaction_deletedAuthorization reversed
card.transaction.invoicedcard_transaction_invoicedInvoice number assigned

Enrichment

EventFlagWhen
receipt.fetchedreceipt_fetchedDigital receipt matched
transaction.true.vattransaction_true_vatCorrect VAT from merchant
transaction.line.itemstransaction_line_itemsPurchase line items
environmental.impact.aland_indexaland_indexCO₂ via Åland Index
environmental.impact.deedsterdeedsterCO₂ via Deedster

Payloads

tpa.signed

{
  "id": "42",
  "name": "Acme AB",
  "organization_number": "5561234567",
  "url": "https://api.opencard.io/files/tpas/abc123.pdf",
  "organization": {
    "reference_id": "client_acme_001"
  }
}

Card holder events (all share same shape)

{
  "card_holder": {
    "reference_id": "employee_john_42"
  },
  "organization": {
    "reference_id": "client_acme_001"
  }
}

card.transaction.* (all share same shape)

{
  "id": "10",
  "state": "authorized",
  "receiptable": true,
  "card_issuer": "corporate-card",
  "card_issuer_reference": "654321",
  "card_issuer_customer_number": null,
  "type": "card",
  "invoice_number": null,
  "invoice_date": null,
  "original_amount": 109.38,
  "original_currency": "SEK",
  "vat_rate": 0,
  "vat_amount": 0,
  "vat_currency": "SEK",
  "accounting_amount": 109.38,
  "accounting_currency": "SEK",
  "exchange_rate": null,
  "purchase_merchant": "Espresso House Sveavägen",
  "purchase_merchant_common": "Espresso House",
  "purchase_date": "2026-06-08",
  "purchase_time": "11:12:14",
  "purchase_timezone": null,
  "purchase_country": "SE",
  "purchase_city": "STOCKHOLM",
  "card_id": 1,
  "card_product": "first_card",
  "card_type": "corporate",
  "card_last_four": "1234",
  "mcc_code": "5814",
  "mcc_text": null,
  "mcc_top_level": "Miscellaneous Stores",
  "branch_code": null,
  "branch_text": null,
  "category_text": "Card purchase",
  "card_holder": {
    "reference_id": "employee_john_42"
  },
  "organization": {
    "reference_id": "client_acme_001"
  }
}

Field reference

FieldTypeDescription
idstringUnique transaction ID. Use this as your primary key.
statestringauthorized, cleared, deleted, invoiced
receiptablebooleanExpect a digital receipt?
card_issuerstringCard program identifier
card_issuer_referencestringIssuer’s reference for this state (not globally unique)
card_typestringprivate, corporate, corporate_with_private_invoice
original_amountfloatAmount at merchant
original_currencystringISO 4217
accounting_amountfloatAmount in customer’s home currency
accounting_currencystringISO 4217
purchase_merchantstringFull merchant name
purchase_merchant_commonstringNormalized merchant name
mcc_codestringMerchant Category Code

receipt.fetched

{
  "url": "https://api.opencard.io/files/receipts/abc123",
  "content_type": "application/pdf",
  "expiration_time": "2026-07-08 13:23:08",
  "purchase_merchant": "ICA Supermarket",
  "original_amount": 245.50,
  "original_currency": "SEK",
  "purchase_date": "2026-06-08",
  "purchase_time": "14:30:00",
  "transaction": {
    "id": "10",
    "card_issuer": "corporate-card"
  },
  "card_holder": { "reference_id": "employee_john_42" },
  "organization": { "reference_id": "client_acme_001" }
}
Receipt URLs expire. Download and store the file, don’t hotlink.

transaction.true.vat

{
  "transaction": { "id": "10", "card_issuer": "corporate-card" },
  "organization": { "reference_id": "client_acme_001" },
  "card_holder": { "reference_id": "employee_john_42" },
  "purchase_country": "SE",
  "vat_rates": [
    {
      "vat_amount": 5.52,
      "taxable_amount": 45.96,
      "total_amount": 51.48,
      "percentage": 12,
      "currency": "SEK"
    }
  ],
  "totals": [
    {
      "vat_amount": 17.1,
      "taxable_amount": 92.29,
      "total_amount": 109.38,
      "currency": "SEK"
    }
  ]
}

transaction.line.items

{
  "transaction": { "id": "10", "card_issuer": "corporate-card" },
  "organization": { "reference_id": "client_acme_001" },
  "card_holder": { "reference_id": "employee_john_42" },
  "line_items": [
    {
      "description": "Cappuccino",
      "amount": 45,
      "total_amount": 45,
      "quantity": 1,
      "currency": "SEK"
    },
    {
      "description": "Cinnamon bun",
      "amount": 35,
      "total_amount": 35,
      "quantity": 1,
      "currency": "SEK"
    }
  ]
}

environmental.impact.aland_index / deedster

{
  "carbon_emission_in_grams": 0.66,
  "carbon_social_cost_amount": 2.1,
  "carbon_social_cost_currency": "SEK",
  "transaction": { "id": "10", "card_issuer": "corporate-card" },
  "organization": { "reference_id": "client_acme_001" },
  "card_holder": { "reference_id": "employee_john_42" }
}