Payin Overview
A Payment Page is the core resource for accepting payments. Breeze generates a hosted checkout page that handles card processing, Apple Pay, Google Pay, and crypto — so you don't need to build your own checkout UI or manage PCI compliance.
Payment methods include credit/debit cards, Apple Pay, Google Pay, and crypto. Apple Pay and crypto require account-level enablement — see Configuring Payment Methods.
Why use payment pages?
- One integration — supports cards, Apple Pay, Google Pay, and crypto with no per-method work
- No PCI scope — Breeze hosts the checkout; your server never touches raw card data
- Flexible delivery — redirect to the hosted page, embed as an iframe, or use the React SDK
- Real-time updates — receive webhook events on every status change without polling
How it works
flowchart TD
A["Your backend creates a Payment Page (POST /v1/payment_pages)"] --> B[Breeze returns a hosted payment URL]
B --> C[Customer redirected to payment page]
C --> D[Customer completes payment]
D --> E[Breeze redirects to your successReturnUrl]
E --> F[Your backend receives PAYMENT_SUCCEEDED webhook]
1. Create a Payment Page
Call POST /v1/payment_pages with the amount, currency, and optional customer and product details. Breeze returns a unique hosted URL. See the Quick Start for a full worked example, or the 📄 API Reference — Create a payment page for the full schema.
2. Send the Customer to the Page
Redirect the customer to the returned URL — or embed the page in your UI using the iframe guidelines or React SDK.
3. Customer Completes Payment
Breeze handles the entire checkout: card entry, 3DS authentication, Apple Pay / Google Pay sheets, and crypto wallet flows.
4. Handle the Result
After payment, Breeze redirects the customer to your successReturnUrl or failReturnUrl. Your backend should listen for the PAYMENT_SUCCEEDED webhook rather than relying solely on the redirect — redirects can fail if the customer closes the tab.
5. Stay in Sync
Your server receives webhook events (PAYMENT_SUCCEEDED, PAYMENT_EXPIRED, PAYMENT_ATTEMPT_FAILED) as the payment page moves through its lifecycle. See Webhook Event Reference for full payload examples.
What's in this section
| Page | What it covers |
|---|---|
| Query Status & Cancel | Checking payment page status, expiring a page before payment |
| React SDK | Embedding the checkout with the Breeze React SDK |
| Embedding iframe | iframe setup, Apple Pay cross-domain config, postMessage events |
| Configuring Payment Methods | Controlling which methods appear; which require account enablement |
| Customised UI | Theming and branding the hosted checkout |
| Refunds | Issuing full and partial refunds |
Updated 10 days ago
