---
title: "Replace Card"
method: POST
path: "/cards/{cardId}/replace"
tags: ["Cards"]
---

# Replace Card

`POST /cards/{cardId}/replace`

Replace or renew an existing card. This endpoints terminates the card being replaced and creates a new card with the same settings and card type, but different sensitive card information under the same cardholder. This can be useful to replace for instance a stolen credit card. 
The following [callbacks](./createcardsubscription-1) will be triggered by this action:
- For the terminated card: `CARD_TERMINATED`, `CARD_STATUS_CHANGED` to terminated and `CARD_BALANCE_UPDATED` to set the card balance to zero.
- For the newly created card: `CARD_ISSUED`, `CARD_ACTIVATED`, `CARD_STATUS_CHANGED` and `CARD_BALANCE_UPDATED` with the corresponding balance.

## Path parameters

- `cardId` string, uuid, required

## Request body

- object
  - `terminateCardReason` 'DAMAGED' | 'EXPIRING_SOON' | 'LOST' | 'STOLEN' | 'OTHER', required — The reason why the card is being replaced. Depending on the card type there are different valid reasons. `DAMAGED` can be used for physical cards. `EXPIRING_SOON` can be used for physical and virtual cards, plus the cards has to expiry within the next three months. `LOST` can be used for physical cards. `STOLEN` can be used for all types of cards. `OTHER` can be used for all types of cards. A replacement of a card is only possible if the card is _not_ in one of the following statuses: `PENDING_ISSUANCE`, `PENDING_REGISTRATION`, `REQUESTED`. Also, single-use cards cannot be replaced at all.
  - `expiryPeriodMonths` integer, required — The number of months the new card should be valid for. This needs to follow the guidelines from normal [card issuing](./issue-card).

## Response `200`

Ok

- object
  - `cardId` string, uuid
  - `type` 'VIRTUAL' | 'SINGLE_USE' | 'PHYSICAL' | 'BLACK' | 'TRAVEL', nullable — Deprecated, please use `cardConfig` instead. `VIRTUAL` - Virtual credit card `SINGLE_USE` - One-time virtual credit card (only one authorization allowed per card) `PHYSICAL` - Physical credit card `BLACK` - Physical black premium credit card `TRAVEL` - Virtual cards used specifically in travel industry related use cases
  - `cardholderId` string, uuid
  - `organizationId` string, uuid
  - `transactionLimit` object
    - `value` number — The value of the monetary amount, converted to minor units of the currency. For instance 1.00 EUR is 100 cents, thus the value here is `100`. See our [guides](/docs/monetary-values) for more details about how to handle monetary amounts.
    - `currency` string — The currency of the monetary amount in ISO 4217 format, for example `EUR` for Euro or `USD` for US Dollar.
  - `limit` object
    - `value` number — The value of the monetary amount, converted to minor units of the currency. For instance 1.00 EUR is 100 cents, thus the value here is `100`. See our [guides](/docs/monetary-values) for more details about how to handle monetary amounts.
    - `currency` string — The currency of the monetary amount in ISO 4217 format, for example `EUR` for Euro or `USD` for US Dollar.
  - `limitRenewFrequency` 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'QUARTERLY' | 'ANNUAL' | 'TOTAL' — * `DAILY` - The card limit is renewed every day * `WEEKLY` - The card limit is renewed every week * `MONTHLY` - The card limit is renewed every calendar month * `QUARTERLY` - The card limit is renewed every calendar quarter * `ANNUAL` - The card limit is renewed every year * `TOTAL` - The card limit is never going to be renewed. After the limit is spent the card cannot be used anymore.
  - `expiryDate` string, date-time
  - `label` string, nullable — Available only for virtual cards with a `cardConfig` containing `VIRTUAL` or `TRAVEL`. The maximum length is 40 characters.
  - `purpose` string, nullable — Available only for cards with type `SINGLE_USE`
  - `cardDesign` string
  - `cardDesignId` string, uuid — The unique identifier of the card design used for this specific card.
  - `productRef` string — This field is deprecated and will be removed in the future. Use `cardDesignId` instead.
  - `platformFee` boolean
  - `cardConfig` string — Please contact your Pliant contact person for details
  - `replacedByCardId` string, uuid — Filled, if this card was replaced by another card.
  - `replacedCardId` string, uuid — Filled, if this card replaced another card.
  - `replacementReason` 'DAMAGED' | 'EXPIRING_SOON' | 'LOST' | 'OTHER' | 'STOLEN' — Describes the reason for the card replacement.
  - `cardAccountId` string, uuid — The unique identifier of the card account.

## Other responses

- `400` — unresolved $ref
- `401` — unresolved $ref
- `403` — unresolved $ref
- `404` — unresolved $ref
- `429` — unresolved $ref
- `500` — unresolved $ref

---

[API](https://skmtc.dev/getpliant/apis/pliant-customer-api.md) · [All operations](https://skmtc.dev/getpliant/apis/pliant-customer-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/getpliant/pliant-customer-api/revisions/f3f589cfa718/schema)
