Skip to main content
With hosted payments, Taliup takes care of the entire payment form. You create a checkout session from your server, receive a checkout_url, and redirect your customer to that URL. Taliup renders a secure, PCI-compliant payment page, processes the card, and then redirects the customer back to your site. You receive the payment result asynchronously via a webhook posted to your webhook_url.

How the flow works

1

Create a checkout session

Call $client->hostedPayments()->createCheckoutUrl() from your server with the order details. The SDK returns a checkout_url, a session token, and an expires_at timestamp.
2

Redirect your customer

Send your customer to the checkout_url — for example with an HTTP redirect or a “Pay now” button.
3

Customer completes payment

Taliup displays the hosted payment page and handles card entry, 3DS authentication, and authorization entirely on its infrastructure.
4

Customer is redirected back

On success, Taliup redirects the customer to your redirect_url. On cancellation, they are sent to your cancel_url.
5

Webhook notification

Taliup sends a signed POST request to your webhook_url with the final payment result. Always verify the signature before fulfilling the order.

Create a checkout URL

Call $client->hostedPayments()->createCheckoutUrl() from your server with the order details. On success the SDK returns a checkout_url you can redirect your customer to, along with a session token and an expires_at timestamp.

Response fields

Request parameters

Required

float
required
The payment amount in the specified currency. For example, 49.99.
string
The payment currency. Accepted values are CAD and USD. Defaults to the merchant’s configured currency if omitted.
string
Your internal order or reference ID. This value is returned in the webhook payload so you can match the notification to the correct order.
string
The HTTPS URL Taliup redirects the customer to after a successful payment. Must use HTTPS.
string
The HTTPS URL Taliup redirects the customer to if they cancel the payment. Must use HTTPS.

Optional — customer info

string
Customer’s first name. Pre-populates the name field on the hosted payment form.
string
Customer’s last name. Pre-populates the name field on the hosted payment form.
string
Customer’s email address. Used for receipts and pre-populating the hosted payment form.

Optional — line items

array
An array of line item objects. Each item supports the following fields:

Optional — webhook and metadata

string
The HTTPS URL Taliup will POST the payment result to after the payment is captured. Must use HTTPS. See Webhooks for payload details.
string
A free-form string to tag the traffic source for reporting. For example, "my-platform" or "mobile-app".
integer
How long the checkout session remains valid, in minutes. Must be between 5 and 60. Defaults to 30. After expiry the checkout_url stops working and the customer must start a new session.

Supported currencies

CAD

Canadian Dollar. Pass 'currency' => 'CAD' in your payload.

USD

US Dollar. Pass 'currency' => 'USD' in your payload.

Session expiry

Checkout sessions expire between 5 and 60 minutes after creation, with a default of 30 minutes. Once a session expires, the checkout_url is no longer valid.
If a customer’s session expires before they complete payment, you must create a new checkout session and redirect them to the new checkout_url.

Verify a transaction

After a payment is captured you can confirm its status server-side by calling verifyTransaction() with the token returned when you created the checkout session. This is useful as a secondary check alongside webhook delivery.
Always treat your webhook handler as the primary source of payment outcomes. Use verifyTransaction as a fallback — for example, if a customer returns to your site before the webhook has been delivered.

HTTPS requirement

The redirect_url, cancel_url, and webhook_url fields must all use HTTPS. Requests containing HTTP URLs for these fields will be rejected by the API.