API Reference
The GoBTC Pay HTTP API is split into three surfaces, each for a different kind of integrator. All of them share the same base URL and the always-current, interactive reference:
- Base URL:
https://api.gobtcpay.com/public/api/v1.2 - OpenAPI reference: https://api.gobtcpay.com/api-docs
Pick the surface that matches what you are building.
Wallet APINon-custodial web3 wallets accepting and paying for purchases. Bearer JWT from a key-signature challenge.Merchant APIThe merchant dashboard and back office. Bearer JWT from dashboard login.POS APIA point-of-sale terminal taking payments. Per-terminal HMAC request signature.
At a glance
| Surface | Who it's for | Authentication |
|---|---|---|
| Wallet API | Non-custodial web3 wallets accepting and paying for purchases | Bearer JWT from a key-signature challenge |
| Merchant API | The merchant dashboard / back office | Bearer JWT from dashboard login |
| POS API | A point-of-sale terminal taking payments | Per-terminal HMAC request signature |
Browse the endpoints
Every operation, generated from the OpenAPI specification and grouped by area:
Wallet API endpointsAuth, wallet, payments, withdrawalMerchant API endpoints16 areas, from stores to audit logPOS API endpointsCreate, get, list, plus the webhook
Conventions
- Every request and response body is
application/json. - Every operation documents a
200and a500response. The500body carries anerrorobject withstatusCodeandstatusMessage. - Idempotency: where an operation accepts your own correlation id (for example
externalIdon Create payment), reusing that id makes the call idempotent. - Timestamps are Unix seconds (
createdAt,expiresAt,paidAt, and so on). The one exception ists, the request-signing timestamp, which is in milliseconds.
Warning
Keep API keys and terminal keys server-side. If a key may have been exposed, rotate it from the dashboard: see Terminal details.
Prefer an SDK?
The POS API SDK wraps the POS surface, signs each request for you, and runs on both a server and in the browser.