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.Recommended
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, thecheckout_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 callingverifyTransaction() 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.