Introduction
The Zuba Payment Platform API is organized around REST principles. Our API has predictable resource-oriented URLs requests and responses are JSON-encoded, and uses standard HTTP response codes, authentication, and verbs.Base URL
Production:Authentication
The Zuba API uses OAuth 2.0 Client Credentials flow for authentication. You can generate your credentials in the Zuba Dashboard (test) or Production Dashboard. See our Authentication Guide for detailed instructions on obtaining access tokens. Include your access token in theAuthorization header:
Request Format
All POST requests should include theContent-Type header:
Response Format
All responses are returned in JSON format:Example Success Response
Monetary values are always decimal strings, never JSON numbers:Error Response
HTTP Status Codes
The Zuba API uses conventional HTTP response codes:| Code | Description |
|---|---|
200 | Success - Request completed successfully |
201 | Created - Resource created successfully |
400 | Bad Request - Invalid request parameters |
401 | Unauthorized - Invalid or missing access token |
403 | Forbidden - Insufficient permissions, or the requested capability is not enabled for your account (METHOD_NOT_ENTITLED / CAPABILITY_DISABLED). Check GET /v1/capabilities for the payment methods and currencies available to you. |
404 | Not Found - Resource not found |
422 | Unprocessable Entity - Validation errors |
500 | Internal Server Error - Something went wrong |
Pagination
List endpoints use cursor pagination. Results are ordered newest first. Pass thenextCursor returned by the previous page as cursor to fetch the
next page.
Request Parameters
cursor- Opaque cursor returned by the previous pagelimit- Number of items per page (minimum 1, maximum 100, default 20)
Example Response Format
hasMore is true, pass nextCursor as cursor on the next request.
When hasMore is false, nextCursor is null.
Idempotency
The clientRef is the idempotency attribute - clients are expected to provide a unique reference for each payout request, allowing safe retries without creating duplicates. Using the same idempotency key will return the an error and a HTTP 400 status.Webhooks
The Zuba API can send webhook notifications for events:API Versioning
The API version is specified in the URL path. All endpoints are served under/v1:
FX and ledger endpoints were historically served at unversioned paths
(
/fx/..., /ledger/...). Those legacy URLs continue to work as aliases of
the canonical /v1/fx/... and /v1/ledger/... paths, but are deprecated —
use the /v1 form in new integrations.Testing
Use test environment credentials for development:- Test Dashboard:
https://sandbox.zuba.com - Test Base URL:
https://api.sandbox.zuba.com - Test Token URL:
https://zuba-test.us.auth0.com/oauth/token
- Simulated payment processing
- No real money movement
- Access to test data and scenarios
- Webhook testing capabilities
Support
Need help with integration? Contact our team:- Email: support@zuba.com
- Documentation: Browse the complete API reference below
Next Steps
Quickstart Guide
Send your first payout in minutes
Payouts API
Send money globally to beneficiaries
Ledger System
Double-entry accounting and transaction tracking
Webhooks
Receive real-time event notifications