Transaction Types & Statuses
Spend Card operations create additional transaction types alongside the standard On-Ramp and Off-Ramp types. For all other types, see Transaction Types & Statuses.
How Transactions Are Identified
In Callbacks
Spend Card transactions are identified by the combination of type + payment_method:
type |
payment_method |
Description |
|---|---|---|
sell |
spend_card_open |
Sell crypto to issue and fund a new Spend Card |
sell |
spend_card_topup |
Sell crypto to top up an existing Spend Card |
buy |
spend |
Purchase crypto using Spend Card balance |
fiat_deposit |
spend_card_topup |
Bank card charge when Spend Card balance is insufficient during a purchase |
In API Polling
When using GET /v1.6/sdk-partner/transactions, Spend Card types are not distinguished from standard types. See Transaction Types & Statuses for the response format.
API polling type names for Spend Card operations:
| Type | Description |
|---|---|
sell |
Selling crypto to fund a Spend Card — card issuance (spend_card_open) or top-up (spend_card_topup) |
buy |
Buying crypto using Spend Card balance (payment_method=spend) |
Sell (Spend Card)
Triggered when a user sells crypto to issue or top up a Spend Card. Two variants:
spend_card_open— createsdepositfirst → then createssellfor EUR funding and card issuance. On failure: createswithdrawto return crypto.spend_card_topup— same flow as standard sell, the payout credits EUR to the user's existing Spend Card.
Identify: Callback: type=sell, payment_method=spend_card_open or spend_card_topup | API: type=sell
| Status | Type | Description |
|---|---|---|
new |
Intermediate | Sell request created (payout address shown / crypto received, preparing payout) |
pending |
Intermediate | EUR top-up processing started |
succeeded |
Final | EUR credited to Spend Card (or new card opened and funded) |
failed |
Final | Payout failed (crypto returned to user) |
cancelled |
Final | Cancelled (crypto returned to user) |
State transitions:
| From | To | Trigger |
|---|---|---|
new |
pending |
processing started |
pending |
succeeded |
payout completed |
pending |
failed |
processing error |
pending |
cancelled |
system cancelled |
Spend Card Purchase
Triggered when a user buys crypto using their Spend Card balance. On success, automatically creates a withdraw transaction.
If the Spend Card balance is insufficient, a fiat_deposit transaction is created automatically to charge the shortfall from the user's bank card.
Identify: Callback: type=buy, payment_method=spend | API: type=buy
| Status | Type | Description |
|---|---|---|
new |
Intermediate | Payment data entered, awaiting processing |
pending |
Intermediate | Card verification and 3D Secure in progress |
order_scheduled |
Intermediate | Payment authorized, awaiting KYC verification |
failed_exchange |
Intermediate | Exchange request failed |
paid |
Final | Transaction successfully completed |
order_failed |
Final | Declined by card issuer / acquirer |
cancelled |
Final | Cancelled (funds returned if charged) |
State transitions:
| From | To | Trigger |
|---|---|---|
new |
pending |
Spend Card verification started |
new |
order_failed |
system error |
pending |
order_scheduled |
order queued |
pending |
failed_exchange |
exchange error |
pending |
order_failed |
payment rejected |
pending |
cancelled |
system cancelled |
order_scheduled |
paid |
KYC passed or not required |
order_scheduled |
failed_exchange |
exchange error |
order_scheduled |
cancelled |
system cancelled |
failed_exchange |
cancelled |
system cancelled |
Fiat Deposit (Spend Card Top-up)
Service transaction automatically created when the Spend Card balance is insufficient during a purchase. Charges the shortfall from the user's bank card.
Identify: Callback: type=fiat_deposit, payment_method=spend_card_topup | API: not available
| Status | Type | Description |
|---|---|---|
new |
Intermediate | Payment data entered, awaiting processing |
pending |
Intermediate | Card verification and 3D Secure in progress |
order_scheduled |
Intermediate | Payment authorized, awaiting KYC verification |
failed_exchange |
Intermediate | Exchange request failed |
paid |
Final | Top-up successfully completed |
order_failed |
Final | Declined by card issuer / acquirer |
cancelled |
Final | Cancelled (funds returned if charged) |
State transitions:
| From | To | Trigger |
|---|---|---|
new |
pending |
card verification started |
new |
order_failed |
system error |
pending |
order_scheduled |
order queued |
pending |
failed_exchange |
exchange error |
pending |
order_failed |
payment rejected |
pending |
cancelled |
system cancelled |
order_scheduled |
paid |
KYC passed or not required |
order_scheduled |
failed_exchange |
exchange error |
order_scheduled |
cancelled |
system cancelled |
failed_exchange |
cancelled |
system cancelled |
Transaction Relationships
Off-Ramp Spend Card open (sell, payment_method=spend_card_open)
├─ Phase 1: deposit created (user sends crypto)
├─ Phase 2: sell created (EUR funding and card issuance)
└─ On failure → creates withdraw (return crypto to user)
Off-Ramp Spend Card top-up (sell, payment_method=spend_card_topup)
├─ Phase 1: sell created (payout address shown)
├─ Phase 2: deposit created (user sends crypto)
├─ Phase 3: sell updated for Spend Card top-up
└─ On failure → creates withdraw (return crypto to user)
Spend Card Purchase (buy, payment_method=spend)
├─ If balance insufficient → creates fiat_deposit (charge shortfall from bank card)
└─ On success → creates withdraw (send crypto to user)