Environments & Base URLs
Environments & Base URLs
Use the matrix below to target the correct services for your environment. Values shown are the currently active endpoints.
Payment Service API base URL
https://api.test.devs.beadpay.io
Provided during onboarding
OIDC / Identity base
https://identity.beadpay.io/realms/nonprod
https://identity.beadpay.io/realms/prod
Realms
Test / Non-prod
nonprod
Production
prod
Token endpoint pattern used for all realms
{OIDC_BASE}/protocol/openid-connect/tokenExplicit token URLs
Test
https://identity.beadpay.io/realms/nonprod/protocol/openid-connect/tokenProduction
https://identity.beadpay.io/realms/prod/protocol/openid-connect/token
Authentication
Resource Owner Password Credentials for terminals
Terminals authenticate with the ROPC flow to obtain an access token using the terminal-issued username and password.
Token URL Test / Non-prod
https://identity.beadpay.io/realms/nonprod/protocol/openid-connect/token
Token URL Production
https://identity.beadpay.io/realms/prod/protocol/openid-connect/token
Form fields
grant_type
password
client_id
bead-terminal
username
{TERMINAL_ID}@beadpay.io
password
{TERMINAL_PASSWORD}
scope
openid profile email
cURL example Test / Non-prod
curl -sS -X POST \
https://identity.beadpay.io/realms/nonprod/protocol/openid-connect/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data 'grant_type=password' \
--data 'client_id=bead-terminal' \
--data '[email protected]' \
--data 'password=YOUR_TERMINAL_PASSWORD' \
--data 'scope=openid profile email'cURL example Production
curl -sS -X POST \
https://identity.beadpay.io/realms/prod/protocol/openid-connect/token \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data 'grant_type=password' \
--data 'client_id=bead-terminal' \
--data '[email protected]' \
--data 'password=YOUR_TERMINAL_PASSWORD' \
--data 'scope=openid profile email'Partners using server-to-server integrations can use their assigned OIDC client and flow. Coordinate with your Bead contact to enable.
Using the API
Include these headers on every request
Authorization
Bearer {access_token}
Content-Type
application/json
Example Create a crypto payment in Test / Non-prod
POST https://api.test.devs.beadpay.io/payments/crypto
Authorization: Bearer {access_token}
Content-Type: application/json
{
"terminalId": "YOUR_TERMINAL_ID",
"merchantId": "YOUR_MERCHANT_ID",
"requestedAmount": 100.00,
"paymentUrlType": "web",
"reference": "ORDER123",
"redirectUrl": "https://yourwebsite.com/payment-success"
}The response includes a trackingId and a paymentUrls.url to redirect the buyer.
Polling payment status
Retrieve details by tracking id
GET {API_BASE}/Payments/tracking/{trackingId}This endpoint returns the current payment object.
Quick Reference
Test Payment API
https://api.test.devs.beadpay.io
OIDC Test base
https://identity.beadpay.io/realms/nonprod
OIDC Production base
https://identity.beadpay.io/realms/prod
Token path
/protocol/openid-connect/token
Common auth client
bead-terminal for terminals
Last updated