E-Checkout

La solicitud se realizará a través del envío de una redirección web a la URL correspondiente como action de un formulario en el sitio web del Organismo. Previo a esa redirección, se requiere la generación de un Token que autoriza el inicio del pago.

El inicio de la solicitud a través de E-Checkout requiere que posea credenciales de firma para su Organismo.

Entorno Sandbox (pruebas) Producción
Obtener token https://sandbox.epagos.net/post.php https://api.epagos.net/post.php
Enviar solicitud de pago https://postsandbox.epagos.net https://post.epagos.net
Panel de control https://portalsandbox.epagos.net https://portal.epagos.net


Código fuente de ejemplo - SDK PHP

En nuestro repositorio podrá encontrar un ejemplo de cómo obtener su token y hacer la petición para enviar al usuario a realizar el pago.

https://github.com/epagos/api_php/tree/master/post



Token

El primer paso es obtener la autorización para iniciar el pago, para ello se deberá realizar un POST HTTP a la URL de obtención de token especificada con los datos que se muestran a continuación:

Nombre Tipo Descripción
id_usuario Texto Usuario
id_organismo Numérico entero Código de Organismo asignado
password Texto Contraseña de su usuario
hash Texto Hash correspondiente a su usuario

Respuesta de obtención de Token

Como respuesta, se valida la información y se devuelve en formato JSON:

Nombre Tipo Descripción
id_resp Numérico entero Código de respuesta
respuesta Texto Descripción de respuesta
id_organismo Numérico entero Código de Organismo
Token Texto El token generado (solamente en caso de éxito)

Respuestas posibles de la obtención de token

id_resp Tipo Respuesta
01001 Correcta Token generado
01002 Error Error al validar el usuario o sus credenciales.
01003 Error Error interno al generar el token.

En el SDK de ePagos encontrará un ejemplo de cómo obtener un token y su posterior uso en este enlace:

https://github.com/epagos/api_php/blob/master/post/redireccion/inicio.php

para el caso en que esté implementado mediante redirección a nuestra plataforma y en

https://github.com/epagos/api_php/blob/master/post/iframe/inicio.php

para el caso de que esté implementando dentro de un <iframe> el llamado a nuestra plataforma.



Inicio de solicitud de pago

Una vez obtenido el token se hará el POST, mencionado al comienzo, con los siguientes datos, los campos marcados con un asterisco (*) son obligatorios:

