Customize Pay By Link
Configure the payment link and hosted payment page to match your brand and business needs.
Branding
The hosted payment page automatically displays your store branding as configured in the Teya Business Portal. This includes your store name and logo.
Checkout & receipt customisation
The following options can be configured in the Pay By Link settings in the Teya Business Portal. These settings apply across all payment links created for your store.
| Setting | Description | Where it appears | Required |
|---|---|---|---|
| Message on checkout | A custom message shown to the customer before they pay. Use this for order context, instructions, or any terms the customer should see. | Hosted payment page | No |
| Message on receipt | A custom message shown after a successful payment. Use this for confirmation notes, next steps, or contact details. | Receipt page | No |
| Privacy policy URL | A link to your privacy policy. Customers can review how their data is handled before completing payment. | Hosted payment page | No |
| Terms & conditions URL | A link to your terms and conditions, displayed alongside the privacy policy link. | Hosted payment page | No |
Saving a payment method
A payment link can store the customer's card as well as take payment, which makes it a way to put a card on file for a customer who has no account on your site — or when you have no website at all.
Set save_payment_method to true when you create the link. The customer enters their card on the Teya-hosted payment page, so 3D Secure runs there and the card number never touches your systems.
Two fields work together on the link. save_payment_method is what mints the token; transaction_type decides what the customer sees:
transaction_type | amount.value | What the payment page shows |
|---|---|---|
ACCOUNT_VERIFICATION | 0 | Saves the card without charging it. The pay button shows no price. |
SALE (default) | The real amount | Saves the card alongside a real payment. |
If you send transaction_type: ACCOUNT_VERIFICATION with save_payment_method: false, Teya verifies the card but saves nothing.
amount is still required on the request — send a zero value so the customer is not charged:
{
"transaction_type": "ACCOUNT_VERIFICATION",
"save_payment_method": true,
"amount": { "value": 0, "currency": "GBP" },
"merchant_reference": "save-card-cust-4821",
"customer": { "email": "john.doe@example.com" },
"success_url": "https://mywebsite.com/account/cards/saved"
}
The token arrives on the payment.succeeded.v1 webhook as data.token_response.token_id. Store it alongside data.payment_method.brand and last4 so you can render “Mastercard ••••4065” in your UI.
See Card on File for the consent rules and the wider flow, and Charge a Saved Payment Method for charging the token.
Link Expiry
Payment links remain active until they are either paid or explicitly cancelled. To cancel an active link:
- Via the portal: Go to Payment Links in the Teya Business Portal and select Cancel on the relevant link.
- Via the API: Use the Update Payment Link API endpoint.