Payments
Bead provides a unified, secure, and streamlined solution for accepting crypto and digital wallet payments through a hosted payment page. The Payments API is designed to minimize PCI and wallet complexity by keeping tender selection and checkout on Bead's hosted experience while still giving your application full control over when a payment is created and how you confirm completion. By default, Bead handles hosted tender selection based on the tenders enabled for the terminal. For advanced integrations that want a more tailored shopper journey, payment creation can also optionally preselect a specific tender or constrain the hosted experience to a specific tender subset. This optional behavior is documented on Create Payment.
Payments work together with Reporting and Settlement:
Payments create and track individual transactions
Reporting provides historical payment views for partners, merchants, and terminals
Settlement provides batch-level settlement views for reconciliation
Start here
Most integrators start with these pages:
Authentication
Payments use header-based authentication with a terminal API key.
Preferred for new integrations
Send
X-Api-Key: {apiKey}on every Payments requestThe API key is the secret credential
The masked API key is not usable
Legacy support
Existing integrators may still use OAuth password grant and
Authorization: Bearer {access_token}New Payments integrations should use the API key method
See Authentication for full details and examples.
Key features
Hosted payment page
A secure hosted checkout experience that reduces integration complexity and keeps tender flows off your infrastructure. By default, the hosted page manages tender selection for the shopper. Advanced integrations can optionally preselect a tender or tender subset at payment creation time when they want a more tailored entry point.
Real-time webhooks
Status change notifications delivered to your backend so you can react as payments move through their lifecycle.
Payment status API
A simple GET endpoint to retrieve the latest status for a single payment using its paymentId.
Core workflows
Create a hosted payment URL
Use the Payments API to create a payment and receive the hosted checkout URL.
Endpoint:
POST /Payments/cryptoResponse:
paymentId,trackingId,paymentUrls
Go to Create Payment for request fields, examples, terminal type guidance, tender preselection behavior, and best practices.
Present the hosted page
Use paymentUrls[0] to launch checkout:
Web checkout: open in a new tab or embed in an iframe
In-person or demo flows: display the hosted page and have the customer scan the QR code
If you do not send optional tender preselection fields, the hosted page uses the terminal's normal eligible tender-selection experience. If you do send them, the hosted page can take the shopper directly into a dedicated tender flow or a curated tender subset.
Confirm completion
You should confirm the final payment result before fulfilling an order.
You have two options:
Webhooks, recommended for production
Polling
GET /Payments/{paymentId}/trackingfor ad hoc checks and support workflows
Go to Payment Statuses for status values and examples.
API capabilities
Hosted payment
Generate hosted URLs for customers to complete their payments. The hosted page handles tender selection, crypto and wallet flows, and customer prompts. Create Payment also documents the optional tender preselection behavior available for advanced integrations.
Payment status
Check payment status using a simple API call by paymentId. Use this for ad hoc checks and troubleshooting.
Webhooks
Configure real-time status updates delivered to your backend so you do not need to poll the status endpoint.
Environments
Sandbox
Base URL:
https://api.test.devs.beadpay.ioSandbox uses Bead's test API environment, test merchant configuration, test credentials, and hosted test payment experience.
Bead Sandbox crypto payments use live blockchain networks. Crypto test payments require real assets and real network fee tokens. Keep test amounts small.
For tender-specific testing guidance, including supported wallets, fee tokens, and minimum payment amounts, see Test Crypto Transactions and Crypto Testing and Fees.
Production
Base URL:
https://api.devs.beadpay.io
See Sandbox and production URLs for environment switching guidance.
Security and reliability best practices
Keep the API key server-side. Create payments from your backend whenever possible. Do not embed the API key in browser or mobile apps.
Treat the API key like a password. Store it in a secret manager or environment variable and avoid logging it.
Use webhooks for scale. Webhooks reduce polling load and provide faster reaction time.
Always verify final status. Even if the browser redirects or the hosted UI shows success, confirm status via webhook or tracking endpoint.
Common errors
401 Unauthorized
API key missing, invalid, or wrong header name. The header must be exactly X-Api-Key.
403 Forbidden
Request authenticated, but the API key is not permitted for the merchant or terminal context, or the request is hitting the wrong environment.
See Resolving 403 Forbidden When Creating Payments for a detailed checklist.
Next steps
Create your first payment in Sandbox using Quick Start
Add webhooks and validate event handling using the Webhook Event Reference
Implement a status check flow using Payment Statuses
Use Reporting and Settlement to build reconciliation and operational dashboards
Last updated