Skip to main content
PUT
/
cards
/
{id}
/
freeze
Freeze a card
curl --request PUT \
  --url https://api.cartevo.co/api/v1/cards/{id}/freeze \
  --header 'Authorization: Bearer <token>'

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 already FROZEN, TERMINATED, etc.).

Request

Headers

NameRequiredDescription
AuthorizationYesBearer <access_token>

Path parameters

NameTypeDescription
idstringCard ID (UUID).

Query parameters

NameTypeDefaultDescription
lockbooleanfalseIf 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

{
  "success": true,
  "statusCode": 200,
  "message": "Card frozen successfully",
  "data": {
    "card_id": "550e8400-e29b-41d4-a716-446655440000",
    "card_status": "FROZEN"
  }
}

Error responses

Statusmessage exampleTrigger
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 to FROZEN immediately and is reflected in subsequent GET /cards and GET /cards/{id} responses.

Code examples

cURL
curl -X PUT https://api.cartevo.co/api/v1/cards/550e8400-e29b-41d4-a716-446655440000/freeze \
  -H "Authorization: Bearer $TOKEN"
Node.js (axios)
await axios.put(
  `https://api.cartevo.co/api/v1/cards/${cardId}/freeze`,
  null,
  { headers: { Authorization: `Bearer ${token}` } }
);

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string<uuid>
required

Response

Card frozen successfully