Transferencia (retiros instantáneos)

Hacer un retiro en Perú a una cuenta bancaria o interbancaria 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), los cuales se cubren en esta página.
  • Retiros vía wallet.

A continuación, puedes encontrar información detallada de cómo hacer retiros vía CCI.



¿Cómo funciona?

Transferencia (Retiros Instantáneos) es una forma de retirar fondos en Perú mediante transferencias entre cuentas bancarias e interbancarias. Para completar una transacción con este método, el cliente debe seleccionar la opción "Transferencia bancaria", ingresar su número de cuenta bancaria, CCI, el tipo de cuenta, seleccionar el banco, y confirmar la operación.

El proceso de payout con transferencia (retiros instantáneos) en Perú consta de cuatro etapas principales:

  1. Selección de método. El cliente elige retirar dinero por medio de transferencia en tu sitio web o aplicación.
  2. Ingreso de datos. El cliente ingresa los datos necesarios para que el retiro sea realizado (como banco, número de cuenta bancaria e interbancaria y tipo de cuenta) y confirma la transacción.
  3. Validación y Captura. ProntoPaga valida la información del retiro, hace la solicitud de transferencia al banco 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.


Lista de bancos

La lista de códigos bancarios para pay outs de tipo transferencia la puedes encontrar en este artículo, dividida por países. El código bancario debe enviarse en el campo bankCode del endpoint de creación de un retiro.



Crear un nuevo retiro

Consulta el endpoint de Crear un nuevo retiro y envía una solicitud con un body similar a la siguiente.

accountNumber es el número de cuenta bancaria al que se depositará.

accountInterbank es el número de cuenta interbancaria al que se depositará.

🚧

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",
  "accountNumber": "10070010030000",
  "accountType": "C",
  "bankCode": "011",
  "data": "XYZ789",
  "confirmationURL": "https://www.webhook.com",
  "currency": "PEN",
  "country": "PE",
  "accountInterbank": "01150004004006000900",
  "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": "01J59EC1DMW5HV8F93GSAWD24G",
    "status": "new",
    "data": "2010906",
    "reference": 9898
}

Si la transacción es rechazada, recibirás esta respuesta similar a esta:

{
  "accountInterbank": "string accountInterbank, 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": "01J568DSG6CP9412EFPN3QC6WD",
      "status": "success",
      "data": "XYZ789",
      "type": "bank",
      "statusCode": "200",
      "startNotificationTime": "2024-08-13 12:16:54",
      "endNotificationTime": "2024-08-13 12:16:54",
      "totalRequestTime": "0.393352",
      "sign": "e198c7a2c33d697c551c445b37659e06bf7c1e92db8bae04c7a1f5411b1e8a00"
}         


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.