---
title: "Update Card"
method: POST
path: "/v1/issuing/cards/{id}"
tags: ["Card Lifecycle"]
---

# Update Card

`POST /v1/issuing/cards/{id}`

Updates the specified issuing card object by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

## Path parameters

- `id` string, uuid, required

## Headers

- `x-on-behalf-of` string
- `x-idempotency-key` string, uuid

## Request body

- CardUpdateRequest
  - `card_limit` number — The total credit limit assigned to the card, currency refer to `card_currency`. This is **not a cumulative balance**, but a fixed credit limit similar to that of a credit card. ##### Field behavior by card product: - **Business Mastercard** and **Personal Visa**: `card_limit` is **required** during card creation and must be **greater than or equal to 0.01**. - **Business Visa**: `card_limit` is **optional**. - If omitted, the system defaults `card_limit` to 0. - If provided, the value must be **greater than or equal to 0**, with up to two decimal places. **Negative values are not allowed.** See [Card products](/card-issuance/v1.6/guide/card-products) for the full capability matrix.
  - `name_on_card` string — The cardholder name shown on the card. When the [Secure Iframe](/card-issuance/v1.6/guide/secure-iframe-guide) renders the cardholder name (`cardholder_name=true`), this value is used as the default; if omitted, the iframe falls back to `first_name + last_name` from the cardholder record.
  - `no_pin_payment_amount` number — The allowable amount for card transactions without PIN verification. Default NO-PIN transaction amount applied when not explicitly set by the customer. Defaults to `200 SGD`. If you would like to opt-out from having any transactions without credentials or password, you may adjust the amount to zero (0). **Note:** This setting is only applicable to **Business Visa**. See [Card products](/card-issuance/v1.6/guide/card-products) and [No-PIN payments](/card-issuance/v1.6/guide/pin-and-no-pin-payments) for more information.
  - `spending_controls` object[] — Rules that control spending for this card.
    - `amount` string, required — Maximum amount allowed to spend per interval, as a decimal string. Must be greater than or equal to zero.
    - `interval` 'PER_TRANSACTION', required — Interval (or event) to which the amount applies. This field is mandatory and must be one of: * `PER_TRANSACTION` - Can not exceed the max authorization amount
  - `risk_controls` RiskControls — User-customized risk control settings. Supported configurations depend on the card product. See [Card products](/card-issuance/v1.6/guide/card-products) for the capability matrix.
    - `enable_3ds` 'Y' | 'N' — Controls whether [3D Secure](https://en.wikipedia.org/wiki/3-D_Secure) is registered for this card. - `Y` — Register 3DS. The challenge behavior at transaction time is then governed by `allow_3ds_transactions`. - `N` — Do not register 3DS. Online transactions bypass 3DS authentication entirely. Supported on **Business Visa** and **Personal Visa** only; ignored on Business Mastercard. See [Card products](/card-issuance/v1.6/guide/card-products). Returned only when explicitly set on the card. When absent, the card follows the account-level 3DS configuration. Modifiable only when the card is in `PENDING` or `ACTIVE` status.
    - `allow_3ds_transactions` 'Y' | 'N' — Determines whether [3D Secure](https://en.wikipedia.org/wiki/3-D_Secure) challenge flow is allowed when a transaction triggers 3DS. - **When creating a card:** Defaults to `Y` if not provided. - **When updating a card:** No default. If not provided, the existing value remains unchanged. Supported on **Business Visa** only. See [Card products](/card-issuance/v1.6/guide/card-products). > **Note:** This field only takes effect when `enable_3ds` is `Y`. If `enable_3ds` is `N`, the card bypasses 3DS entirely and this field has no effect. > **Important:** When set to `N`, your card uses a frictionless 3DS authentication mechanism — transactions complete without OTP input and are treated as cardholder-authenticated. As a result, disputes based on fraud or unauthorized use cannot be raised for such transactions. For enhanced security, it is recommended to keep this set to `Y`. - `Y`: OTP verification may be required. - `N`: No OTP will be required.
    - `allowed_mcc` string[] — Specifies a whitelist of Merchant Category Codes (MCCs) that are permitted for transactions. All transactions under MCCs not listed here will be declined. **Note:** Only one of `allowed_mcc` or `blocked_mcc` can be configured per card. If neither is provided, transactions will follow the default risk control logic.
    - `blocked_mcc` string[] — Specifies a blacklist of Merchant Category Codes (MCCs) that are restricted for transactions. Transactions under these MCCs will be declined, while all other transactions will proceed through the standard UQPAY risk control evaluation. **Note:** Only one of `allowed_mcc` or `blocked_mcc` can be configured per card. If neither is provided, transactions will follow the default risk control logic.
  - `metadata` Metadata — Any key-value object. Max length = 512 bytes. This must be valid JSON data.
  - `card_art_id` string — Identifier of a card art. Stable across card products; reuse the same value when creating multiple cards with the same design.

## Response `200`

Card update successfully.

- object
  - `card_id` string, required — Unique identifier for the card.
  - `card_order_id` string, required — ID of the card order.
  - `card_status` 'PENDING' | 'ACTIVE' | 'FROZEN' | 'BLOCKED' | 'PRE_CANCEL' | 'CANCELLED' | 'LOST' | 'STOLEN' | 'FAILED', required — Card status enum. See the Card lifecycle and statuses guide for more information. - `PENDING`: The request to create the card has been received and is under review. - `ACTIVE`: The request to create the card was successful and the card is ready to use. - `FROZEN`: All incoming authorization requests will be declined. The card can be reactivated to accept new authorizations. - `BLOCKED`: The card was blocked by UQPAY due to suspicious activity. - `PRE_CANCEL`: The card is scheduled for cancellation and is in a waiting period during which all incoming authorization requests are declined. It transitions to `CANCELLED` when the waiting period ends. - `CANCELLED`: The card cannot be reactivated from this state, all incoming authorization requests will be permanently declined. - `LOST`: The card has been reported as lost to UQPAY. - `STOLEN`: The card has been reported as stolen to UQPAY. - `FAILED`: The request to create a card using [Create Card](/card-issuance/v1.6/api-reference/create-card) failed.
  - `order_status` 'PENDING' | 'PROCESSING' | 'SUCCESS' | 'FAILED', required — This field will contain the status of the request after processing. * `PENDING` -The initial status of the order request. * `PROCESSING` - If this status shall be subject to webhooks notification. * `SUCCESS` - The final status of the order request is successful. * `FAILED` - The final status of the order request is failed.

---

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