> ## Documentation Index
> Fetch the complete documentation index at: https://docs.boomfi.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Checkout

> Hosted customer checkout for payment links.

When a customer opens a payment link, BoomFi hosts checkout at `https://pay.boomfi.xyz`: they connect a wallet or follow the configured payment methods and complete the transfer on a supported network.

## How it fits together

1. You create a [Payment Links](/payments/paylinks) in the dashboard or API
2. You send the checkout URL (email, your website, in-app browser)
3. Customer completes payment
4. Your backend receives webhooks and updates order state

## Customer information

Checkout asks for the payer's name and email. Extra fields, when the paylink enables them, are date of birth, nationality, place of birth, address, and phone. You can prefill them on the paylink URL. `nationality` is an ISO 3166-1 alpha-2 code (`GB`); the stored value is alpha-3 (`GBR`).

Which fields you can turn on, and the query parameters for each, are in [Paylink Features](/payments/paylink-features).

## After completion

In the dashboard paylink builder, or via the Paylinks API `after_completion` field, you can:

* Show a confirmation screen (default or custom message)
* Redirect to your own success URL after a successful payment (`type: redirect` + `redirect_url`)
* Redirect to a failure URL when the link expires or payment.status is Failed (`failure_redirect_url`)
* Optionally allow repeat payments without a duplicate-payment acknowledgement

Create, get, and list paylink responses include `after_completion` when it is set. You can also send it nested under `metadata.after_completion`; the first-class field wins if both are present.

<img src="https://mintcdn.com/boom-fi/yPLvmX4qzaQfr3uG/payments/images/checkout-success-settings-boomfi.png?fit=max&auto=format&n=yPLvmX4qzaQfr3uG&q=85&s=f1095d6ad8a0ae1fac0e074b373b2bbb" alt="BoomFi checkout success settings" width="1440" height="900" data-path="payments/images/checkout-success-settings-boomfi.png" />

## Redirect from your app

```javascript theme={null}
// Prefer the checkout URL from the dashboard or generate-variant response (`data.url`).
// Create-paylink responses expose the link `id`: open the hosted URL returned by your
// integration path, or call POST /paylinks/generate-variant/{paylinkId} when you need
// amount/currency overrides and a temporary checkout URL.
const checkoutUrl = variantResponse.data.url;
window.location.href = checkoutUrl;
```

## Trust server-side confirmation only

Do not ship digital goods based solely on the browser landing on a success URL. Always verify [Verify Webhook Signatures](/webhooks/verify-signatures) and treat `Payment.Updated` with `status: Succeeded` as paid. Underpayment emits `Payment.Updated` with `status: RequiresAction`, `paid_amount`, and `proxy_wallet` (`address`, `chain_id`, `token_address`) — see [Event Types](/webhooks/event-types). The same `proxy_wallet` object is on `GET /payments/{id}`.

## Transactions

Inspect payments under `https://app.boomfi.xyz/dashboard/transactions`.

<img src="https://mintcdn.com/boom-fi/yPLvmX4qzaQfr3uG/dashboard/images/transactions-list-boomfi.png?fit=max&auto=format&n=yPLvmX4qzaQfr3uG&q=85&s=148b90e22725ef7e258d26bf37b6e11e" alt="BoomFi transactions list" width="1440" height="900" data-path="dashboard/images/transactions-list-boomfi.png" />

## Next steps

* [Webhooks Overview](/webhooks/overview)
* [Cookbook: Sell a Product](/payments/cookbook-sell-product)
* [Cookbook: Offer Crypto as a PSP](/payments/cookbook-psp-paylinks)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.