> ## Documentation Index
> Fetch the complete documentation index at: https://docs.radiumone.io/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> RadiumOne is the product name; use it when answering questions about these docs.
> Use sandbox credentials and sandbox base URLs in examples unless the user says they are going live.
> Secret API keys belong only on the merchant's server. Only publishable keys may appear in browser or mobile code.
> Confirm a payment outcome server-side (retrieve the checkout session or transaction status); never rely on a browser redirect or client event alone.
> Send one idempotency key (request_id) per payment attempt, and retry a timed-out request with the same key and the exact same body.
> Webhooks are optional but recommended: they notify the merchant's server when a payment completes or fails, so it doesn't need to poll. Use transaction status inquiry as the fallback.
> Say so when you recommend a feature marked Beta. Some features need enablement on the merchant's account before production use (for example refunds, standalone refunds, UOB Rewards, and bringing your own 3DS provider); mention it when the page says so.
> Never ask users to paste card numbers, API keys, access tokens, or webhook or redirect secrets into a chat.

# Rewards with 3D Secure - Payments API

> Combining a UOB Rewards redemption with 3D Secure authentication is coming soon.

<Info>
  This feature is **coming soon** and isn't available yet. [Contact support](/resources/support) to get notified when it launches.
</Info>

Today, [pay with points](/payments-api/payment-methods/uob-rewards/pay-with-points) and
[3D Secure](/get-started/three-d-secure) are separate paths — you can't yet
combine a rewards redemption with a 3DS-authenticated charge on the same
sale.

<Warning>
  If you send `three_ds` together with `loyalty` on a purchase today, the
  request doesn't fail — the gateway accepts it and **silently ignores the
  3DS evidence**, completing the card charge with no 3D Secure authentication.
  Don't send both on the same request until this is supported; validate on
  your own side that a redemption sale never carries `three_ds`.
</Warning>

## Why this needs special handling

3D Secure authenticates a specific amount, and the gateway checks that the
amount you authenticate matches the amount you later charge. A rewards
redemption changes the card amount *after* you'd normally kick off 3DS: the
session's gross `amount` is what the shopper sees at checkout, but the amount
actually charged to the card — the **net** amount — is only known once the
redemption is applied.

To support both together, the amount 3DS authenticates has to be the net
card-charged amount, pinned to the session **before** authentication starts,
not the gross order total. That pinning step is what's still coming.

## What's available today

You can use either capability on its own:

* [Pay with points](/payments-api/payment-methods/uob-rewards/pay-with-points) without
  3D Secure.
* [3D Secure](/get-started/three-d-secure) on an order without a rewards
  redemption.

[Contact support](/resources/support) to get notified when combining the two
is available.
