Puesta en marcha
De la cuenta al primer cobro, en cinco pasos.
1. Crear su cuenta de comercio
Regístrese en el panel. Su cuenta empieza en estado pending: puede explorar el panel y crear
claves y webhooks, pero las llamadas a la API responden client_inactive mientras su expediente no
esté validado.
2. Completar el expediente KYB
En Cumplimiento, indique el representante legal y los beneficiarios efectivos, y suba el registro mercantil (RCCM). Un documento rechazado lo es siempre con un motivo — corrija y vuelva a enviarlo; el historial se conserva.
Una vez aprobado el expediente, su cuenta pasa a active y sus claves se abren. No se requiere
nada más por su parte.
3. Crear una clave de API
En Desarrolladores → Claves de API, cree una clave test y, cuando esté listo, una live. El
secreto (sk_test_… o sk_live_…) se muestra una sola vez, al crearla — guárdelo de inmediato
en su gestor de secretos.
4. Encontrar sus identificadores de activo y de plataforma
Antes de la primera llamada, pregunte qué puede usar su cuenta:
curl https://api.neo-pays.com/v1/corridors \
-H "Authorization: Bearer sk_test_..."
La respuesta da los asset_id y platform_id que debe usar, por país y por sentido.
GET /v1/assets añade el número de decimales de cada activo — es lo que dice cuánto vale una
unidad menor.
5. Crear su primer cobro
curl https://api.neo-pays.com/v1/payments \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: pedido-1042" \
-d '{
"asset_id": 1,
"amount_minor": "500000",
"country": "SN",
"platform_id": 1,
"client_ref": "pedido-1042",
"payer": { "name": "Adama Diop", "phone": "+221771234567", "country": "SN" }
}'
La respuesta contiene una payment_url (o un deeplink, o un qrcode_url, según el rail):
preséntesela a su cliente.
Los importes son cadenas, en unidades menores.
"500000"sobre un activo de cero decimales son 500 000. Siempre una cadena, nunca un número en coma flotante: la API rechaza lo que no se relee exactamente igual.
6. Escuchar el webhook
Nunca confíe la confirmación al regreso del navegador — el cliente puede cerrar la pestaña. La
verdad es el evento payment.success entregado en su endpoint (configurarlo), o en
su defecto GET /v1/payments/{id}.
Y después
- Autenticación — claves, modo de prueba, idempotencia
- Webhooks — firma, intentos, reenvío
- Reembolsos y pagos