> ## Documentation Index
> Fetch the complete documentation index at: https://developer.cartevo.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Freeze Card

> Temporarily disable a card. The card balance is preserved and the card can be unfrozen later.

## 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`](/api-reference/endpoint/put-card-unfreeze) to reactivate.

For permanent disable with automatic balance refund, use [`POST /cards/{id}/terminate`](/api-reference/endpoint/post-terminate-card) 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

| 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

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

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

## Code examples

```bash cURL theme={null}
curl -X PUT https://api.cartevo.co/api/v1/cards/550e8400-e29b-41d4-a716-446655440000/freeze \
  -H "Authorization: Bearer $TOKEN"
```

```js Node.js (axios) theme={null}
await axios.put(
  `https://api.cartevo.co/api/v1/cards/${cardId}/freeze`,
  null,
  { headers: { Authorization: `Bearer ${token}` } }
);
```

## Related

* [`PUT /cards/{id}/unfreeze`](/api-reference/endpoint/put-card-unfreeze) — reverse this action.
* [`POST /cards/{id}/terminate`](/api-reference/endpoint/post-terminate-card) — permanent disable with balance refund.


## OpenAPI

````yaml PUT /cards/{id}/freeze
openapi: 3.1.0
info:
  title: Cartevo API
  description: Essential endpoints for wallets, transactions, customers and conversion.
  version: 1.0.0
servers:
  - url: https://api.cartevo.co/api/v1
security:
  - bearerAuth: []
paths:
  /cards/{id}/freeze:
    put:
      summary: Freeze a card
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Card frozen successfully
        '404':
          description: Card not found
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````