top of page

Configure hosted checkout

Payment links, buttons, line items, redirects and receipts.

Choose how payment details are collected

The recommended online path combines the Payment Component with REST processing: the browser collects and tokenizes card, ACH or wallet details; your server processes the token. Hosted checkout moves the payment page to the provider. A custom experience can retain tokenized collection while your application controls the surrounding flow. Reporting components are separate from the Payment Component; their session authentication is not the checkout tokenization flow.

Create a link or button

Use Merchant Portal → Collect Checkout → Button Generator, choose a Product Manager item and generate a link, QR code or button. Add success and cancel destinations to the URL allowlist before using redirects.

Choose line items

Purchase items require an existing sku and quantity. Unknown SKUs cause an error; a checkout cannot mix product currencies. At most one customPayment item may let the customer enter an amount; it requires description and currency. // Use with the merchant-generated CollectCheckout setup. CollectCheckout.redirectToCheckout({ lineItems: [{ lineItemType: 'purchase', sku: 'YOUR_EXISTING_SKU', quantity: 1 }], type: 'sale', collectShippingInfo: true, successUrl: 'https://example.com/receipt?id=(TRANSACTION_ID)', cancelUrl: 'https://example.com/cart', receipt: { showReceipt: true, redirectToSuccessUrl: true, sendToCustomer: false } });

Select the operation

Option Behavior type: sale Default; process a sale type: auth Authorize now; capture outside hosted checkout type: customerVaultOnly Save without sale/auth; include customerVault action customerVault.addCustomer Save after successful transaction; default false collectShippingInfo Request shipping data; default false receipt.showReceipt Display receipt; default false receipt.redirectToSuccessUrl Receipt navigation requires successUrl receipt.sendToCustomer Email receipt after approval; default false

Verify redirects

successUrl supports (TRANSACTION_ID) and (CUSTOMER_VAULT_ID). Query the transaction server-side and reject duplicate fulfillment. A redirected URL is not payment proof. cancelUrl has no transaction placeholders.

Join the community and get the latest biz news & tips

Thanks for submitting!

© 2025 Betterpay. All Rights Reserved.

bottom of page