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:

  1. Selección de método. El cliente elige retirar dinero por medio de wallet en tu sitio web o aplicación.
  2. 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.
  3. 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.
  4. 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ú:

MarcaValor
Banco Falabellafalabella
Wayki Caja CuscocajaCusco
Banco Naciónnacion
Mibancomibanco
Tarjeta ohoh
Banco GNBgnb
BanBifbanbif
Caja LimacajaLima
Compartamos Financieracompartamos
Caja HuancayocajaHuancayo
Caja PiuracajaPiura
Daledale
Financiera Confianzaconfianza
Bancomcomercio
Ripleyripley
Santandersantander
Banco Pichinchapichincha
Banco de Crédito del Perú (BCP)bcp
Financiera Efectivaefectiva
Caja IcacajaIca
Caja TrujillocajaTrujillo
Interbankinterbank
Luqealuqea
Caja SullanacajaSullana
Prexpeprexpe
Yapeyape
Plinplin
Bimbim


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ón

Puedes 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ón

Para 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ódigoMensaje
AC01Número de cuenta incorrecta
AC03Número de cuenta a acreditar incorrecta
AC06Cuenta bloqueada
AC07Cuenta a acreditar cerrada
AC11Moneda de la cuenta a acreditar invalida
AC14Tipo de cuenta a acreditar invalida
AG01Transacción prohibida
AG03Operación no soportada
AM01Monto Cero
AM02Monto no permitido
AM03Error interno en moneda de la transacción
AM04Saldo de garantía insuficiente
AM05Duplicado
AM09Monto equivocado
AM11Error interno en moneda de la transacción
AM13Monto excede límite de operación
BE08Nombre de cliente originante faltante
BE15Id de referencia requerido
BE16Código de identificación de originante invalido
BE22Nombre de beneficiario faltante
CH11Identificador de cliente receptor incorrecto
CH21Falta de elementos obligatorios
DNOREntidad originante no registrada
DS0AForma de datos requerida
DS0BFormato de firma desconocido
DS0DCertificado de firma invalido
DS0HEntidad indirecta no autorizada
DT04Fecha de creación no soportada
FF02Error de formato
RC01Estructura de identificador de entidad incorrecta
RC02Entidad originante no autorizado
RC03Identificador de entidad originante invalido
RC04Identificador de entidad receptora invalido
RR04Motivo regulatorio (políticas de AML/CFT)
RR10Set de caracteres invalido
9910Entidad receptora en sign off
9912Entidad receptora no disponible
9920Tipo de transacción, canal o código de transacción invalido
9921Criterio de aplicación invalido
9922Tipo de persona invalido
9923Concepto de cobro no es numérico
9924Indicador de activo invalido (320)
9934Entidad originante en sign off
9946Entidad originante suspendida
9947Entidad receptora suspendida
9948Servicio IPS suspendido
9964Identificador 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.