Event: card.transaction
Sent when a card transaction status changes. The status field indicates the type of event. A single transaction may generate multiple card.transaction events as it moves through its lifecycle.
Transaction lifecycle
Payload
The payload always includes astatus field. Additional fields are included depending on the status.
Common fields
| Field | Type | Description |
|---|---|---|
status | string | One of authorized, settled, declined, reversed |
transactionId | string | Unique transaction identifier |
cardId | string | Card associated with the transaction |
amount | number | Transaction amount in minor units (cents) |
currency | string | ISO 4217 currency code |
currencyPrecision | number | null | Decimal precision of the transaction currency |
billingAmount | number | null | Billing amount in the cardholder’s currency (minor units). Present for cross-currency transactions |
billingCurrencyCode | string | null | ISO 4217 billing currency code |
billingCurrencyPrecision | number | null | Decimal precision of the billing currency |
merchant | string | null | Merchant name |
timestamp | string | ISO 8601 event timestamp |
Status: authorized
Sent when a card transaction authorization is approved and a hold is placed on funds. If a settlement fee applies, the fee field is included.
| Field | Type | Description |
|---|---|---|
fee | number | undefined | Settlement fee in minor units (cents), if applicable |
Status: settled
Sent when an authorized transaction is settled (cleared) by the card network. The settled amount may differ from the authorized amount.
| Field | Type | Description |
|---|---|---|
settledAmount | number | Final settled amount in minor units (cents) |
clearedAt | string | ISO 8601 settlement timestamp |
Status: declined
Sent when a card transaction authorization is declined.
| Field | Type | Description |
|---|---|---|
reason | string | Decline reason |
Status: reversed
Sent when a transaction is fully or partially reversed/refunded. Use originalAmount and amount to determine if this is a partial or full reversal.
Full reversal
The entire authorized amount is released. The transaction is voided.Partial reversal
Part of the authorized amount is released. The remaining hold continues to settlement.| Field | Type | Description |
|---|---|---|
reversalType | string | "reversal", "partial_reversal", "refund", or "partial_refund" |
originalAmount | number | Original authorized or settled amount in minor units (cents) |
amount | number | The reversed/refunded amount in minor units (cents) |
amount to originalAmount. If they are equal, it is a full reversal. If amount < originalAmount, it is partial.
Response
Your endpoint must return a 2xx status code within 30 seconds to acknowledge receipt. Any non-2xx response or timeout triggers the retry policy.| Status code | Meaning |
|---|---|
200 | Event received and processed |
202 | Event received, will process asynchronously |
| Any non-2xx | Delivery failed — will retry |