Terminals

Manage Stripe card readers and POS hardware enrolled to your tenant. Slate wraps the Stripe Terminal API to provide unified device registration, status polling, and payment capture from physical readers.

List terminals

bash
GET /v1/slate/terminals
json
{
  "data": [
    {
      "id": "tmr_01hxyz",
      "stripe_reader_id": "tmr_Fxxxxxxxxx",
      "label": "Front Counter — Register 1",
      "device_type": "bbpos_wisepos_e",
      "status": "online",
      "location": "loc_01hxyz",
      "last_seen_at": "2025-06-01T09:55:00Z"
    }
  ]
}

Register a terminal

bash
POST /v1/slate/terminals
NameTypeRequiredDescription
registration_codestringYesThe 8-character code displayed on the reader during pairing mode.
labelstringYesHuman-readable name for the reader (e.g. "Front Counter").
location_idstringNoStripe Terminal location ID. If omitted, the default tenant location is used.
bash
curl -X POST https://api.hldgroup.org/v1/slate/terminals \
  -H "x-internal-secret: <key>" \
  -H "x-tenant-id: ten_01hxyz" \
  -H "x-user-id: usr_01hxyz" \
  -H "x-platform-role: tenant-system-admin" \
  -H "Content-Type: application/json" \
  -d '{
    "registration_code": "halo-twix",
    "label": "Front Counter — Register 1"
  }'

Supported reader models

NameTypeRequiredDescription
BBPOS WisePOS Ebbpos_wisepos_eNoCountertop smart reader. Tap, chip, swipe.
Stripe Reader S700stripe_s700NoAndroid-based smart reader with touchscreen.
BBPOS WisePad 3bbpos_wisepad3NoBluetooth portable reader for mobile POS.
Stripe Reader M2stripe_m2NoBluetooth contactless and chip reader.

Create a connection token

Your POS frontend needs a short-lived connection token to pair with a reader via Stripe.js Terminal SDK.

bash
POST /v1/slate/terminals/connection-token
json
{
  "data": {
    "secret": "wrcsec_test_..."
  }
}

Pass data.secret to StripeTerminal.create({ fetchConnectionToken: () => secret }) in your frontend.

Note:Connection tokens expire after 15 minutes. Generate one per POS session, not per payment. Store it in memory — never persist to disk or localStorage.