Getting Started
The Run Developer Terminal API is a RESTful web service that uses JSON to encode data for transmission over HTTPS. Requests and responses are exchanged as JSON payloads over standard HTTPS methods (GET, POST, DELETE).
Work with Integration Delivery (integrations@runpayments.io) to order and provision a UAT device before attempting to authenticate or connect. Please submit all UAT requests to the same address.
Environment
Terminal operations live under /api/terminal/…. The WebSocket token lives at /api/ws-token, and the email-receipt endpoint lives under the Payments API path /api/v1/send_receipt.
Authentication
Once your device is provisioned, use your access token — generated via the self-service credential generator or the key refresh endpoint (/api_keys/refresh) — to authenticate requests and connect with the device.
All Terminal API endpoints require a Bearer token, unless otherwise noted:
Authentication keys are rotational. The access token expires every hour, and the refresh token expires every 30 days. The recommended path is to create a scheduled job that rotates these keys automatically, so your integration does not fail a request due to an expired token.
ISV tokens
If your bearer token is an ISV token acting on behalf of a specific merchant, pass that merchant’s mid as a query parameter. Merchant-level tokens don’t need to pass mid.
If mid can’t be resolved to an authorized account, the request returns 400.
Rate limiting
All Terminal API endpoints share a per-credential rate limit. Exceeding it returns 429 Too Many Requests. This applies uniformly across every terminal endpoint.
Terminal capabilities
GET /api/terminal returns every terminal on the account with a capabilities object describing what that hardware supports. Check these flags before presenting signature capture or printing in your UI.
Capabilities are set when a terminal is created and don’t change, so you can cache them per terminal. Re-fetch the list periodically only to pick up newly added terminals.