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
  • Error Object Shape
  • Standard Error Catalogue
  • Validation Error details
  • Retry guidance quick-chart
  1. Reference Guide
  2. Core Concepts

Error Codes

Every non-2xx response from the Bead API returns a standard JSON error object. Use the HTTP status code for high-level handling (retry vs. fix request) and the error string for granular logic.

Error Object Shape

{
  "code": 400,
  "error": "invalid_request",
  "message": "Missing required field address",
  "details": [
    { "field": "address", "issue": "required" }
  ]
}
Field
Type
Description

code

integer

Mirrors the HTTP status

error

string

Machine-readable error key

message

string

Human-readable explanation

details

array

Optional list of field issues; present on validation failures

Standard Error Catalogue

HTTP

error key

When it happens

Retry?

400

invalid_request

Malformed JSON or missing top-level fields

✘

400

validation_error

Field-level problems (see details)

✘

401

invalid_client

Bad client_id / client_secret

✘

401

invalid_grant

Wrong username or password

✘

401

unauthorized

Token missing or expired

Obtain new token

403

insufficient_scope

Token lacks required scope

✘

403

forbidden

Auth OK but caller not allowed on this resource

✘

404

not_found

Resource ID doesn’t exist or not visible

✘

409

conflict

Duplicate operation (e.g., same name)

✘

422

unprocessable_entity

Business rule violated (e.g., delete in-use location)

✘

429

rate_limit_exceeded

Quota exhausted; see X-RateLimit-Reset

✔︎ after back-off

500

internal_error

Unexpected server fault

✔︎ with exponential back-off

503

service_unavailable

Maintenance or downstream outage

✔︎ after Retry-After

Validation Error details

Each entry in details has:

{ "field": "tenderTypes[0]", "issue": "unsupported_value" }
Issue
Meaning

required

Field missing

invalid_format

Wrong data type or regex mismatch

unsupported_value

Value outside allowed enum

too_long / too_short

String length limits

out_of_range

Numeric bounds violated

Retry guidance quick-chart

Category
Example
Client action

Caller fix

400, 401, 403, 404, 409, 422

Correct request before retrying

Back-off then retry

429, 500, 503

Exponential back-off; obey Retry-After when present

Integrations should log both the HTTP status and error key to ease troubleshooting and monitoring.

PreviousAuthenticationNextEnumerations & Schemas

Last updated 2 days ago