| WebSocket auth token | POST /api/ws-token | Issues a single-use, 60-second token for opening a WebSocket connection to receive interaction status updates. |
| Connect | POST /api/terminal/{device_id}/connect | Establishes a session with the terminal. Optional — all endpoints auto-connect. Use force: true to reconnect. |
| Disconnect | DELETE /api/terminal/{device_id}/disconnect | Closes the active session, releasing the device. |
| List terminals | GET /api/terminal | Returns each terminal’s name, device_id, and capabilities. |
| Ping | POST /api/terminal/{device_id}/ping | Confirms the terminal is connected and responsive. Recommended health check before a transaction. |
| Read card | POST /api/terminal/{device_id}/read-card | Starts a card read (tap, dip, or swipe). Returns an interaction_id; result contains the card token for a subsequent Charge request. |
| Read card status | GET /api/terminal/{device_id}/read-card/{interaction_id} | Polls the result of a read-card interaction. |
| Charge card | POST /api/terminal/{device_id}/charge-card | Read, optional signature, charge, and optional print/email in one interaction. Returns an interaction_id. |
| Charge card status | GET /api/terminal/{device_id}/charge-card/{interaction_id} | Polls the result of a charge-card interaction, including stage_errors. |
| Cancel interaction | DELETE /api/terminal/{device_id}/cancel/{interaction_id} | Cancels a pending read-card interaction on the terminal. Not supported for charge-card. |
| Print receipt | POST /api/terminal/{device_id}/print-receipt | Prints or reprints a receipt for the latest transaction in an order. |
| Send receipt | POST /api/v1/send_receipt | Emails a receipt from stored transaction data. No device or session required. |