API reference
All paths are under https://api.coinharbour.co.za/v1. Prefer Swagger for request/response schemas and try-it-out.
Sandbox
Public| Method | Path | Notes |
|---|
| POST | /v1/sandbox/provision | Issue coinharbour.co.za_test_ key + virtual escrow |
Auth
Public| Method | Path | Notes |
|---|
| POST | /v1/auth/token | Exchange API key → JWT |
| POST | /v1/auth/login | Company email and password |
| POST | /v1/auth/verify-email | 6-digit code from the signup email |
| POST | /v1/auth/resend-verify | Send a new verification code |
| POST | /v1/auth/admin/login | Operator login (same Account screen in the portal) |
Account
JWT (+ HMAC on writes)| Method | Path | Notes |
|---|
| POST | /v1/vendors/register | Create company account + first sandbox key |
| GET | /v1/vendors/me | Current account profile |
| PUT | /v1/vendors/notifications | Daily digest and customer email / WhatsApp toggles |
| GET | /v1/vendors/api-keys | List keys (prefix only) |
| POST | /v1/vendors/api-keys | Create named key (shown once) |
| POST | /v1/vendors/api-keys/:id/revoke | Revoke a key |
Customers
JWT (+ HMAC on POST)| Method | Path | Notes |
|---|
| POST | /v1/customers | Create customer (JWT + HMAC; curl in the guide) |
| POST | /v1/customers/bulk | Bulk create (≤1000) |
| GET | /v1/customers | List customers (JWT only; optional vaultId) |
| GET | /v1/customers/:id | Get customer |
Rewards
JWT (+ HMAC on credit/debit)| Method | Path | Notes |
|---|
| POST | /v1/rewards/credit | Allocate points |
| POST | /v1/rewards/debit | Remove points |
| GET | /v1/rewards/ledger | Append-only ledger; optional customerId or vaultId |
Claims
JWT + HMAC| Method | Path | Notes |
|---|
| POST | /v1/claims/issue | Issue claim code |
| POST | /v1/claims/redeem | Redeem to wallet; optional email / mobile for payout notice |
Dashboard
JWT| Method | Path | Notes |
|---|
| GET | /v1/dashboard/summary | Account overview metrics |
Admin routes (/v1/admin/*) are documented in Swagger and reserved for CoinHarbour staff.