Integración v1
Las cuentas que venían de la plataforma anterior pueden seguir usando su integración de v1 sin tocar nada mientras e-Payouts la mantenga habilitada. Para todo lo nuevo, usá la API v2.
Qué sigue funcionando igual
| Pieza | Cómo se usa (igual que en v1) |
|---|---|
| Paymentbox | https://paymentbox.e-payouts.com/?uid=…&mid=…&price=…&ucode=… con los mismos parámetros de siempre (uid, mid, price, ucode, pm, email/cemail, name/cname, cc, y localprice/lp para el precio en moneda local). |
| createCode | POST https://api.e-payouts.com/createCode.php con formulario (uid, mid, apikey, type, email, price, ucode, cc, name, lastname, direct). La apikey de v1 es obligatoria. Devuelve code, price, error y url. |
| getData | GET https://api.e-payouts.com/getData.php?uid=…&mid=…&cc=…&apikey=…&price=… con tu apikey de v1 y solo desde las IP cargadas en el módulo. |
| Aviso a tu servidor | GET a la URL de notificación del módulo con uid, mid, country, price, code, email, currency, result, ucode, type. result=ok cuando el pago se completa. Respondé HTTP 200. |
| Vuelta a tu sitio | A la URL de éxito del módulo con code y ucode (además de pago y estado). |
Ejemplo: createCode
POST https://api.e-payouts.com/createCode.php
Content-Type: application/x-www-form-urlencoded
uid=1001&mid=5001&apikey=TU_APIKEY_V1&type=ppal&email=cliente%40example.com&price=15.50&cc=ES&ucode=PEDIDO-1001{"code":"K7Q2ZP9XW4RM","price":"15.50","error":0,"url":"https://paymentbox.e-payouts.com/pagar?t=…"}Con direct=1 responde directamente con la redirección al paymentbox. El code es el que después llega en el aviso y en la vuelta a tu sitio.
Ejemplo: aviso a tu servidor
GET https://tu-sitio.com/notificacion.php?uid=1001&mid=5001&country=ES&price=15.500&code=K7Q2ZP9XW4RM&email=cliente%40example.com¤cy=EUR&result=ok&ucode=PEDIDO-1001&type=ppalIgual que en v1, el aviso no viene firmado en la URL. Además llega la cabecera X-Epayouts-Signature (HMAC de la URL completa con tu clave de firma de webhooks): si podés, verificala. Si tu servidor no responde 200, se reintenta.
Códigos de error
Como en v1: siempre HTTP 200 con {"error": …}.
| createCode | Significado |
|---|---|
| 1 | falta type (método) |
| 2 | falta email |
| 3 | uid inválido |
| 4 | mid inválido |
| 5 | mid inexistente o de otro comercio |
| 6 | uid inexistente |
| 7 | cuenta deshabilitada o integración v1 no habilitada |
| 8 | precio inválido |
| 10 | método no disponible para ese módulo, país o monto |
| 17 | demasiados intentos, probá en un minuto |
| 18 | falta apikey |
| 19 | sitio o módulo no habilitado |
| 20 | apikey incorrecta |
| getData | Significado |
|---|---|
| 5 | mid inexistente o de otro comercio |
| 6 | uid inexistente o cuenta deshabilitada |
| 19 | sitio no habilitado |
| 22 | apikey incorrecta |
| 30 | IP no permitida en el módulo, o integración v1 no habilitada |
| 31 | sin métodos disponibles para ese país y monto |
| 32 | cc (país) inválido o faltante |
Igual que v1, createCode devuelve algunos errores como texto con cero adelante ("01", "05", "17") y otros como número (18, 20): compará el valor como número, no como texto.
getData sin uid, mid o apikey responde vacío, como v1.
Pasar a v2
- Paymentbox: cambiá uid+mid por modulo (el id del módulo que ves en tu panel de comercio → Código de integración). Paymentbox →
- API: POST /v2/payments con las cabeceras firmadas, en lugar de createCode y getData. Autenticación →
- Avisos: tu servidor pasa a recibir POST JSON firmado. Webhooks →
- Paso intermedio opcional: las rutas https://api.e-payouts.com/v1/createCode y /v1/getData aceptan los parámetros de v1 con las cabeceras firmadas de v2. También dejan de funcionar cuando se desactiva la integración v1.