Primero debemos crear una sesión con nuestro “merchant_code” y “merchant_api_token” de la forma tradicional que encontramos en la documentación de ETPay, pero agregando cuatro parámetros adicionales, de los cuales tres son obligatorios y uno opcional dependiendo del método de pago (SPEI o Efectivo), como se describe a continuación:
Parámetro | Descripción |
---|---|
external_interface | Indica que el pago usara una UI externa a la de ETPay. El valor tiene que ser true. Parámetro obligatorio. |
target_flow | Indica el método de pago SPEI o Efectivo. Los valores posibles son: “spei” en el caso de SPEI o “cash” en el caso de Efectivo. Parámetro obligatorio. |
customer_email | Indica el correo electrónico del cliente al que le llegara la confirmación del pago. El valor tiene que ser una cadena de texto con formato de correo electrónico. Parámetro obligatorio. |
customer_name | Indica el nombre completo del cliente que realizará el pago. El valor tiene que ser una cadena de texto con al menos dos palabras y cada palabra debe contener al menos dos letras. Parámetro obligatorio solo para método de pago Efectivo. |
A continuación mostramos un ejemplo de la solicitud:
{{PMT_URL}}session/initialize
{
"merchant_code": "mx_andres_merchant",
"merchant_api_token": "k3dx221ZTgq[...]AkKonZeqxk4c",
"merchant_order_id": "oc12345642344343",
"order_amount": 1,
"external_interface": true,
"target_flow": "spei",
"customer_email": "[email protected]",
"customer_name": "Nestor Lazcano", // Solo requerido para Efectivo
"metadata": [
{
"name": "No de Orden",
"value": "#123456",
"show": true
}
]
}
{
"token": "eXOw1VQZNNKmx[...]mf8Dep22Kte2s2zDOT5Ogp",
"signature_token": "zG8S9Nq3LZI[...]xkC0DgfwOyE4TT",
"terms_url": "<https://www.etpay.com/terms-conditions>"
}
Posteriormente es necesario crear el pago para obtener los datos necesarios para poder mostrarlos en el frontend externo, donde debemos enviar en el body de la solicitud el token generado en el paso anterior.
A continuación mostramos un ejemplo de la solicitud:
{{PMT_URL}}payment/start
{
"session_token": "eXOw1VQZNNKmx[...]mf8Dep22Kte2s2z"
}
{
"payment_token": "ZohpsBOe[...]k2d6dUiT8O0r",
"transfer_concept": "001167850034",
"merchant_amount": "1",
"merchant_bank": "santander",
"merchant_name": "ETPAY",
"target_flow": "spei",
"transfer_clabe": "646180316100056605",
"expired_at": "2024-08-27T23:39:33.633Z",
"codi_qr": null,
"barcode": "data:image/png;base64,iVBOR[...]35CYII="
}