Getting started
Three steps: get a key, authenticate, send your first order.
Prerequisites
- An active ZovoHub partner (company) account.
- Your merchants and couriers linked to your company (via merge invitations from the dashboard).
Don't have a company account yet? Register your company.
1 — Generate an API key
Open your ZovoHub dashboard and go to the API keys section. Generate a TEST (sandbox) key for integration, then a LIVE key for production. The secret is shown only once — copy it immediately (it is stored hashed).
2 — Authentication
Every request is authenticated with two headers — your Client ID and your Secret:
X-Client-Id: pk_live_xxxxxxxxxxxxxxxxxxxxxxxx
X-Client-Secret: sk_live_xxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/json
⚠️ Keep the secret server-side only. Never expose it in a mobile app, browser, or public repository. If it leaks, rotate the key from the dashboard.
3 — Base URL
BASE
https://zovopay.com/api/partner/v1The base URL is the same for test and live — the key you use (test vs live) decides the mode. Test orders are recorded for integration without affecting real settlement.
Verify your setup
Send a minimal order with a TEST key. A 201 response means your credentials work:
curl -X POST https://zovopay.com/api/partner/v1/orders \
-H "X-Client-Id: pk_test_..." \
-H "X-Client-Secret: sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"partner_order_ref": "TEST-1001",
"payment_source": "zovopay",
"total_amount": 25.00,
"currency": "USD",
"splits": [
{ "beneficiary_type": "merchant", "amount": 20.00 },
{ "beneficiary_type": "courier", "amount": 3.00 },
{ "beneficiary_type": "partner", "amount": 2.00 }
]
}'
✅ Got a 201? You are ready. See Push an order for the full field reference.