Bead Developers
  • Introduction
  • Quick Start
  • Authentication
  • Payments
    • Create Payment
    • Payment Statuses
    • Payment Webhooks
    • Test Transactions - Crypto
  • Entity Management
    • Onboarding
    • Merchant Management
    • Location Management
    • 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
Powered by GitBook
On this page
  • Endpoint
  • Request Body
  • Example Request
  • Success Response
  • Error Codes
  • Tips
  1. Entity Management
  2. Terminal Management

Create Terminal

Use this endpoint to create a new terminal under a specific merchant location. Only name and locationId are required — other fields such as tenderTypes or displayLogo are optional and can be updated later.

Endpoint

POST /Terminals Authorization: Bearer token (see Authentication guide)

Request Body

Field
Type
Required
Description

name

string

✅ Yes

Display name for the terminal

locationId

string

✅ Yes

The ID of the location the terminal belongs to

tenderTypes

array

❌ No

List of accepted tender types (e.g. ethereum)

description

string

❌ No

Optional description for internal use

displayLogo

boolean

❌ No

Show logo during checkout flow

Example Request

curl -X POST "https://api.test.devs.beadpay.io/Terminals" \
  -H "Authorization: Bearer {{ACCESS_TOKEN}}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Front Counter 1",
    "locationId": "abc123location",
    "tenderTypes": ["ethereum"],
    "description": "Register 1 terminal",
    "displayLogo": true
  }'

Success Response

HTTP 200 OK Returns the terminal credentials and terminal object, including the terminalId required for transactions.

{
  "login": "TERM-abc123",
  "password": "securePassword",
  "terminal": {
    "terminalId": "term123",
    "name": "Front Counter 1",
    "description": "Register 1 terminal",
    "merchantId": "merchant456",
    "merchantLocationId": "abc123location",
    "displayLogo": true,
    "webhookUrl": "https://yourapp.com/webhooks",
    "isEnabled": true,
    "tenderTypes": ["ethereum"],
    "created": "2025-04-22T18:54:32.394Z",
    "updated": "2025-04-22T18:54:32.394Z"
  }
}

Error Codes

HTTP Status
Description

400 Bad Request

Missing required fields or invalid values

401 Unauthorized

Invalid or expired bearer token

409 Conflict

A terminal with that name may already exist

500 Server Error

Unexpected server error

Tips

  • Store the following three values after creation:

    • terminalId → This is required to initiate payment transactions.

    • login and password → These credentials are used for terminal authentication and will not be returned again.

  • Only one terminal can be created per request. To create multiple, use repeated requests programmatically.

PreviousTerminal Lifecycle (Concepts)NextGet Terminal

Last updated 14 days ago

If needed, you can set or update the webhook URL using the endpoint.

Set Webhook URL