Nombre Tipo Descripción
version (*) Texto La versión del protocolo.
- “1.0” valor fijo
operacion (*) Set Tipo de operación.
Valores posibles:
- Pago, valor fijo “op_pago”
convenio (*) Numérico El número de convenio que le fue asignado.
Por ejemplo: 00001
En algunos casos es posible para la plataforma inferir el convenio a utilizar automáticamente, si desea que se infiera, por favor envie ese dato con el valor null.
Datos de Credenciales
id_organismo (*) Numérico Organismo
token (*) Texto Token generado previamente
URL respuesta
ok_url (*) Texto URL de respuesta positiva, no indica que la operación esté acreditada
error_url (*) Texto URL de respuesta de error
Datos de la operación
numero_operacion Texto (100) Opcional. Identificación externa. Permite relacionar una solicitud de pago con el sistema del Organismo, que almacena ahi su identificador principal
id_moneda_operacion (*) Numérico entero Moneda, valor fijo “1”
monto_operacion (*) Numérico decimal Monto
identificador_cliente Texto (6,100) Solo para el uso de guardado de medios de pago. Ver pagos recurrentes.
fecha_2do_venc Fecha (AAAA-MM-DD) Opcional. La fecha del segundo vencimiento de la solicitud de pago.
monto_operacion_2do_venc Numérico decimal Opcional. El importe del segundo vencimiento de la operación, con dos decimales.
tipo_operacion Numérico entero Opcional. El tipo de deuda para agrupar la deuda. Consultar a su implementador para ver los valores posibles
Opciones
opc_pdf Booleano Indica si se devuelve el contenido comprobante PDF. Por defecto: true
opc_devolver_qr Booleano Indica si se devuelve el contenido del código QR (solo para pagos en Efectivo y Homebanking). Por defecto: true
opc_devolver_codbarras Booleano Indica si se devuelve el contenido del código de barras como imagen. Por defecto: false
opc_comision Booleano Indica si se debe retornar el valor de la comisión de la transacción. Por defecto: false
opc_fecha_vencimiento Fecha (AAAA-MM-DD) Fecha del primer vencimiento de la solicitud de pago, debe ser mayor que la fecha de hoy.
opc_guardado_obligatorio Booleano Indica si el usuario está obligado a guardar el medio de pago para recurrencia
opc_totem Booleano Indica si debe mostrarse teclado en pantalla, útil para utilizar una interfaz táctil (como un Tótem o Kisco digital)
opc_email_automatico Booleano Indica si el email_pagador se solicita al usuario cuando no se informa. Por defecto: true
opc_descargar_pdf Booleano Indica si se muestra una interfaz de ePagos para la descarga de las instrucciones o boleta de pago. Por defecto: false
opc_operaciones_lote Texto Opcional. Recibe una lista de números de operaciones (id_transaccion) separados por comas si hay más de una.
Si se indica, cuando la operación de E-Checkout se acredite, se traslada esa acreditación a las operaciones indicadas para no tener que invocar manualmente al método pago_lote de la API.
opc_T30_monto_abierto Booleano Nuevo Indica si el QR interoperable generado es de monto abierto o cerrado. Por defecto: false
opc_T30_reutilizable Booleano Nuevo Indica si el QR interoperable generado se puede pagar más de una vez. Por defecto: false
opc_T30_requiere_orden Booleano Nuevo Indica si el QR interoperable generado requiere una orden de pago para su cobro. Por defecto: false
Detalle de la operación
detalle_operacion Texto (JSON codificado) Opcional. Estructura con el detalle de cómo se compone el monto a pagar. Ver Estructura DetalleOperacion, más específicamente se debe enviar un vector de esta estructura con al menos un elemento o en su defecto no enviar el campo.
detalle_operacion_visible Booleano Opcional. Determina si se debe mostrar al usuario el detalle informado. Por defecto: true
Forma de pago (opcional)
fp_excluidas Array numérico, codificado con serialize() o un Texto con los números separados por comas Las formas de pago excluidas. Ver formas de pago
tp_excluidos Array numérico, codificado con serialize() o un Texto con los números separados por comas Los tipos de pago excluidos. Ver tipo formas de pago
fp_permitidas Array numérico, codificado con serialize() o un Texto con los números separados por comas Las formas de pago permitidas. Ver formas de pago
fp_defecto Numérico La forma de pago preferida. Ver formas de pago
Identificadores adicionales (opcional)
identificador_externo_2 Texto (100) Opcional. Identificador adicional para uso del cliente.
identificador_externo_3 Texto (512) Opcional. Identificador adicional para uso del cliente
identificador_externo_4 Texto (65.535) Nuevo Opcional. Identificador adicional para uso del cliente
Datos del pagador (opcional)
nombre_pagador Texto Nombre
apellido_pagador Texto Apellido
fechanac_pagador Fecha (AAAA-MM-DD) Fecha de nacimiento
email_pagador Texto Email
tipo_doc_pagador Numérico Tipo de documento
numero_doc_pagador Numérico entero Número de documento
cuit_doc_pagador Numérico entero CUIT / CUIL
calle_dom_pagador Texto Calle del domicilio
numero_dom_pagador Texto Número de la calle del domicilio
adicional_dom_pagador Texto Datos adicionales de la dirección
cp_dom_pagador Texto Código postal del domicilio
ciudad_dom_pagador Texto Ciudad del domicilio
provincia_dom_pagador Numérico entero Provincia del domicilio
país_dom_pagador Numérico entero País del domicilio
codigo_telef_pagador Numérico entero Código de área del teléfono
numero_telef_pagador Numérico entero Número del teléfono
banco_pagador Numérico entero El código de banco del pagador
cbu_pagador Numérico entero El número de CBU del banco del pagador, usado cuando la forma de pago es DEBIN
Estructura detalle operación
Nombre Tipo Descripción
id_item Numérico entero Identificador del elemento del detalle
desc_item Texto Descripción del elemento del detalle
monto_item Numérico decimal Monto unitario del elemento del detalle
cantidad_item Numérico entero Cantidad del elemento del detalle
Atención
Si informa los detalles de la operación, tenga en cuenta de que la plataforma validará que la suma de los montos multiplicados por la cantidad de cada elemento, coincidan con el monto de la operación.

El parámetro detalle_operacion, se debe enviar codificando el JSON de la estructura de detalles con urlencode() de PHP o una función similar. Otra posibilidad es codificar en Base64 el texto resultante del JSON.
Por favor, en el caso de usar esa última opción, notar de que el JSON debe ser un array de objetos con la estructura indicada.

En PHP, por ejemplo:

      
        $detalle_op = urlencode(json_encode([
          [
            'id_item'=>'0',
            'desc_item'=>'Cuota pura del impuesto provincial',
            'monto_item'=> 200,
            'cantidad_item'=>1
          ],
          [
            'id_item'=>'1',
            'desc_item'=>'Recargo pago fuera de término',
            'monto_item'=> 10,
            'cantidad_item'=>1
          ]
        ]));
      
    

