AlmondTill/G3N API

On this page

enrollDevice

mutation · in the family Device fleet

What it does

Enroll a device — register a till, terminal, or bridge and get its one-time pairing code.

Enroll a Device at an LF: the LF tenant-scoped + ACTIVE; an optional POS-class Register target may be declared (stamped at pairing completion; a pi_bridge refuses one — it serves the LF); returns the device + the single-use pairing code ONCE (TTL 15 min, hash-only at rest). Requires the unrestricted capability. Template class A3_DEVICE (manager+/owner G — hand-derived v30).

What happens

The code shows ONCE and expires in minutes; the device exchanges it to come alive.

Careful

The pairing code is a credential — treat it like a password for its fifteen minutes.

Who may call it

Capability area: Device fleet — Enrolling, pairing, suspending and retiring the devices at your registers.

Arguments

NameTypeRequiredNotes
inputEnrollDeviceInput EnrollDeviceInput!yesNo further notes.

Returns

DeviceEnrollment DeviceEnrollment! — The enrollDevice / reissueDevicePairingCode result — the device + its single-use pairing code, returned ONCE (hash-only at rest; the damm32 check symbol screens typos at entry).

Example request

mutation ExampleEnrollDevice($input: EnrollDeviceInput!) {
  enrollDevice(input: $input) {
    pairingCode
    pairingCodeExpiresAt
  }
}

Variables:

{
  "input": {
    "caption": "Blue jeans",
    "logicalFacilityId": "01900000-0000-7000-8000-8026f71c0000",
    "deviceType": "pos_native_ios_phone"
  }
}

Send it with the envelope naming the version: "extensions": {"at": {"version": {"name":"genesis","number":0}}}.

Example response

{
  "data": {
    "enrollDevice": {
      "pairingCode": "BJ-001",
      "pairingCodeExpiresAt": "2027-01-31T00:00:00.000Z"
    }
  },
  "extensions": {
    "at": {
      "callId": "01EXAMPLE-CALL-ID",
      "version": {
        "requested": {
          "name": "genesis",
          "number": 0
        },
        "serviced": {
          "name": "genesis",
          "number": 0
        }
      }
    }
  }
}

Errors this call can answer

Used in