Nixo API – Overview & first call
The Nixo API lets you move money across borders, create accounts, and listen to real-time payout events. This page covers authentication, environments, and your first payout call.
https://api.sandbox.nixo.top
·
https://api.nixo.top
1 # List your recent payouts in sandbox2 curl -X GET "https://api.sandbox.nixo.top/v1/payouts?limit=5" \3 -H "Authorization: Bearer <YOUR_SANDBOX_SECRET_KEY>" \4 -H "Nixo-Version: 2025-01-01"
Authentication
Nixo uses secret API keys and bearer tokens to authenticate requests. All requests must be made over HTTPS and include an Authorization header.
| Header | Required | Example value | Description |
|---|---|---|---|
Authorization |
Yes | Bearer sk_sandbox_123... |
Your secret API key. Use sandbox keys for testing. |
Nixo-Version |
Recommended | 2025-01-01 |
Pin requests to an API version for predictable responses. |
Idempotency-Key |
Recommended | request-uuid-123 |
Unique string to safely retry POST requests. |
Your first payout
Let’s create a sandbox payout from your business account to a recipient bank account. In production, the same call moves real money.
1 POST /v1/payouts # Create payout2 {3 "amount": 250.00,4 "currency": "USD",5 "destination_country": "MA",6 "recipient": {7 "full_name": "Test User",8 "account_iban": "MA640001234567890123456789"9 },10 "reference": "invoice_9485",11 "metadata": { "source": "demo-docs" }12 }
If successful, you’ll receive a JSON response with a payout id, initial
status (for example "processing"), and timestamps.
You can track status via the Payouts API or via webhooks.
Payouts API
The Payouts API lets you create, list, and track cross-border payouts. You’ll typically use it together with webhooks for status updates.
| Endpoint | Method | Description |
|---|---|---|
POST /v1/payouts |
POST |
Create a new payout. |
GET /v1/payouts |
GET |
List payouts with pagination and filters. |
GET /v1/payouts/{id} |
GET |
Retrieve a single payout by ID. |
Accounts & balances
Nixo accounts represent end customers or internal wallets. Balances are tracked per currency and can be used as funding sources for payouts.
| Endpoint | Method | Description |
|---|---|---|
POST /v1/accounts |
POST |
Create a customer or business account. |
GET /v1/accounts/{id} |
GET |
Retrieve account details and KYC state. |
GET /v1/accounts/{id}/balances |
GET |
List balances for a given account. |
For most integrations, you’ll create at least one “operating” account that receives inflows and funds payouts initiated via the Payouts API.
Webhooks
Webhooks let Nixo notify your backend when important events occur, such as payout status changes or balance updates.
| Event type | When it fires |
|---|---|
payout.created |
Right after a payout is accepted for processing. |
payout.succeeded |
Funds have been delivered to the recipient. |
payout.failed |
The payout could not be completed (for example, invalid account). |
balance.updated |
Account balances changed due to payouts or incoming transfers. |
Error handling
Nixo uses standard HTTP status codes and returns JSON error bodies with a code, a human-readable message, and an optional field.
| Status | Type | Example |
|---|---|---|
400 |
Validation error | invalid_request |
401 |
Auth error | invalid_api_key |
403 |
Permission error | permission_denied |
429 |
Rate limit | rate_limit_exceeded |
500+ |
Server | internal_error |
1 {2 "error": {3 "code": "invalid_request",4 "message": "amount must be greater than 0",5 "field": "amount"6 }7 }
We recommend treating 5xx and network failures as retriable errors, using exponential backoff
and Idempotency-Key for POST calls.