Freeze a card
Cards
Freeze Card
Temporarily disable a card. The card balance is preserved and the card can be unfrozen later.
PUT
Freeze a card
Overview
PUT /cards/{id}/freeze temporarily disables a card. While frozen, the card cannot authorize new transactions, but the balance is preserved and pending settlements continue to clear. Use PUT /cards/{id}/unfreeze to reactivate.
For permanent disable with automatic balance refund, use POST /cards/{id}/terminate instead.
When to use it
- A customer reports a suspicious transaction and you want to halt further charges while you investigate.
- The cardholder is going on leave and you want to prevent unintended charges (e.g. recurring subscriptions).
- You want a “kill switch” that you can reverse if needed.
Prerequisites
- The card must belong to your company.
- Card status must be
ACTIVE(not alreadyFROZEN,TERMINATED, etc.).
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 |
|---|---|---|---|
lock | boolean | false | If true, request a deeper “lock” at the upstream issuer (more aggressive — blocks at the network level, not just the issuer’s authorization layer). Use only when needed; standard freeze is sufficient for most cases. |
Body
None.Response
200 — Success
Error responses
| Status | message example | Trigger |
|---|---|---|
400 | "Card already frozen" | Card is already in FROZEN state. |
400 | "Card terminated" | Card is TERMINATED and cannot be frozen. |
404 | "Card not found" | id is invalid or belongs to another company. |
Webhooks fired
None today. Card status changes toFROZEN immediately and is reflected in subsequent GET /cards and GET /cards/{id} responses.
Code examples
cURL
Node.js (axios)
Related
PUT /cards/{id}/unfreeze— reverse this action.POST /cards/{id}/terminate— permanent disable with balance refund.