Para aceptar transferencias bancarias lo primero que tienes que hacer es enviar el parámetro "payment_method" en el request de POST/payments de esta forma:
"payment_method": {
"id": "spei"
}
Dentro de la respuesta, recibirás el "payment_id" , el "status":"pending" con el "status_detail.message":"Waiting bank transfer" y en el objeto "pending_action" obtendrás el concepto y la cuenta CLABE a la cuál tu cliente tiene que hacer la transferencia:
{
"id": "3d62e0-57a8-d22-a90-d59e0d94f",
"pending_action": {
"concept": "FAISAN4001",
"id": "167985410000003365",
"type": "clabe",
"expires_at": "2025-02-27T04:14:49Z"
},
"status": "pending",
"status_detail": {
"code": "PE-BAT01",
"message": "Waiting bank transfer"
}
}
En donde:
- id: Cuenta CLABE a la cuál tu cliente tiene que realizar la transferencia.
- concept: Concepto que tiene que incluir al momento de realizar la transferencia.
Por último, tu cliente tiene que realizar la transferencia desde su aplicación bancaria usando los datos proporcionados.
Es importante que tu cliente haga la transferencia por el monto exacto y agregue el concepto correcto (Incluyendo mayúsculas y minúsculas cuando aplique).
El siguiente bloque de código muestra un ejemplo de la solicitud cURL:
curl --location --request POST 'https://api.payclip.com/payments' \
--header 'Authorization: Basic MTBkMTA2Y2QtMTOtNGY1ZS04ODRmLWVhMTM0YjVhNTUyNA==' \
--header 'Content-Type: application/json' \
--data-raw '{
"amount": 500,
"currency": "MXN",
"description": "Prueba SPEI",
"capture_method": "automatic",
"payment_method": {
"id": "spei"
},
"customer": {
"email": "[email protected]",
"phone": "5555555555"
}
}'
Y se obtendría la siguiente respuesta:
{
"id": "c6103173-b10f-47b7-93fb-95ceb26b97",
"amount": 500,
"tip_amount": 0,
"amount_refunded": 0,
"installment_amount": 500,
"installments": 1,
"capture_method": "automatic",
"net_amount": 500,
"paid_amount": 500,
"binary_mode": false,
"country": "MX",
"currency": "MXN",
"description": "Prueba SPEI",
"customer": {
"email": "[email protected]"",
"phone": "5555555555"
},
"payment_method": {
"id": "spei",
"type": "bank_transfer"
},
"pending_action": {
"concept": "SOFA4084",
"expires_at": "2024-11-07T20:36:14Z",
"id": "646180137004128151",
"type": "clabe"
},
"receipt_no": "S1omFw8",
"claims": [],
"refunds": [],
"statement_descriptor": "",
"status": "pending",
"status_detail": {
"code": "PE-BAT01",
"message": "Waiting bank transfer"
}
"created_at": "2024-11-07T20:16:14.240298192Z",
"version": 0
}
Validar el pago
Para validar el pago, únicamente consulta nuestro endpoint GET /payments usando el payment_id obtenido en el paso anterior. Dentro de la respuesta obtendrás el status del pago:
"status": "approved",
"status_detail": {
"code": "AP-PAI01",
"message": "paid"
}
Reembolsar un pago con transferencia bancaria
Para reembolsar un pago realizado por transferencia bancaria se puede hacer desde tu cuenta Clip, o también a través de la API de reembolsos.
Ten en cuenta que el tiempo transcurrido entre la compleción de la transacción y la solicitud del reembolso no deberá ser mayor a 180 días naturales. Este reembolso puede ser parcial o total.
Si la transacción ya tiene más de un día de haberse realizado, deberás tener un balance igual o mayor al monto que vas a reembolsar.
El balance es la cantidad de ventas que has realizado en el día en que solicitas el reembolso (y que no ha sido depositado en tu cuenta) menos la cantidad total de dinero que has reembolsado en ése mismo día. Balance actual = ventas totales - reembolsos totales. Para conocer tu balance deberás consultar las ventas del día en la sección Transacciones del panel de Clip y llevar un registro de tus reembolsos.