Quick start
From account to first collection, in five steps.
1. Create your merchant account
Sign up on the dashboard. Your account starts in status pending: you can explore the
dashboard and create keys and webhooks, but API calls answer client_inactive until your file is
approved.
2. Complete the KYB file
Under Compliance, name the legal representative and the beneficial owners, then upload the trade register (RCCM). A rejected document always comes back with a reason — fix it and resubmit; the history is kept.
Once approved, your account becomes active and your keys open. Nothing else is required of
you.
3. Create an API key
Under Developers → API keys, create a test key and then, when you are ready, a live one.
The secret (sk_test_… or sk_live_…) is shown only once, at creation — put it straight into
your secret manager.
4. Find your asset and platform identifiers
Before the first call, ask what your account may use:
curl https://api.neo-pays.com/v1/corridors \
-H "Authorization: Bearer sk_test_..."
The response gives the asset_id and platform_id values to use, by country and direction.
GET /v1/assets additionally gives each asset's decimal count — that is what says what a minor
unit is worth.
5. Create your first collection
curl https://api.neo-pays.com/v1/payments \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-1042" \
-d '{
"asset_id": 1,
"amount_minor": "500000",
"country": "SN",
"platform_id": 1,
"client_ref": "order-1042",
"payer": { "name": "Adama Diop", "phone": "+221771234567", "country": "SN" }
}'
The response carries a payment_url (or a deeplink, or a qrcode_url, depending on the rail):
show it to your customer.
Amounts are strings, in minor units.
"500000"on a zero-decimal asset is 500,000. Always a string, never a floating-point number: the API refuses anything that does not read back exactly.
6. Listen for the webhook
Never trust the browser return for confirmation — the customer can close the tab. The truth is the
payment.success event delivered to your endpoint (configure it), or failing that
GET /v1/payments/{id}.
Next
- Authentication — keys, test mode, idempotency
- Webhooks — signature, attempts, replay
- Refunds and payouts