Hosted checkout

Redirect customers to Payzum's hosted payment page.

For merchants who don't want to render their own deposit page, payzum ships a buyer-facing hosted checkout. Every invoice gets a clean URL that displays the deposit address, QR code, a countdown to expiration, and a live status indicator.

URL pattern

https://<host>/pay/<invoiceId>

When you create an invoice with POST /v1/payment, the response includes an invoice_url field pointing at the hosted checkout. Redirect your customer to that URL.

Create + redirect

Pull the invoice_url out of the create-invoice response and use it as a redirect target on your checkout screen.

curl -X POST "$PAYZUM_BASE/v1/payment" \
  -H "x-api-key: $PAYZUM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "price_amount": 49.99,
    "price_currency": "usd",
    "pay_currency": "usdttrc20",
    "order_id": "ORDER-12345"
  }' | jq -r '.invoice_url'

Redirect the customer to the returned URL. No further integration is needed for the payment flow.

What the hosted page shows

  • The chain and pay currency.
  • The exact pay amount and the deposit address (with copy button).
  • A QR code targeting the deposit address.
  • A countdown to invoice expiration.
  • A live status indicator that updates as confirmations arrive.

Polling status yourself

If you prefer to render your own checkout UI instead of using the hosted page, you can poll the public status endpoint directly without an API key.

curl -s "$PAYZUM_BASE/v1/public/invoice/inv_abc123/status" | jq .

Replace inv_abc123 with the payment_id returned when you created the invoice. The public status endpoint does not require an x-api-key header, making it safe to call from a browser.

Customizing the checkout

Logo and accent-color theming for the hosted checkout is on the roadmap. In the meantime, the page renders with neutral payzum branding.