Crear sesión

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:

POST

{{PMT_URL}}session/initialize

Body

{
    "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
        }
    ]
}

Response

{
    "token": "eXOw1VQZNNKmx[...]mf8Dep22Kte2s2zDOT5Ogp",
    "signature_token": "zG8S9Nq3LZI[...]xkC0DgfwOyE4TT",
    "terms_url": "<https://www.etpay.com/terms-conditions>"
}

Crear pago

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:

POST

{{PMT_URL}}payment/start

Body

{
    "session_token": "eXOw1VQZNNKmx[...]mf8Dep22Kte2s2z"
}

Response

{
    "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="
}