Testing
Make sure your integration behaves correctly — creating a Payment Intent, loading the widget, and handling the result — before you rely on it in production.
Use Sandbox to test the whole flow — invoices, products and the widget — without moving real money. Flip your dashboard to Sandbox, or create the Payment Intent with mode: 'sandbox' (it is set when the intent is created, not in the widget). The checks below still apply to your integration logic.
What to check
- Your server creates a Payment Intent and receives a
client_secret. - The widget loads on your domain and accepts the
client_secret. - You correctly handle the
successanderrormessages from the widget. - You resize the iframe in response to
resizemessages. - The customer sees the 3-D Secure prompt when their bank requires one, and the flow completes either way.
Discount codes
If you use coupons on a hosted checkout page, enter a code and confirm the total updates correctly before payment. Manage your codes per product in Products & pricing.
Going live
Once your integration handles the full flow cleanly, you're ready to take real payments. Keep your secret key server-side and monitor your first live transactions from your dashboard.