---
title: "Update card status"
description: "Update the status of a card. You can freeze a card temporarily or block it permanently."
protocol: rest
method: PATCH
endpoint: "/v1/cards/{card_id}/update"
baseUrl: "https://api.gravv.xyz"
group: "Cards"
auth:
  label: "Api-Key"
  name: "Api-Key"
  in: header
---

# Update card status

<Endpoint method="PATCH" path="/v1/cards/{card_id}/update" />

Update the status of a card. You can freeze a card temporarily or block it permanently.

**Status Options:**
- `active`: Card is active, and you can use it for transactions
- `freeze`: Card is temporarily frozen, and you can't use it until you reactivate it by updating the status to active
- `blocked`: Card is permanently blocked, and you can't reactivate it

## Path Parameters

<ParamField name="card_id" path="card_id" type="string" required>
  The ID of the card to update
</ParamField>

## Request Body

<ParamField name="status" body="status" type="string" required>
  New status for the card

  Possible values: `active`, `freeze`, `blocked`
</ParamField>

<ParamField name="limit" body="limit" type="integer">
  Optional spending limit for the card
</ParamField>

### Request Examples

<RequestExample>

```json title="FreezeCard"
{
  "status": "freeze"
}
```

```json title="ActivateCard"
{
  "status": "active"
}
```

```json title="BlockCard"
{
  "status": "blocked"
}
```

</RequestExample>

## Responses

| Status | Description |
| --- | --- |
| `200` | Card status updated successfully |
| `400` | Invalid request |
| `404` | Card not found |

### 200 response

<ResponseField name="data" type="object">

  <Expandable title="properties">
    <ResponseField name="asset" type="string">
      Blockchain asset associated with the card
    </ResponseField>

    <ResponseField name="billing_address" type="object">

      <Expandable title="properties">
        <ResponseField name="street" type="string">
        </ResponseField>

        <ResponseField name="city" type="string">
        </ResponseField>

        <ResponseField name="state" type="string">
        </ResponseField>

        <ResponseField name="postal_code" type="string">
        </ResponseField>

        <ResponseField name="country_iso_code" type="string">
        </ResponseField>

      </Expandable>
    </ResponseField>

    <ResponseField name="blockchain_network" type="string">
      Blockchain network of the card
    </ResponseField>

    <ResponseField name="currency" type="string">
      Currency of the card
    </ResponseField>

    <ResponseField name="id" type="string">
      Card ID
    </ResponseField>

    <ResponseField name="status" type="string">
      Updated card status

      Possible values: `active`, `freeze`, `blocked`
    </ResponseField>

    <ResponseField name="date_created" type="string">
      Timestamp when the card was created
    </ResponseField>

    <ResponseField name="date_updated" type="string">
      Timestamp when the card status was updated
    </ResponseField>

    <ResponseField name="expiry" type="string">
      Card expiry date
    </ResponseField>

    <ResponseField name="masked_pan" type="string">
      Masked Primary Account Number of the card
    </ResponseField>

    <ResponseField name="name_on_card" type="string">
      Name printed on the card
    </ResponseField>

    <ResponseField name="network" type="string">
      Card network
    </ResponseField>

    <ResponseField name="proxy_address" type="string">
      Proxy address associated with the card
    </ResponseField>

    <ResponseField name="spending_controls" type="object">

      <Expandable title="properties">
        <ResponseField name="activated" type="boolean">
        </ResponseField>

        <ResponseField name="daily_transaction_limit" type="integer">
        </ResponseField>

        <ResponseField name="type" type="string">
        </ResponseField>

      </Expandable>
    </ResponseField>

  </Expandable>
</ResponseField>

<ResponseField name="error" type="null">
</ResponseField>

### 400 response

<ResponseField name="data" type="null" required>
  Always null for error responses
</ResponseField>

<ResponseField name="error" type="string" required>
  Human-readable error message
</ResponseField>

<ResponseField name="error" type="any">

  <Expandable title="properties">
    <ResponseField name="code" type="any">
    </ResponseField>

    <ResponseField name="message" type="any">
    </ResponseField>

  </Expandable>
</ResponseField>

<ResponseExample>

```json title="Response"
{
  "data": null,
  "error": {
    "code": "INVALID_ARGUMENT",
    "message": "Invalid status value. Must be one of: active, freeze, blocked",
    "details": {}
  }
}
```

</ResponseExample>

### 404 response

<ResponseField name="data" type="null" required>
  Always null for error responses
</ResponseField>

<ResponseField name="error" type="string" required>
  Human-readable error message
</ResponseField>

<ResponseField name="error" type="any">

  <Expandable title="properties">
    <ResponseField name="code" type="any">
    </ResponseField>

    <ResponseField name="message" type="any">
    </ResponseField>

  </Expandable>
</ResponseField>

<ResponseExample>

```json title="Response"
{
  "data": null,
  "error": {
    "code": "NOT_FOUND",
    "message": "Card not found",
    "details": {}
  }
}
```

</ResponseExample>

## Authorization

- **ApiKeyAuth**
