Paying and settlement
What happens when a payer opens a link: checkout resolution, wallet interaction, network selection, settlement, and proxy responses.
Paying is where OpenPayment resolves a stored definition into a real wallet action. By the time the payer reaches checkout, the payment rules are already fixed and the UI only needs to guide settlement.
How a payer enters checkout
There are two entry points:
- a shareable OpenPayment URL
- the Pay page with a
paymentId
Both resolve the same payment definition. The payment link is simply the most convenient public wrapper around that identifier.
What checkout already knows
When a valid payment loads, OpenPayment already knows:
- recipient wallet
- network
- token context
- payment type
- fixed or editable amount behavior
- optional description
This removes the most common sources of payment error found in manual wallet transfers.
The checkout sequence
At a high level, checkout does the following:
- load the payment definition
- render the payment summary
- connect a wallet if required
- switch to the correct network if required
- collect a final amount if the type is
VARIABLE - collect optional proxy query parameters if the type is
PROXY - execute settlement
- return a receipt and, for
PROXY, a protected response
Type-specific settlement behavior
| Type | What changes at payment time |
|---|---|
SINGLE_USE | The link can only complete one successful payment |
MULTI_USE | The link remains reusable after each success |
VARIABLE | The payer can edit the amount before settlement |
PROXY | After settlement, OpenPayment requests the protected resource and shows the result |
SINGLE_USE at checkout
For SINGLE_USE, the payer sees a fixed amount and a one-time payment flow.
If the link has already been paid successfully, OpenPayment does not allow a second payment. Instead, checkout makes it clear that the request has already been completed.
This is why SINGLE_USE is the safest choice for invoices and order-specific links.
MULTI_USE at checkout
MULTI_USE looks similar to SINGLE_USE during an individual payment, but the payment definition stays active afterward.
Each successful settlement produces its own receipt, which means one MULTI_USE definition can accumulate many independent payment events over time.
VARIABLE at checkout
For VARIABLE, checkout initializes the amount field from the configured value and then allows the payer to change it.
Use this when:
- the merchant wants to suggest an amount but not enforce it
- the payment is customer-driven rather than order-driven
Do not use it when your accounting depends on receiving an exact amount every time.
PROXY at checkout
PROXY adds one more stage after payment: protected resource access.
The payer still completes a normal wallet settlement first. After that:
- OpenPayment verifies the payment outcome
- OpenPayment requests the protected HTTPS resource server-side
- the payer receives the returned JSON or text response in the success screen
If your protected resource needs context, the payer can also provide flat query parameters in the checkout UI before paying.
The most important PROXY rule
Payment success and resource success are not the same thing.
For example:
- the settlement may succeed and generate a valid receipt
- the protected resource may still return an application error
In that case:
- the receipt proves the payment happened
- the protected response tells you whether the gated business action succeeded
Teams building with PROXY should log and reason about both outcomes separately.
Network and wallet expectations
The payer needs a compatible wallet on the correct Base network. The checkout helps with both:
- if no wallet is connected, it prompts for connection
- if the wallet is on the wrong network, it prompts for a switch
This matters operationally because the payment definition is network-specific. A Mainnet payment and a Sepolia payment are not interchangeable.
What a successful payment returns
A successful checkout returns at least one critical output: a receipt.
That receipt is what you use later for:
- confirmation
- support
- reconciliation
- explorer-based verification
For PROXY, the success screen can also include a protected response payload. This is typically the application data the payer was trying to access in the first place.
What this means for product design
OpenPayment deliberately separates three concerns:
- payment configuration
- payer interaction
- post-payment verification
That separation lets you create a payment in one system, share it in another, settle it in a third context, and still verify the outcome later using the receipt.