Transferencias SPEI
Ya vimos como aceptar pagos por tarjeta, tienda y banco, ahora veamos como enviar pagos a cuenta de terceros (clientes o proveedores).
Nota: Esta funcionalidad sólo permite números de cuentas bancarias de México.
Crear transferencia
Para crear una transferencia o pago se debe hacer una llamada indicando la cuenta bancaria, el número y el monto.
Para este ejemplo vamos a enviar un pago a una cuenta bancaria por $500.00
Si la llamada es correcta y se tienen los fondos suficientes en la cuenta, entonces se regresará un respuesta con un objeto transacción.
Respuesta:
{
"amount":500.00,
"authorization":null,
"method":"bank_account",
"operation_type":"out",
"transaction_type":"payout",
"status":"in_progress",
"currency":"MXN",
"id":"trw6owxszajwtph5swry",
"creation_date":"2014-02-14T15:43:49-06:00",
"description":"pago prueba",
"error_message":null,
"order_id":null,
"bank_account":{
"clabe":"012XXXXXXXXXX24616",
"bank_code":"012",
"bank_name":"BANCOMER",
"alias":null,
"holder_name":"Juan Tapia Trejo",
"creation_date":"2014-02-14T15:43:49-06:00"
}
}
Manejo de estado de pagos
Los envíos de pagos suceden de manera asíncrona. Por lo que al momento de crearlo siempre se regresará la transacción en estado in_progress
. Si la creación fue realizada antes de la 18:00 hrs el pago se programará para ejecutarse al siguiente día hábil, sino será programado para el segundo día hábil.
Cuando el pago se envía al banco puede suceder lo siguiente:
- Que recibas un webhook de
payout.succeeded
lo cual indica que el pago fue aceptado por el banco y los fondos se encuentran en la cuenta destino. - Que la transferencia falle y recibas un webhook de
payout.failed
lo cual indica que el banco rechazó el pago porque posiblemente la cuenta destino no existe.
Sandbox: El pago es simulado 5 minutos después de ser creado, de esta manera puedes recibir una notificación de pago en tu sistema mediante un Webhook en tu ambiente de pruebas.
Errores
Números de cuenta CLABE incorrectos
Recibirás el siguiente error al momento de realizar la llamada para enviar un pago si el número de cuenta CLABE es incorrecto. Esto puedes ser debido a que el código de banco o dígito verificador sean inválidos.
Respuesta:
{
"category":"request",
"description":"The CLABE number is invalid",
"http_code":422,
"error_code":1003,
"request_id":"b6686b9b-65ed-49b6-8326-550fb3c7522a"
}
Fondos insuficientes
Si la cuenta de donde estás haciendo el envío no tiene los fondos suficientes, la transacción no será creada y recibirás el siguiente error.
Respuesta:
{
"category":"request",
"description":"There are not enough funds in the openpay account",
"http_code":412,
"error_code":4001,
"request_id":"04a71fcd-72bb-4091-8fc9-993a7c9853b7"
}
Notas:
- Implementa las Notificaciones para conocer el estado de los pagos en tiempo real