Wallet (retiros instantáneos)
Hacer un retiro en Perú a una wallet consiste en capturar los datos necesarios de la persona que recibirá el pago y hacer una solicitud a través de nuestra API con un Bearer Token y una secretKey. De esta forma, las transacciones se autentican y se realizan de forma segura.
ProntoPaga te permite hacer retiros instantáneos en Perú. Para ello, cuentas con dos modalidades disponibles:
- Retiros vía CCI (Cuenta bancaria / Cuenta interbancaria)
- Retiros vía wallet.
A continuación, puedes encontrar información detallada de cómo hacer retiros instantáneos desde el comercio a una wallet específica.
¿Cómo funciona?
Wallet (retiros instantáneos) es un método digital utilizado en Perú que permite retirar fondos desde una aplicación de billetera digital en el celular. Para utilizar este método, el cliente debe seleccionar la opción "Billetera digital", tener una cuenta activa en una billetera compatible, ingresar su número de teléfono, seleccionar la billetera y confirmar la operación. Para conocer el listado de billeteras disponibles, puedes consultarlo aquí.
El proceso de payout con wallet en Perú consta de cuatro etapas principales:

- Selección de método. El cliente elige retirar dinero por medio de wallet en tu sitio web o aplicación.
- Ingreso de datos. El cliente ingresa los datos necesarios para que el retiro sea realizado (como su número de teléfono y wallet) y confirma la transacción.
- Validación y Captura. ProntoPaga valida la información del retiro, hace la solicitud de transferencia a la wallet y mueve el dinero desde la cuenta del comercio hacia la cuenta del cliente.
- Confirmación. El cliente recibe una confirmación de retiro exitoso en su correo electrónico. A su vez, tu comercio recibe la confirmación a través de los webhooks que hayas configurado.
Wallets disponibles
Este es la lista completa de las wallets disponibles para hacer pay outs con ProntoPaga en Perú:
Marca | Valor |
---|---|
Banco Falabella | falabella |
Wayki Caja Cusco | cajaCusco |
Banco Nación | nacion |
Mibanco | mibanco |
Tarjeta oh | oh |
Banco GNB | gnb |
BanBif | banbif |
Caja Lima | cajaLima |
Compartamos Financiera | compartamos |
Caja Huancayo | cajaHuancayo |
Caja Piura | cajaPiura |
Dale | dale |
Financiera Confianza | confianza |
Bancom | comercio |
Ripley | ripley |
Santander | santander |
Banco Pichincha | pichincha |
Banco de Crédito del Perú (BCP) | bcp |
Financiera Efectiva | efectiva |
Caja Ica | cajaIca |
Caja Trujillo | cajaTrujillo |
Interbank | interbank |
Luqea | luqea |
Caja Sullana | cajaSullana |
Prexpe | prexpe |
Yape | yape |
Plin | plin |
Bim | bim |
Consulta de wallets por número telefónico (Opcional)
Si deseas conocer las wallets asociadas al número telefónico celular del beneficiario, primero deberás consultar el endpoint de Lista de wallets y agregar el teléfono en la URL de la petición.
Respuesta
Si la transacción es exitosa, recibirás una respuesta similar a la siguiente:
{"data": "Array",
{
"0": "yape”,
"1": "plin”,
"2": "bim”,
"3": "luqea”,
"4": "dale”,
"5": "prexpe”,
"6": "oh”,
}
Solicitud de retiro instantáneo vía wallet
Después de seleccionar una wallet del listado obtenido en el endpoint anterior, deberás hacer una petición al endpoint de Crear un nuevo retiro a wallet y enviar una solicitud con un body similar al siguiente.
Firma de la transacciónPuedes ver el detalle de cómo firmar los parámetros de la transacción con tu secretKey en este artículo.
{
"amount": "150.90",
"document_id": "12345678912",
"beneficiaryName": "John",
"beneficiaryLastName": "Doe",
"beneficiaryEmail": "[email protected]",
"beneficiaryPhone": "999999999",
"data": "XYZ789",
"confirmationURL": "https://www.webhook.com",
"currency": "PEN",
"country": "PE",
"wallet": "luqea",
"sign": "Signature of the parameters"
}
Notificación del estado de la transacciónPara configurar el webhook que irá en el campo
confirmationURL
y recibir notificaciones con el estado de tu transacción, revisa este artículo.
Posibles respuestas
Como respuesta a una solicitud de pago exitosa, recibirás un identificador del retiro en el sistema, el estado del retiro y datos adicionales de la transacción.
Si la transacción es exitosa, recibirás la siguiente respuesta:
{
"uid": "01J4PG5MET5CV6BCCQB8HRFC2X",
"status": "new",
"data": "XYZ789",
"reference": 8290,
"plin": true
}
Si la transacción es rechazada, recibirás la siguiente respuesta:
{
"beneficiaryPhone": "(string) beneficiaryPhone, cannot be null."
}
Motivos de rechazo
A continuación se muestran varios posibles casos de rechazo de un retiro, junto con su respectivo código.
Código | Mensaje |
---|---|
AC01 | Número de cuenta incorrecta |
AC03 | Número de cuenta a acreditar incorrecta |
AC06 | Cuenta bloqueada |
AC07 | Cuenta a acreditar cerrada |
AC11 | Moneda de la cuenta a acreditar invalida |
AC14 | Tipo de cuenta a acreditar invalida |
AG01 | Transacción prohibida |
AG03 | Operación no soportada |
AM01 | Monto Cero |
AM02 | Monto no permitido |
AM03 | Error interno en moneda de la transacción |
AM04 | Saldo de garantía insuficiente |
AM05 | Duplicado |
AM09 | Monto equivocado |
AM11 | Error interno en moneda de la transacción |
AM13 | Monto excede límite de operación |
BE08 | Nombre de cliente originante faltante |
BE15 | Id de referencia requerido |
BE16 | Código de identificación de originante invalido |
BE22 | Nombre de beneficiario faltante |
CH11 | Identificador de cliente receptor incorrecto |
CH21 | Falta de elementos obligatorios |
DNOR | Entidad originante no registrada |
DS0A | Forma de datos requerida |
DS0B | Formato de firma desconocido |
DS0D | Certificado de firma invalido |
DS0H | Entidad indirecta no autorizada |
DT04 | Fecha de creación no soportada |
FF02 | Error de formato |
RC01 | Estructura de identificador de entidad incorrecta |
RC02 | Entidad originante no autorizado |
RC03 | Identificador de entidad originante invalido |
RC04 | Identificador de entidad receptora invalido |
RR04 | Motivo regulatorio (políticas de AML/CFT) |
RR10 | Set de caracteres invalido |
9910 | Entidad receptora en sign off |
9912 | Entidad receptora no disponible |
9920 | Tipo de transacción, canal o código de transacción invalido |
9921 | Criterio de aplicación invalido |
9922 | Tipo de persona invalido |
9923 | Concepto de cobro no es numérico |
9924 | Indicador de activo invalido (320) |
9934 | Entidad originante en sign off |
9946 | Entidad originante suspendida |
9947 | Entidad receptora suspendida |
9948 | Servicio IPS suspendido |
9964 | Identificador de entidad invalido |
Confirmación de un retiro
Una vez que hayas completado el proceso, ProntoPaga devolverá los datos de la transacción a la URL que especificaste en confirmationURL
.
Para confirmar si una transacción fue exitosa, debes verificar que en tu webhook el valor del campo status
sea success
.
Conoce todos los estados posibles de un retiro en el siguiente enlace: Estados de los pay outs.
Webhook
Al finalizar una transacción exitosa, recibirás un webhook similar al ejemplo mostrado a continuación.
{
"uid": "01J8MWMSW7KCVG6YE6X1GZABCD",
"status": "success",
"data": "XYZ789",
"statusCode": "200",
"startNotificationTime": "2024-08-25 12:16:54",
"endNotificationTime": "2024-08-25 12:16:54",
"totalRequestTime": "0.791377",
"sign": "e198c7a2c33d697c551c445b37659e06bf7c1e92db8bae00c7a1f5411b1e7a00"
}
Prueba tu integración
Contamos con un catálogo de datos de prueba que puedes usar para comprobar que tu integración está lista, así como para ver el flujo de pago que seguirá tu cliente. Además, también puedes hacer pruebas con nuestros demos.
Certifica tu integración
La certificación de la integración en sandbox es un paso obligatorio que todos los comercios deben realizar antes de recibir sus credenciales de producción. Su propósito es asegurar que la integración cumpla con los estándares técnicos, funcionales y de seguridad requeridos por ProntoPaga. Dentro de esta sección, se establecen los requisitos que deben cumplirse sin excepción para que la certificación sea aprobada.
Requisitos de certificación
A continuación, encontrarás los distintos requisitos necesarios para completar tu certificación:
- ❌ El documento de identidad del cliente no debe ser modificable en ningún punto de la transacción.
- ✅ Es recomendable que este dato no se muestre en el checkout. Solo puede estar disponible en la sección de perfil del usuario autenticado.
- ⚠️ Esta medida tiene como objetivo prevenir fraudes y evitar que se realicen transacciones en nombre de terceros o menores de edad.
Updated about 18 hours ago