Skip to main content
Event type: card.transaction.created · .completed · .updated · .refund Sent on each card transaction update. The type suffix reflects the action: card.transaction.created, .completed, .updated, or .refund. See Webhooks overview for delivery, headers, and signature verification.

data fields

customerId
string
The customer identifier.
cardId
string
The card identifier.
providerCardId
string
The card identifier at the issuing partner.
transactionId
string
The transaction identifier at the issuing partner (field name rainTransactionId).
action
string
The transaction action that triggered the event.
transactionType
string
Transaction type (e.g. spend, payment, collateral).
status
string
Transaction status: pending, approved, declined, reversed, or settled.
isRefund
boolean
Whether the transaction is a refund.
amount
number
Transaction amount in the card currency.
currency
string
Card currency.
localAmount
number
Amount in the local currency (minor units).
localCurrency
string
Local currency.
merchantName
string
Merchant name. Other merchant fields (merchantId, merchantCategory, merchantCategoryCode, and enriched variants) are also included.
authorizedAt
string | null
ISO 8601 authorization timestamp.
postedAt
string | null
ISO 8601 posting timestamp.
lastEventAt
string
ISO 8601 timestamp of the latest transaction event.
{
  "type": "card.transaction.completed",
  "timestamp": "2026-06-23T12:00:00.000Z",
  "data": {
    "customerId": "cus_3ddd0e5b-6276-4b48-b756-c1fcc9a2efd1",
    "cardId": "card_abc123",
    "providerCardId": "card_abc123",
    "rainTransactionId": "tx_9f86d081",
    "action": "completed",
    "transactionType": "spend",
    "status": "settled",
    "isRefund": false,
    "amount": 25.5,
    "currency": "USD",
    "localAmount": 102000,
    "localCurrency": "COP",
    "merchantName": "Netflix",
    "merchantCategoryCode": "5968",
    "authorizedAt": "2026-06-23T11:59:50.000Z",
    "postedAt": "2026-06-23T12:00:00.000Z",
    "lastEventAt": "2026-06-23T12:00:00.000Z"
  }
}