POST /payment/purchase endpoint as a standard card charge. You don’t need a different integration per method — you switch payment methods with a single discriminated paymentMethod object: { "type": "<code>", "<code>": { ...fields } }. This means you can add Pix in Brazil, ACH in the US, and Klarna in Europe without touching your core checkout logic.
Each APM requires a connection that supports it to be enabled on your account first. Check the Connections page in your dashboard for what is live, and contact Therius to add a method you need — no integration change is required on your side once it’s enabled.
Base Request Shape
All APM requests share the same top-level structure.paymentMethod.type picks the method; the matching key inside paymentMethod holds that method’s fields. amount.currency and the method’s own fields are what change between methods.
paymentMethod is always required and explicit — type is the single source of truth for which method is being charged, so there’s no separate field that could disagree with it.Several APMs also require the shopper’s national ID or tax document (e.g. Pix needs a Brazilian CPF/CNPJ, PSE needs a Colombian document type and number). This goes on the request-root
shopper.document object — { "type": "<code>", "number": "<value>" } — not inside paymentMethod.<type>, since the same shopper identity applies regardless of which method they end up using. type is a canonical Therius document type code (see GET /sdk/payment-methods, or the reference table in document_types) — a broad, market-true catalog, not a guarantee every listed type is verified against a specific connection. A method’s own payerTaxId/payerTaxIdType field, where still accepted, overrides shopper.document for that one call.Therius validates the number against the catalog before the payment goes out: the format of that document type and, where the type has one, its check digits (for example CPF, CNPJ — including the alphanumeric CNPJ — RUT, CUIT, NIT, RFC, RUC, DNI/NIE, codice fiscale, NIF, BSN, PESEL, Aadhaar). The country is taken from billingAddress.countryCode, else from the checkout session. A failure returns a 400 such as shopper.document.number is not a valid CPF. For Pix and Boleto, a number sent without a type is read as a CPF (11 digits) or CNPJ (14 characters).Redirect vs. Direct-Debit Methods
APMs fall into two broad categories depending on how the customer authorizes the payment.Redirect Methods
The customer is redirected to a third-party page (for example, their bank or PayPal) to authorize the payment. Include
returnUrl and cancelUrl inside the method’s object. The API responds with status: "pending_action" and actionRequired.url.Direct-Debit Methods
Bank account details are collected upfront — no redirect. Pass account fields such as
bankAccountNumber and bankRoutingNumber (ACH) or iban (SEPA) directly inside the method’s object.Handling the Redirect
When a method returnsstatus: "pending_action", you must send your customer to actionRequired.url to complete authorization.
- JS SDK
- Server-Side Redirect
Pass the
actionRequired object directly to sdk.handleAction(). The SDK manages the redirect lifecycle and resolves the promise with the final PaymentResult once the customer returns.Supported Methods
Method-Specific Examples
- Pix
- ACH
- iDEAL
- Klarna
Pix generates an instant-payment QR code. The response includes a QR code image URL and a copy-paste code string under
actionRequired. Settlement is immediate. payerName, payerEmail, and shopper.document (CPF) are required.ACH Tokenization
For ACH payments you can save the bank account for future use by settingtokenize: true inside the method’s object, alongside a shopper.id. Therius returns a vault token in the response that you can pass to subsequent ACH charges without asking the customer to re-enter their account details.
token:
ACH tokenization is subject to NACHA rules. Ensure you display the required bank-account authorization mandate to the customer before submitting the request.

