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 |
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.
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 |
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) |
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.
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 | |
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 |
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 |
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([
[…],
…,
[…]
]));
<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.
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.
De acuerdo con el medio de pago seleccionado, se mostrarán diferentes opciones a visualizar debajo:
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:
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
|
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 |
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:
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
|
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 |
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 |
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:
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
|
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 |
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 |
Las respuestas siempre se realizarán mediante un POST HTTP a las URL indicadas como de OK o Error.
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ó.
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
|
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 |
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 |