Skip to main content
Physical cards require a PIN for transaction authentication. UQPAY also supports configurable PIN-free thresholds so cardholders can make low-value purchases without entering a PIN.
PIN settings apply to physical cards only. Virtual cards do not use PINs.

Set PIN at activation

A PIN is mandatory when activating a physical card. Include the pin field in the Activate Card request:
curl -X POST https://api-sandbox.uqpaytech.com/api/v1/issuing/cards/activate \
  -H "x-auth-token: YOUR_API_TOKEN" \
  -H "x-idempotency-key: $(uuidgen | tr '[:upper:]' '[:lower:]')" \
  -H "Content-Type: application/json" \
  -d '{
    "card_id": "b2c1b725-d8f1-4fbb-88a1-41bf9ffc8ead",
    "activation_code": "81534005",
    "pin": "123456"
  }'

Reset PIN

Use the Reset Card PIN endpoint to change a card’s PIN:
curl -X POST https://api-sandbox.uqpaytech.com/api/v1/issuing/cards/pin \
  -H "x-auth-token: YOUR_API_TOKEN" \
  -H "x-idempotency-key: $(uuidgen | tr '[:upper:]' '[:lower:]')" \
  -H "Content-Type: application/json" \
  -d '{
    "card_id": "b2c1b725-d8f1-4fbb-88a1-41bf9ffc8ead",
    "pin": "567890"
  }'

No-PIN payment threshold

The no_pin_payment_amount parameter sets a transaction amount below which PIN entry is not required. This improves the checkout experience for small, frequent purchases — especially in contactless payment scenarios.

Default behavior

ConditionBehavior
no_pin_payment_amount not setTransactions up to 200 SGD proceed without PIN
no_pin_payment_amount set to 0All transactions require PIN
no_pin_payment_amount set to a valueTransactions up to that amount proceed without PIN
For cards issued in USD, the default threshold corresponds to the USD equivalent of 200 SGD at the prevailing exchange rate.

Supported ranges

CurrencyRange
USD0 – 2,000
SGD0 – 2,600

Supported BINs

EnvironmentBINs
Production49372410, 49372408, 49372434, 45659910
Sandbox40963608

Configure the threshold

Set no_pin_payment_amount during card update:
curl -X POST https://api-sandbox.uqpaytech.com/api/v1/issuing/cards/{card_id} \
  -H "x-auth-token: YOUR_API_TOKEN" \
  -H "x-idempotency-key: $(uuidgen | tr '[:upper:]' '[:lower:]')" \
  -H "Content-Type: application/json" \
  -d '{
    "no_pin_payment_amount": 500
  }'

Transaction decision logic

The authorization result depends on three factors: whether the card has a PIN, whether a custom no-PIN limit is configured, and the transaction amount.
Has PINNo-PIN limit configuredTransaction amountResult
YesNo≤ 200 SGDApproved without PIN (or with correct PIN). Incorrect PIN is declined.
YesNo> 200 SGDPIN required. Incorrect or missing PIN is declined.
YesYes (e.g., 500 SGD)≤ custom limitApproved without PIN (or with correct PIN). Incorrect PIN is declined.
YesYes (e.g., 500 SGD)> custom limitPIN required. Incorrect or missing PIN is declined.
If a card has no PIN set and no PIN-free limit configured, high-value transactions will fail due to missing authentication credentials. Always set a PIN during card activation.