Prerequisites
Before you begin, make sure you have:- Completed merchant onboarding — sign up and complete KYB verification on the Merchant Dashboard
- Partner API Key — available in your Merchant Dashboard after onboarding
- Merchant ID — your merchant identifier from the Merchant Dashboard
- A backend server — all API calls must be made server-side to keep your API key secure
How It Works
The checkout integration follows a redirect-based flow. Your backend creates a payment, redirects the buyer to the WalletConnect Pay checkout portal, and verifies the result after the buyer returns.Integration Steps
Create a Payment
From your backend, call the Merchant API to create a payment with the order amount and redirect URLs.Store the
paymentId in your database alongside the order so you can verify the payment later.The
amount.value is in minor currency units — for USD, "5000" equals $50.00. See the API Reference for details.Redirect the Buyer
Redirect the buyer to the The checkout portal handles the entire buyer-side payment flow — no additional integration is needed on your end for this step.
gatewayUrl returned by the API. This takes them to the WalletConnect Pay checkout portal where they can connect their wallet, choose a payment option, and complete the transaction.Handle the Return
After the payment completes (or fails), the checkout portal redirects the buyer back to your site:
- Success:
{successUrl}?payment_id={paymentId} - Failure:
{errorUrl}?payment_id={paymentId}
Verify Payment Status
From your backend, call the status endpoint to get the authoritative payment result.If
See the full API Reference for endpoint details and error codes.
isFinal is false (status is processing), poll the endpoint at a reasonable interval until the payment reaches a terminal state.| Status | Terminal | Action |
|---|---|---|
succeeded | Yes | Fulfill the order |
failed | Yes | Show error, offer retry |
expired | Yes | Show expiry message, offer new payment |
processing | No | Poll again after a short delay |
Checkout URL Requirements
Both
successUrl and errorUrl must be valid HTTPS URLs. If either is missing or fails validation, the redirect feature is disabled for that payment — the checkout portal will show a generic success or error message instead.- The checkout portal appends
?payment_id={id}to your callback URLs automatically - There is no
cancelUrl— if the buyer abandons the flow, they simply close the tab - Include your order reference in the URL path (e.g.,
/order/{orderId}/success) so you can correlate the redirect with the right order
Merchant Branding
The checkout portal displays your merchant name and icon to the buyer during the payment flow. These are configured in the Merchant Dashboard:merchant.name— displayed in the payment summarymerchant.iconUrl— displayed alongside your name
For best results, use a square icon with a minimum size of 72x72px in PNG, SVG, or WebP format.
Testing
Use the staging environment to test your integration before going live:| Environment | API Base URL |
|---|---|
| Production | https://api.pay.walletconnect.org |
| Staging | https://staging.api.pay.walletconnect.org |
Example Implementation
A complete working reference implementation is available in the WalletConnect buyer-experience repository: The example includes:- API client — payment creation with checkout URLs
- Checkout route — creates a payment and redirects the buyer
- Order confirmation page — receives the redirect and displays order status