Quick Start (30 seconds)
Create a session and redirect your customer:checkoutUrl. Done!
The Basics
What’s “your server”? Backend code like Node.js, PHP, Python, Ruby, etc.
If you’re using a website builder (Shopify, Wix), check if they offer
serverless functions. If you only have static HTML, use Payment
Links instead.
Required Headers
Every request needs these two headers:What’s a header? Headers are extra information sent with your request (like an ID badge). They’re set separately from the request body — see the code examples below.Vault API Key: Developers → Vault Key.Merchant API Key: Developers → API Keys.
Required Fields
Your request body must include these fields:
*
amount is required for standard payments. Accepts string (e.g., "25.00") or number (e.g., 25.00), in major currency units: 25.00 is $25.00, and `10000` is $10,000.00 (not $100). Not needed when using items or checkoutMode: "donation".
Understanding the Three URLs
These three URLs control where customers end up after checkout.Quick Summary
successUrl – Your Confirmation Page
Purpose: Where customers land after successful payment to see their receipt/confirmation. When it’s used: After payment is processed and confirmed. What you receive: Transaction details and card info as URL parameters:cancelUrl – Your “Go Back” Destination
Purpose: Where customers return when they don’t complete checkout. When it’s used: Customer clicks “Cancel”, session expires (30 min), or customer visits old/bookmarked checkout URL. What you receive: Nothing – it’s just a return path. Best Practice: Point to your cart page or wherever the customer was before checkout.errorUrl – Your System Error Handler
Purpose: Handle unrecoverable errors (NOT card declines). When it’s used: Server failures, connectivity issues, authentication errors. NOT for card declines – those show inline messages and let customers retry. What you receive: Error details as URL parameters:Optional Fields
Common Options
Tax-exempt checkout experience
WhentaxExempt is false (the default), the customer enters their billing details on the checkout page first — Ozura uses these to calculate sales tax, and shows the exact tax in the order summary (see Sales tax in the order summary) — then continues to the secure payment step.
When taxExempt is true, there’s no tax to calculate, so checkout skips the billing-details step and takes the customer straight to the secure payment step — a faster, more direct flow for your customers.
Sales tax in the order summary
When the session isn’t tax-exempt, checkout shows the customer the exact tax before they continue to payment. It comes from the same calculation that sets the tax on the charge, so the tax shown is the tax charged. Tax is added on top of youramount, so set prices excluding tax. Outside the US this is the country’s VAT, GST or sales tax; see International billing addresses for the countries covered.
- Before the address is complete, the tax line reads Calculated once you enter your billing address. Checkout doesn’t show an estimate.
- Once the address is complete, checkout calculates the tax for it. The tax line shows Calculating tax…, then the exact amount (for example
$9.75), and the total includes it. What “complete” means depends on the country:- United States: street address, city, state and ZIP code. ZIP codes must be 5 digits or ZIP+4; anything else is rejected on the form with Please enter a 5-digit ZIP code.
- Canada: street address, city, province (code or name, e.g.
ONorOntario) and a postal code in theA1A 1A1format. - Every other country: street address and city.
- Addresses with no tax due (for example a US state with no sales tax) show No sales tax for this address.
- Billing countries where Ozura doesn’t calculate tax show No sales tax for this country, and no tax is added.
- If a US state doesn’t match the ZIP code, tax is calculated from the ZIP code.
If the address can’t be verified
If the billing address is rejected (for example, a ZIP code that doesn’t exist), the tax line reads Check your billing address. The first click on Continue to payment shows Make sure your billing address is correct! We couldn’t calculate tax for it. If it’s right, press Continue to payment again. The customer can correct the address, or click again to continue. Tax is always calculated again before the secure payment page opens. If that calculation fails, the payment page doesn’t open: the customer stays on checkout with There was a problem calculating your tax. Please make sure your billing address is correct. (or We couldn’t calculate tax right now. Please try again.) and can correct the address and try again on the same session. No customer reaches the payment page without sales tax calculated. After 5 failed attempts on one session, checkout cancels the session.If the tax preview is unavailable
If the order summary can’t load the tax (for example, during a brief outage), it shows We couldn’t preview your tax. It will be calculated when you continue. with a Try again link. The customer isn’t blocked: tax is still calculated before the payment page opens, as described above.International billing addresses
Checkout takes billing addresses from any country. Ozura calculates tax for the countries below; for any other billing country, no tax is added (No sales tax for this country).Countries where tax is calculated
Countries where tax is calculated
Americas: United States, Canada, Argentina, Bahamas, Barbados, Chile, Colombia, Peru, UruguayEurope: Albania, Austria, Belgium, Bulgaria, Croatia, Cyprus, Czechia, Denmark, Estonia, Finland, France, Georgia, Germany, Greece, Hungary, Iceland, Ireland, Italy, Latvia, Liechtenstein, Lithuania, Luxembourg, Malta, Moldova, Montenegro, Netherlands, North Macedonia, Norway, Poland, Portugal, Romania, Serbia, Slovakia, Slovenia, Spain, Sweden, Switzerland, Türkiye, United KingdomAsia-Pacific: Australia, Bangladesh, Hong Kong, India, Indonesia, Japan, Kazakhstan, Laos, Macao, Malaysia, New Zealand, Philippines, Singapore, South Korea, Taiwan, Thailand, VietnamMiddle East and Africa: Bahrain, Benin, Cameroon, Cape Verde, Côte d’Ivoire, Egypt, Ghana, Israel, Kenya, Morocco, Niger, Nigeria, Oman, Saudi Arabia, South Africa, Tanzania, Uganda, United Arab Emirates
Countries not supported yet
Tax isn’t available yet for billing addresses in Mexico, China, Paraguay and Costa Rica, so payments from these countries can’t be completed for now:- The tax line reads Not available for this country yet.
- The first click on Continue to payment shows Sales tax isn’t available for your billing country yet, so this payment may not go through. Check the country, or contact the merchant.
- If the customer continues anyway, the payment is refused with Sales tax isn’t available for your billing country yet, so this payment can’t be completed. Please contact the merchant. Nothing is charged, and the customer stays on checkout.
The address form follows the billing country
When the customer picks their billing country, the form adapts to it:- Field names match the country, for example State and ZIP code in the US, Province and Postal code in Canada, County and Postcode in the United Kingdom, Prefecture in Japan, PIN code in India and Emirate in the United Arab Emirates.
- Region and postal code are required wherever the country uses them.
- No postal code field is shown for countries without postal codes: Hong Kong, Macao, United Arab Emirates, Ghana, Uganda, Cameroon, Côte d’Ivoire, Benin and the Bahamas.
- The phone country code follows the billing country; the customer can change it.
Names and addresses in Latin letters
Names and addresses must be written in Latin letters, because that’s what card processors accept. Accented letters are fine: checkout sends them to the processor as plain letters (José Müller becomes Jose Muller). Text in other scripts, such as Japanese, Chinese or Arabic, is refused on the form with a message such as Please enter your name using Latin letters (A-Z).Cart Items (Alternative to Amount)
Instead of a flatamount, you can send an array of cart items for a rich, itemized checkout display.
Checkout Modes
See Donation Mode and Recurring Mode for full guides.
Cart Item Fields
Each item in theitems array supports:
Required Fields
Visual Display Fields (Optional)
Pricing & Discount Fields (Optional)
discount object — pass this instead of computing price/originalPrice/discountLabel yourself:
When
discount is provided, the price field is treated as the original price. Checkout computes the final charge price, sets the strikethrough originalPrice, and generates a discountLabel badge automatically.
Response
What’s Next?
You have acheckoutUrl. Now redirect your customer to checkout.