1. Create your account
1
Sign up
Open the MarzPay dashboard and choose Get Started. Use a business email you can access, because verification links go there.
2
Complete onboarding
Add your business details and upload the documents in your onboarding checklist: business registration, tax ID, directors’ IDs, and proof of address. Most reviews finish in one to three business days.
3
Subscribe to a service
Open the marketplace in the dashboard and subscribe to the collection and disbursement services for the markets you need, for example Uganda MTN collection or Kenya M-Pesa disbursement. Endpoints return
SERVICE_NOT_SUBSCRIBED until you do.New businesses start in sandbox mode. You can call every endpoint immediately, with dummy responses, while verification is still in review.
2. Generate API credentials
- Open API Keys in the dashboard.
- Click Generate New API Key and give it a name your team will recognise.
- Copy the key and the secret. The secret is shown once.
3. Know your base URL
There is no separate sandbox host. The dashboard setting decides whether a request creates a live transaction or a sandbox one.
4. Collect money
Send an amount, a phone number with the country code, a country, and a unique UUID reference.- cURL
- Node.js
- PHP
- Python
201 Created
callback_url with event_type: "collection.completed" and the provider transaction ID.
provider_reference is often null on the create response and is not sent on collection callbacks. The provider ID for a collection arrives as collection.provider_transaction_id.5. Send money
Payouts use the same shape, from the other direction. This endpoint requires your IP to be whitelisted and a disbursement subscription.6. Check your work
Read the balance
GET /balance returns available, card, and total wallet balances plus daily, weekly, and monthly summaries.Read a transaction
GET /transactions/{uuid} returns the same envelope as the callback, so one parser handles both.Replay a callback
Point
callback_url at a request bin while you build, then swap in your real endpoint.Verify signatures
Enable webhook signing and compare
X-MarzPay-Signature before you trust a payload.
