---
title: "Update a card"
method: PATCH
path: "/v0/cards/{id}"
tags: ["Compliance"]
---

# Update a card

`PATCH /v0/cards/{id}`

> **Beta:** This endpoint is in beta and may change before general availability.

Updates mutable attributes of a card. This is a partial update: only the
fields present in the request body are changed; omitted fields are left
unchanged. Card `status` is system-managed and changes through the
status-transition endpoints, not this endpoint.

## Idempotency
The Idempotency-Key header is required. Reusing a key with a different request
body will return a 422 error.

## Path parameters

- `id` string, required — The server-generated ID of the Card object.

## Headers

- `Idempotency-Key` string, required

## Request body

- PatchCardRequest — Request body for updating a card. This is a partial update: every field is optional and only the fields present are changed. Card `status` is system-managed (see the status-transition endpoints) and cannot be set here.
  - `details` PatchCardDetails — The mutable subset of a card's details. Only the fields present are updated; physical attributes (card_type, last_four, is_virtual) and expiry_date are immutable and cannot be changed through this endpoint.
    - `card_product_name` string — The name of the card product in the partner's system.
  - `metadata` Metadata — A set of key-value pairs that can be used to store additional information related to this object.

## Response `200`

Card updated successfully.

- Card — A card object
  - `id` string — The server-generated ID of the Card object.
  - `client_card_id` string — Client-provided identifier for the card. Optional: present only for cards created via file upload, and omitted for cards created through the API, which are identified solely by their server-generated ID.
  - `account_id` string — The ID of the Account object.
  - `entity_id` string — The ID of your entity.
  - `status` 'active' | 'inactive' | 'closed' — Status is system-managed and cannot be set on create; status changes go through the status-transition endpoints.
  - `status_reason` string — The reason for the card's current status. Empty when the card is `active`; otherwise populated. Set via the status-transition endpoints.
  - `created_at` string, date-time — Creation timestamp.
  - `updated_at` string, date-time — Last update timestamp.
  - `details` CardDetails — Physical and product attributes of the card.
    - `card_product_name` string, required — The name of the card product in the partner's system.
    - `is_virtual` boolean, required — True if the card exists as a virtual card; false if a physical representation of the card exists.
    - `card_type` 'hsa' | 'fsa' | 'consumer' | 'commercial', required — The product category the card belongs to.
    - `expiry_date` string, date, required — ISO 8601 calendar date (YYYY-MM-DD) when the card expires. Always the last day of the expiration month (e.g. an expiration of 01/29 is `2029-01-31`).
    - `last_four` string — Last four digits of the card's PAN. Required when creating a card via the API; on responses it is omitted for cards that have no PAN on file (e.g. some file-ingested cards).
    - `replacement_for` string — The server-generated ID of the Card object.
    - `closed_at` string, date-time — Timestamp when the card was closed. Present only when status is `closed`.
  - `metadata` Metadata — A set of key-value pairs that can be used to store additional information related to this object.

## Other responses

- `400` — Malformed request or missing required header.
- `401` — Valid access token was not used to call the API.
- `403` — Valid access token lacks the proper scopes.
- `404` — Card ID passed in is not found.
- `422` — Request validation failed.
- `429` — Rate limit exceeded.
- `500` — Server error. Please try your request again.

---

[API](https://skmtc.net/lead/apis/lead-bank.md) · [All operations](https://skmtc.net/lead/apis/lead-bank/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lead/lead-bank/versions/25c2a92d55e2/schema)