o sino:

      
        $detalle_op = base64_encode(json_encode([
          […],
          …,
          […]
        ]));
      
    

Los campos de tipo float, se envían sin separadores de miles y con el punto (.) como separador decimal. Por ejemplo: 1234.12
Si el número a enviar es un entero puede enviarse sin el .00 correspondiente. Por ejemplo: 123 o 123.00


Ejemplo de inicio de solicitud
      
        <form name='pago' method='post' action='<url_post>'>
          <input type='hidden' name='version' value='2.0' />
          <input type='hidden' name='operacion' value='op_pago' />
          <input type='hidden' name='id_organismo' value='<id_organismo>' />
          <input type='hidden' name='convenio' value='<nro_convenio>' />
          <input type='hidden' name='token' value='<token_generado' />
          <input type='hidden' name='numero_operacion' value='<nro_operacion>' />
          <input type='hidden' name='id_moneda_operacion' value='1' />
          <input type='hidden' name='monto_operacion' value='<monto>' />
          <input type='hidden' name='detalle_operacion' value='<detalle_encodeado>' />
          <input type='hidden' name='detalle_operacion_visible' value='1' />
          <input type='hidden' name='ok_url' value='<su_url_ok>' />
          <input type='hidden' name='error_url' value='<su_url_error>' />
          <br/><input type='submit' value='Enviar pago' />
        </form>
      
    

Se realizará el envío por POST, redirigiendo al usuario para que complete la información del pago.

A la vuelta recibirá la respuesta en su URL de OK o de Error de acuerdo con el resultado de la operación.

Procesamiento en ePagos

Una vez dentro del sitio de ePagos, se mostrará al usuario final los medios de pago habilitados (de no recibirse opciones de método de pago), de lo contrario se deberán mostrar todos los soportados y disponibles en ese momento teniendo en cuenta los medios de pago excluidos si se enviaron.

La pantalla será similar a lo que se muestra a continuación, con fondo predominantemente blanco y pudiéndose personalizar con el logo del Organismo.

En el caso de que se envíe un detalle de lo que se deberá abonar, se mostrará el listado de los elementos que lo componen sino se mostrará un totalizador con el importe a cobrar al usuario.

Procesamiento en ePagos

De acuerdo con el medio de pago seleccionado, se mostrarán diferentes opciones a visualizar debajo:

Tarjetas de crédito / débito

Una vez seleccionada la tarjeta de crédito / débito, el usuario seleccionará la cantidad de cuotas entre otros datos, con esa información se mostrará el monto total a pagar, el CFT y la TNA.

Para continuar el contribuyente deberá además ingresar:

  • Cantidad de cuotas (solo tarjetas de crédito)
  • Número de tarjeta
  • Código de seguridad
  • Fecha de vencimiento (año y mes)
  • Nombre del titular (como aparece en la tarjeta)
  • Tipo de documento
  • Número de documento
  • E-mail
  • Fecha de nacimiento
  • Número de puerta
  • Datos del domicilio (solo si la operación es de alto riesgo)

La información devuelta en el caso del medio de pago de este tipo es:

Nombre Tipo Descripción
id_resp Numérico entero Código de Respuesta
respuesta Texto Texto de la respuesta
convenio Numérico entero Número de convenio asignado a la operación
fp Texto JSON Vector con los datos
  • nombre_fp: Texto
  • tarjeta_fp: Texto
  • importe_fp: Numérico decimal
  • importe_original_fp: Numérico decimal
  • respuesta_entidad_cobro: Texto
id_organismo Numérico Código del Organismo
id_transaccion Numérico entero Identificador de la transacción
id_fp Numérico entero Identificador de la forma de pago elegida
numero_operacion Texto Dato enviado al iniciar la operación
identificador_2 Texto Dato enviado al iniciar la operación en el atributo identificador 2
identificador_3 Texto Dato enviado al iniciar la operación en el atributo identificador 3
identificador_4 Texto Dato enviado al iniciar la operación en el atributo identificador 4
token Texto El token con el que inició la solicitud
Medios de pago en efectivo

El sistema genera el código de barras, un código de pago sin factura dependiendo el medio de pago seleccionado, y se realizará la publicación la deuda en la forma de pago elegida. El usuario tendrá la posibilidad de descargar una boleta con la información para realizar el pago.

Al hacer clic en Iniciar solicitud el usuario será redireccionado para ingresar el:

  • E-mail

La información devuelta en el caso de un medio de pago de este tipo es:

