API reference

All paths are under https://api.coinharbour.co.za/v1. Prefer Swagger for request/response schemas and try-it-out.

Sandbox

Public
MethodPathNotes
POST/v1/sandbox/provisionIssue coinharbour.co.za_test_ key + virtual escrow

Auth

Public
MethodPathNotes
POST/v1/auth/tokenExchange API key → JWT
POST/v1/auth/loginCompany email and password
POST/v1/auth/verify-email6-digit code from the signup email
POST/v1/auth/resend-verifySend a new verification code
POST/v1/auth/admin/loginOperator login (same Account screen in the portal)

Account

JWT (+ HMAC on writes)
MethodPathNotes
POST/v1/vendors/registerCreate company account + first sandbox key
GET/v1/vendors/meCurrent account profile
PUT/v1/vendors/notificationsDaily digest and customer email / WhatsApp toggles
GET/v1/vendors/api-keysList keys (prefix only)
POST/v1/vendors/api-keysCreate named key (shown once)
POST/v1/vendors/api-keys/:id/revokeRevoke a key

Customers

JWT (+ HMAC on POST)
MethodPathNotes
POST/v1/customersCreate customer (JWT + HMAC; curl in the guide)
POST/v1/customers/bulkBulk create (≤1000)
GET/v1/customersList customers (JWT only; optional vaultId)
GET/v1/customers/:idGet customer

Rewards

JWT (+ HMAC on credit/debit)
MethodPathNotes
POST/v1/rewards/creditAllocate points
POST/v1/rewards/debitRemove points
GET/v1/rewards/ledgerAppend-only ledger; optional customerId or vaultId

Claims

JWT + HMAC
MethodPathNotes
POST/v1/claims/issueIssue claim code
POST/v1/claims/redeemRedeem to wallet; optional email / mobile for payout notice

Dashboard

JWT
MethodPathNotes
GET/v1/dashboard/summaryAccount overview metrics

Admin routes (/v1/admin/*) are documented in Swagger and reserved for CoinHarbour staff.