POST /payment/purchase endpoint, with a single discriminated paymentMethod object: { "type": "<code>", "<code>": { ...fields } }. paymentMethod is always required and explicit — there is no implicit default, "card" included. All card and wallet methods support both one-time and recurring (subscription) charges unless noted otherwise.
Wallet methods such as Apple Pay and Google Pay require a connection configured in your Therius dashboard. Contact Therius to enable wallet decryption for your merchant account before going live.
Credit/Debit Card — card
Cards are the universal default. Every currency and country is supported. Pass raw card data server-side during testing; for browser-based checkouts, use a nonce from the JS SDK’s hosted fields instead of raw card data to keep your integration out of PCI scope.
card also accepts nonceData (an SDK hosted-fields nonce), tokenData (reuse a vaulted card), networkTokenData, installments, cardOnFile, networkTransactionId, networkReferenceId, and threeDs (pre-authenticated 3DS proof from your own MPI — see 3D Secure) — all inside the same card object, never at the request root.
Apple Pay — applepay
Apple Pay is supported across iOS, macOS, and Safari. Use the JS SDK’s createWalletButton to render the Apple Pay button and launch the payment sheet. The raw payment token returned by ApplePaySession goes into applepay.token. Apple Pay supports recurring charges.
Google Pay — googlepay
Google Pay works across Android, Chrome, and any browser where the shopper has a saved card. Use the JS SDK’s createWalletButton to render the button and receive the PaymentData token. Google Pay supports recurring charges.
Click to Pay — click_to_pay
Click to Pay is the Visa/Mastercard network-level saved-card scheme, powered by CyberSource. The shopper selects a saved network card without entering card details. Use the JS SDK’s createClickToPayButton to render the button and obtain a nonce.
adyenPaymentMethod (the component’s onSubmit state) in place of encPaymentData/callId — Therius forwards it to Adyen verbatim without decrypting it.
The redirect wallets below (PayPal through PicPay) have no provider-required fields beyond
type — they’re pure redirects. Omit paymentMethod and the request is rejected — every method must be sent explicitly.PayPal — paypal
PayPal supports USD, EUR, GBP, and many additional currencies. It is a redirect-based flow — the shopper is redirected to PayPal to log in and confirm. The response returns status: "pending_action" with actionRequired.url.
Venmo — venmo
Venmo is available for USD transactions in the United States. It uses a redirect flow similar to PayPal.
Alipay — alipay
Alipay supports CNY plus 13 additional currencies for cross-border transactions. Shoppers authenticate in the Alipay app or via QR code. The response returns a redirect URL or QR payload.
WeChat Pay — wechat_pay
WeChat Pay supports CNY plus 9 additional currencies. Shoppers scan a QR code or complete payment inside the WeChat app.
GrabPay — grabpay
GrabPay is Southeast Asia’s leading super-app wallet, available in Malaysia, Singapore, Philippines, Thailand, and Vietnam. Supported currencies: MYR, SGD, PHP, THB, VND.
Amazon Pay — amazon_pay
Amazon Pay lets shoppers use their Amazon account’s stored payment and address details. Supported currencies: USD, EUR, GBP, JPY.
Revolut Pay — revolut_pay
Revolut Pay is available for EUR, GBP, and Central & Eastern European currencies. Shoppers authenticate via the Revolut app.
TWINT — twint
TWINT is Switzerland’s national mobile payment app. CHF only.
MobilePay — mobilepay
MobilePay is widely used in Denmark and Finland. Supported currencies: DKK, EUR.
Cash App Pay — cashapp
Cash App Pay is available for USD transactions in the United States. Shoppers authenticate via the Cash App on their mobile device.
PicPay — picpay_wallet
PicPay is a popular Brazilian digital wallet. BRL only.
Wallet Tokenization
You can save a wallet payment method for future use — for example, to charge a shopper again without requiring them to re-authenticate. To tokenize a wallet transaction, settokenize: true inside the wallet’s object and include a shopper.id in your request. Therius stores the wallet token against that shopper and makes it available for subsequent charges.
Wallet tokenization requires a
shopper.id. Without it, the tokenize flag is ignored and no token is saved.