Nombre Tipo Descripción
id_resp Numérico entero Código de Respuesta
respuesta Texto Texto de la respuesta
convenio Numérico entero Número de convenio asignado a la operación
fp Texto JSON Vector con los datos
  • nombre_fp: Texto
  • importe_fp: Numérico decimal
  • respuesta_entidad_cobro: Texto
  • fechavenc_fp: Fecha (AAAA-MM-DD
id_organismo Numérico Código del Organismo
id_transaccion Numérico entero Identificador de la transacción
id_fp Numérico entero Identificador de la forma de pago elegida
numero_operacion Texto Dato enviado al iniciar la operación en el atributo numero_operacion
identificador_2 Texto Dato enviado al iniciar la operación en el atributo identificador 2
identificador_3 Texto Dato enviado al iniciar la operación en el atributo identificador 3
token Texto El token con el que inició la solicitud
pdf Texto Boleta de pago (PDF). El contenido del PDF codificado en base64
codigo_barras_fp Numérico entero Código de barras de la forma de pago
codigo_pago_fp Texto Código de pago de la forma de pago (es el código de pago sin factura)
codigo_qr Texto Código QR. El contenido de la imagen del QR codificado en base64
barras_adicionales Vector Vector contiendo la información de las barras adicionales de la operación, si existen
Homebanking / Transferencias / DEBIN

Se publica la deuda correspondiente en la entidad seleccionada (solo Homebanking), y se redirige a la página de respuesta normalmente, indicando de que el pago quedó a la espera de su confirmación de acreditación. El usuario podrá descargar una boleta con las instrucciones para el pago.

Al hacer clic en Iniciar solicitud el usuario será redireccionado para ingresar el:

  • CUIT / CUIL (de la cuenta bancaria del usuario que pagará)
  • CBU/CVU o alias (solo si eligió como forma de pago DEBIN)
  • E-mail

La información devuelta en el caso de un medio de pago de este tipo es:

Nombre Tipo Descripción
id_resp Numérico entero Código de Respuesta
respuesta Texto Texto de la respuesta
convenio Numérico entero Número de convenio asignado a la operación
fp Texto JSON Vector con los datos
  • nombre_fp: Texto
  • importe_fp: Numérico decimal
  • respuesta_entidad_cobro: Texto
id_organismo Numérico Código del Organismo
id_transaccion Numérico entero Identificador de la transacción
id_fp Numérico entero Identificador de la forma de pago elegida
numero_operacion Texto Dato enviado al iniciar la operación
identificador_2 Texto Dato enviado al iniciar la operación en identificador 2
identificador_3 Texto Dato enviado al iniciar la operación en identificador 3
token Texto El token con el que inició la solicitud
pdf Texto Boleta de pago (PDF). El contenido del PDF codificado en base64
cuit_cuenta Numérico entero El CUIT a donde se publicará (Homebanking) o desde donde deberá transferir (forma de pago Transferencia Bancaria)
cbu_cuenta Texto Solo en caso de elegir como forma de pago DEBIN, el CBU/CVU o alias de la cuenta a donde se publicará el DEBIN

Página de retorno

Las respuestas siempre se realizarán mediante un POST HTTP a las URL indicadas como de OK o Error.

Respuesta satisfactoria

Se redirigirá a la URL que el Organismo defina y se incluirán la serie de datos de respuesta antes mencionados, que varían de acuerdo al tipo de forma de pago que el usuario seleccionó.

Respuesta Error

Se redirigirá a la URL que el Organismo defina y se incluirá una serie de datos de respuesta, a mencionar:

Nombre Tipo Descripción
id_resp Numérico entero Código de Respuesta
respuesta Texto Texto de la respuesta
convenio Numérico entero Número de convenio asignado a la operación
fp Texto JSON Vector con los datos
  • nombre_fp: Texto
  • importe_fp: Numérico decimal
  • respuesta_entidad_cobro: Texto
id_organismo Numérico Código del Organismo
id_transaccion Numérico entero Identificador de la transacción
numero_operacion Texto Dato enviado al iniciar la operación en el atributo numero_operacion
identificador_2 Texto Dato enviado al iniciar la operación en el atributo identificador 2
identificador_3 Texto Dato enviado al iniciar la operación en el atributo identificador 3
token Texto El token con el que inició la solicitud
Respuestas Posibles
id_resp Tipo Respuesta
02001 Correcta Pago acreditado
02002 Correcta Pago pendiente
02003 Error Error al validar el token
02004 Error Pago cancelado / rechazado
02005 Error Error interno al intentar procesar el pago
02006 Error Error al validar el parámetro: [_parametro_]
02007 Error El usuario canceló el pago
02008 Error No coinciden los montos y los detalles
02009 Error La forma de pago [_parametro_] no se encuentra disponible
02010 Error Error del proveedor de servicios online