neo-pays

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