Skip to main content

XTMS Device Binding Evidence

Use scripts/xtms-device-binding-evidence.sh to capture the operational evidence package for an existing NexGO terminal claim. The claim must already exist through the terminal provisioning flow; operators reconcile and release it by immutable claim ID rather than by merchant and serial-number ownership routes.

Required evidence:

  • Canonical fleet projection for the target merchant, serial, and claim before reconciliation.
  • Retry response for the exact claim ID.
  • Post-retry fleet projection showing the observed remote merchant and terminal IDs, lifecycle, last verification time, and any failure operation.
  • Operator note identifying the XTMS credential, profile, and app-version set used for the run.

The script writes timestamped JSON files under tmp/xtms-device-binding-evidence by default and prints a summary with HTTP statuses. A successful retry is not proof of binding unless the returned and projected lifecycle is BOUND and the provider evidence matches the expected merchant and terminal exactly. CONFLICT and REQUIRES_RECONCILIATION are explicit non-success outcomes.

Command

GATEWAY_API_BASE_URL=https://api.peakgateway.co \
GATEWAY_BEARER_TOKEN=... \
MERCHANT_ID=merch_... \
CLAIM_ID=... \
NEXGO_SERIAL=... \
./scripts/xtms-device-binding-evidence.sh

Optional variables:

  • OUTPUT_DIR: evidence output directory. Defaults to tmp/xtms-device-binding-evidence.

The management token must have platform device-write access. The script does not create claims and does not infer ownership from serial number: it calls POST /api/v1/devices/fleet/claims/{claimId}/retry. Initial claim creation is owned by the terminal provisioning flow, which supplies the provider hardware ID, Gateway device ID, merchant ID, and provider terminal ID to card-present.

Evidence handling

Treat device-binding output as operational evidence. Store the generated files in an approved evidence location and summarize statuses in issue or PR discussion instead of pasting raw device/provisioning payloads into chat.