Terminate a card
Cards
Terminate Card
Permanently disable a card. Any remaining balance is automatically refunded to your company USD wallet. Irreversible.
POST
Terminate a card
Overview
POST /cards/{id}/terminate permanently disables a card. The action is irreversible — a terminated card cannot be reactivated. Any remaining balance on the card is automatically refunded to your company’s USD wallet as part of the same call.
When to use it
- A customer reports their card details are compromised.
- An employee leaves and their per-diem card needs to be killed.
- Cleaning up unused cards to free up your card-slot allowance.
PUT /cards/{id}/freeze instead.
Prerequisites
- The card must belong to your company.
- Card status must not already be
TERMINATED.
Request
Headers
| Name | Required | Description |
|---|---|---|
Authorization | Yes | Bearer <access_token> |
Path parameters
| Name | Type | Description |
|---|---|---|
id | string | Card ID (UUID). |
Query parameters
| Name | Type | Default | Description |
|---|---|---|---|
freezeOnFailure | boolean | false | If true and termination fails upstream, the card is left in FROZEN state instead of ACTIVE, so it cannot be used while you investigate. Recommended for security-sensitive terminations. |
Body
None.Response
201 — Termination successful
| Field | Type | Description |
|---|---|---|
card_id | string | The terminated card. |
card_status | string | Always "TERMINATED". |
refund_processed | boolean | true if the remaining balance was successfully refunded to the company USD wallet, false otherwise (rare; investigate via support). |
balance_before_termination | number | Card balance immediately before termination. 0 for a card with no funds. |
Error responses
| Status | message example | Trigger | Recommended action |
|---|---|---|---|
400 | "Card already terminated" | The card status is already TERMINATED. | No action — the card is already permanently disabled. |
404 | "Card not found" | id is invalid or belongs to another company. | Verify the card ID. |
5xx | "Termination temporarily unavailable" | Upstream issuer transient error. | Retry with freezeOnFailure=true so the card cannot be used while you wait. |
Important notes
- Termination is irreversible. Once a card is
TERMINATED, you cannot unfreeze, fund, or otherwise reactivate it. - The remaining balance is automatically refunded to the company USD wallet — you do not need to call
POST /cards/{id}/withdrawfirst. - Webhook delivery failures do not roll back the termination. The card is terminated even if your webhook receiver is down.
Webhooks fired
card.terminated— emitted with the refund amount and timestamp.transaction.terminated— for the termination transaction record.
Code examples
cURL
Node.js (axios)
Related
PUT /cards/{id}/freeze— temporary, reversible disable.GET /cards/{id}— verify the new status.- Webhooks → card.terminated
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Card ID to terminate