---
title: "Update card PIN"
description: "Update the PIN for a card."
protocol: rest
method: PUT
endpoint: "/v1/cards/{card_id}/pin"
baseUrl: "https://api.gravv.xyz"
group: "Cards"
auth:
  label: "Api-Key"
  name: "Api-Key"
  in: header
---

# Update card PIN

<Endpoint method="PUT" path="/v1/cards/{card_id}/pin" />

Update the PIN for a card.

## Path Parameters

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

## Request Body

<ParamField name="card_pin" body="card_pin" type="string" required>
  New PIN for the card
</ParamField>

### Request Examples

<RequestExample>

```json title="Request"
{
  "card_pin": "934829"
}
```

</RequestExample>

## Responses

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

### 200 response

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

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

  </Expandable>
</ResponseField>

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

<ResponseExample>

```json title="Response"
{
  "data": {
    "message": "Card PIN updated successfully"
  },
  "error": null
}
```

</ResponseExample>

### 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 PIN format",
    "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**
