Bead Developers
  • Introduction
  • Quick Start
  • Authentication
  • Payments
    • Create Payment
    • Payment Statuses
    • Payment Webhooks
    • Test Transactions - Crypto
    • Changelog
  • Entity Management
    • Onboarding
    • Merchant Management
      • Get Merchant
      • Changelog
    • Location Management
      • Create Location
      • Get Location
      • List Locations
      • Update Location
      • Delete Location
      • Changelog
    • Terminal Management
      • Terminal Lifecycle (Concepts)
      • Create Terminal
      • Get Terminal
      • List Terminals
      • Update Terminal
      • Delete Terminal
      • Webhook Management
      • Changelog
  • Settlement
    • Batches
    • Settlement Details
  • Reporting
    • Payment History Concepts
      • Pagination and Sorting
    • Partner Payments
    • Merchant Payments
    • Terminal Payments
    • Changelog
  • Reference Guide
    • Core Concepts
      • Environments & Base URLs
      • Authentication
      • Error Codes
    • Enumerations & Schemas
      • Tender Types
        • Crypto
        • Alternative Payments
      • Settlement Currencies
      • Common Field Types
    • Endpoint Index
      • Table View (All APIs)
      • Download OpenAPI / Postman
    • Payment Scenarios
      • Under- and Over-Payment Handling
      • Reclaiming Unconverted Crypto
    • Operational Guides
      • Compatible Crypto Wallets
      • Webhook Event Reference
    • Support & Contacts
      • Integration Support
      • Escalation Contacts
    • Changelog
  • FAQs & Troubleshooting
    • Authentication FAQs
    • Payments FAQs
      • Resolving “403 Forbidden” When Creating Payments
    • Environment & Testing
      • How to Test Klarna Payments
      • How to Prepare for USDC Testing
      • How to Test Klarna Payments
    • Webhooks & Error Codes
Powered by GitBook
On this page
  • Flow 1: Terminal-based Authentication (Payments & Status APIs)
  • Endpoint:
  • Authentication Request (Terminal-based):
  • Response Example:
  • Flow 2: Username & Password Authentication (Boarding, Settlement, Reporting APIs)
  • Endpoint:
  • Authentication Request (Username & Password):
  • Response Example:
  • Best Practices
  • Next Steps

Authentication

Bead APIs use OAuth2 for secure authentication. There are two different OAuth2 flows depending on the API category you are accessing:

Flow 1: Terminal-based Authentication (Payments & Status APIs)

Used primarily for initiating payments, checking payment status, and configuring webhooks.

Endpoint:

POST https://identity.beadpay.io/realms/nonprod/protocol/openid-connect/token

Authentication Request (Terminal-based):

POST https://identity.beadpay.io/realms/nonprod/protocol/openid-connect/token
Content-Type: application/x-www-form-urlencoded

grant_type=password
client_id=bead-terminal
username={terminalId}@beadpay.io
password={terminalPassword}
scope=openid profile email

Response Example:

{
  "access_token": "eyJhbGciOi...",
  "expires_in": 3600,
  "token_type": "Bearer"
}

Use this token as a bearer token in your requests:

Authorization: Bearer {access_token}

Flow 2: Username & Password Authentication (Boarding, Settlement, Reporting APIs)

For Boarding, Settlement, Reporting, and similar APIs, use your provided integration credentials (username/password).

Endpoint:

POST https://identity.beadpay.io/realms/nonprod/protocol/openid-connect/token

Authentication Request (Username & Password):

POST https://identity.beadpay.io/realms/nonprod/protocol/openid-connect/token
Content-Type: application/x-www-form-urlencoded

grant_type=password
client_id=bead-integrator
username={your_username}
password={your_password}
scope=openid profile email

Response Example:

{
  "access_token": "eyJhbGciOi...",
  "expires_in": 3600,
  "token_type": "Bearer"
}

Similarly, use this token as a bearer token in your requests:

Authorization: Bearer {access_token}

Best Practices

  • Always use HTTPS when making OAuth2 requests.

  • Store your tokens securely. Do not expose tokens publicly or in client-side code.

  • Refresh tokens proactively to avoid downtime due to expired tokens.


Next Steps

PreviousQuick StartNextPayments

Last updated 2 months ago

For questions about authentication or credentials, reach out to .

Payments
Boarding
Settlement
Reporting
developers@bead.xyz