POST/v1/cards/:id/unfreeze

Unfreeze a card

Lifts a freeze you set, returning the card to active.

Required scope: cards.writeRate limit: 10 rps

A card the ISSUER suspended is not yours to unfreeze — that answer is suspended_by_provider, and it needs the provider, not a retry.

Parameters

idstringrequired

The card ID.

Idempotency-Keystringrequired

Required, at least 8 characters. A replayed key returns the stored answer and does not toggle the card twice.

Code samples

curl -X POST "https://samaprime.com/api/v1/cards/smsord_01J8X9AABBCCDD/unfreeze" \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 0e7f5c1e-2b3a-4f6d-9c8b-1a2b3c4d5e6f"

Response

→ 200
{
"data": {
"id": "cm_card_01J8Z1A2BBCCDD",
"status": "active"
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-08-06T12:00:00Z"
}
}

Errors

StatusCode
404not_found

No card with this ID belongs to you at this store.

409suspended_by_provider

This card is suspended by the issuer, not frozen by you.

409provider_error

The issuer refused the unfreeze. The card stays exactly as it is, still frozen.

400idempotency_key_required

There is no Idempotency-Key header, or it is shorter than 8 characters. Required even though an unfreeze moves no money: the same toggle must not be applied twice.

403test_key_not_allowed

A test key (sk_test_) cannot move money: card writes need a live key. Nothing was reserved and the wallet was not touched.