DESCRIPCIÓN
Para poder hacer pruebas se utilizará el entorno de desarrollo (Development), una vez finalizadas las pruebas podrán utilizar las dirección del entorno de producción, es importante mencionar que para transacciones realizadas con Visa o MasterCard, la respuesta se dará de forma aleatoria (puede ser Aprobada o Declinada) aunque los datos estén correctos, para los casos de American Express, la respuesta será satisfactoria siempre y cuando los datos requeridos sean correctos.
MÉTODOS DE INTERACCIÓN
URL
Base de la URL para consumir los servicios Web.
Desarrollo: https://sandbox.pagofacil.tech
Producción: https://api.pagofacil.tech
1. Realizar una transacción
MÉTODO | URL |
---|---|
POST | /Wsrtransaccion/index/format/json? |
Campos de la petición:
Variable | Descripción | Valor Obligatorio | Tipo | Longitud | Categoría |
---|---|---|---|---|---|
Nota: El monto se debe especificar en Pesos Mexicanos (MXP), la conversión de divisas queda del lado del cliente. |
|||||
method | Este dato es imprescindible para llevar a cabo la transacción. Será obligatorio mandar la cadena de texto “transaccion” | Si | varchar | PagoFácil | |
data[nombre] | En este campo vendrá el nombre del tarjetahabiente. | Si | varchar | 50 | Tarjeta de Crédito |
data[apellidos] | En este campo vendrán los apellidos del tarjetahabiente. | Si | varchar | 50 | Tarjeta de Crédito |
data[numeroTarjeta] | Número del plástico de la tarjeta de crédito sin guiones o espacios. | Si | varchar | 16 | Tarjeta de Crédito |
data[cvt] | Código de verificación de tarjeta, usualmente impreso en el área de firma de la tarjeta, utilizado para validar que la tarjeta usada en la compra pertenezca a la persona que generó la orden. | Si | int | 4 | Tarjeta de Crédito |
data[cp] | Código postal de la dirección donde vive el tarjetahabiente. | Si | varchar | 9 | Datos Personales Cliente |
data[mesExpiracion] | El mes en el cual el plástico expira MM. | Si | int | 2 | Tarjeta de Crédito |
data[anyoExpiracion] | El año en el cual el plástico expira YY. | Si | int | 2 | Tarjeta de Crédito |
data[monto] | El monto (MXP) del cargo a la tarjeta. | Si | decimal | (10, 2) | Establecimiento |
data[idSucursal] | En caso de contar con varias sucursales se podrá utilizar este identificador para distinguir las transacciones. | Si | varchar (alfanumérico sin espacio) | 60 | Establecimiento |
data[idUsuario] | Sera el identificador de la empresa ante PagoFácil | Si | varchar (alfanumérico sin espacio) | 60 | Establecimiento |
data[idServicio] | Indica al motor de PagoFácil que servicio será el que se consumirá:
1 = WebForm 3 = ThirdParty (ssl) |
Si | int | Producto PagoFácil | |
data[email] | En este campo vendrá el correo de la persona a la que se le enviará el correo con el resumen de la transacción. | Si | 200 | Datos Personales Cliente | |
data[telefono] | Se debe incluir el teléfono del tarjetahabiente. | Si | varchar | 10 | Datos Personales Cliente |
data[celular] | Campo reservado al número de celular del tarjetahabiente. | Si | varchar | 10 | Datos Personales Cliente |
data[calleyNumero] | Campo para registro de la calle y número del tarjetahabiente. | Si | varchar | 45 | Datos Personales Cliente |
data[colonia] | Campo para registro de la colonia del tarjetahabiente. | Si | varchar | 30 | Datos Personales Cliente |
data[municipio] | Campo para registro del municipio del tarjetahabiente. | Si | varchar | 30 | Datos Personales Cliente |
data[estado] | Campo para registro del estado del tarjetahabiente. | Si | varchar | 30 | Datos Personales Cliente |
data[pais] | Campo para registro del país del tarjetahabiente | Si | varchar | 50 | Datos Personales Cliente |
data[idPedido] | Campo para que el establecimiento pueda ligar la transacción con algún identificador de su producto o servicio. Es importante que sea único este identificador. | No | varchar (alfanumérico) | 60 | Establecimiento |
data[param1] | Variable adicional de uso especificado por el comercio. | No | varchar | 60 | Datos Establecimiento |
data[param2] | Variable adicional de uso especificado por el comercio. | No | varchar | 60 | Datos Establecimiento |
data[param3] | Variable adicional de uso especificado por el comercio. | No | varchar | 60 | Datos Establecimiento |
data[param4] | Variable adicional de uso especificado por el comercio. | No | varchar | 60 | Datos Establecimiento |
data[param5] | Variable adicional de uso especificado por el comercio. | No | varchar | 60 | Datos Establecimiento |
data[plan] | Indica la modalidad en que se requiere realizar la transacción. MSI (meses sin intereses) ó NOR (normal, en el caso que la transacción NO es en meses sin intereses). | No | varchar | 3 | Datos Establecimiento |
data[mensualidades] | Este valor depende del dato data[plan] vale “MSI”, refiriéndose a una transacción a Meses Sin Intereses. Formato: ## (2 caracteres numéricos, p.e. 03, 06, 09, 12, etc.) | No | varchar | 2 | Datos Establecimiento |
data[httpUserAgent] | Identificador de Browser | No | varchar | 150 | Datos Establecimiento |
data[ip] | Ip del servidor el cual envía la petición. | No | varchar | 16 | Datos Establecimiento |
Notificaciones de Correo:
Variable | Descripción | Valor Obligatorio | Tipo | Longitud | Categoría |
---|---|---|---|---|---|
data[noMail] | El motor envía por default una notificación vía correo electrónico al comprador, en caso de que desees tu enviar el correo para evitar la doble notificación, basta con agregar este campo con valor de “1” para indicarle al motor que no envíe notificación por parte de PagoFácil. | No | int | 1 | Configuración Motor |
Ejemplo de petición API, método POST:
{
"method":"transaccion",
"data":{
"nombre":"Jon",
"apellidos":"Snow",
"numeroTarjeta":"5513 5509 9409 2123",
"cvt":"271",
"cp":"48219",
"mesExpiracion":"08",
"anyoExpiracion":"22",
"monto":"1599",
"idSucursal":"e147ee31531d815e2308d6d6d39929ab599deb98",
"idUsuario":"f541b3f11f0f9b3fb33499684f22f6d711f2af58",
"idServicio":"3",
"email":"[email protected]",
"telefono":"55751875",
"celular":"5530996234",
"calleyNumero":"Valle del Don",
"colonia":"Del Valle",
"municipio":"Tecamac",
"estado":"Sonora",
"pais":"México",
"idPedido":"TEST_TX",
"param1":"",
"param2":"",
"param3":"",
"param4":"",
"param5":"",
"httpUserAgent":"Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0",
"ip":"1.1.1.1"
}
}
Tabla de Campos Response
Variable | Descripción | Valor Obligatorio | Tipo | Longitud | Categoría |
---|---|---|---|---|---|
autorizado | Este campo nos indicará si la transacción fue exitosa (1) o declinada (0). | Si | Bool | 1 | Request PagoFácil |
autorizacion | Contendrá el no. de autorización del banco. | No | Int | Request PagoFácil | |
transaccion | Identificador de PagoFácil para la transacción realizada. | No | varchar | 50 | Request PagoFácil |
texto | Describe si una transacción tuvo un error o fue exitosa. | No | varchar | 100 | Request PagoFácil |
error | Es un elemento array donde en caso de error, mandará los mensajes con el formato ‘campo’=>’error’ | No | Array | Request PagoFácil | |
empresa | Devuelve información de la empresa que está involucrada en la transacción. | No | Sring | Request PagoFácil | |
transIni | Indica la hora en que la transacción se llevó a cabo. | No | Datetime | 22 | Request PagoFácil |
transFin | Indica la hora en que la transacción terminó. | No | Datetime | 22 | Request PagoFácil |
param1 | Variable adicional de uso especificado por el comercio. | No | varchar | 60 | Datos Establecimiento |
param2 | Variable adicional de uso especificado por el comercio. | No | varchar | 60 | Datos Establecimiento |
param3 | Variable adicional de uso especificado por el comercio. | No | varchar | 60 | Datos Establecimiento |
param4 | Variable adicional de uso especificado por el comercio. | No | varchar | 60 | Datos Establecimiento |
param5 | Variable adicional de uso especificado por el comercio. | No | varchar | 60 | Datos Establecimiento |
TipoTC | Indica el tipo de tarjeta con el que se está realizando la transacción. | No | varchar | 30 | Request PagoFácil |
data | En este arreglo de datos vendrán los datos que se enviaron originalmente. | Si | Array | Request PagoFácil | |
dataVal | Es un arreglo de datos que indica cuáles datos han sido validados. | Si | Array | Request PagoFácil | |
pf_message | Cadena de texto que proporciona información de la transacción que ha sido ejecutada. | Si | String | Request PagoFácil | |
status | Este valor es una cadena corta de texto que devuelve “success” en caso de haber realizado una transacción con éxito, en caso contrario, regresará la cadena “error”. | Si | String | Request PagoFácil |
Ejemplo de respuesta JSON:
Autorizado | No Autorizado |
---|---|
|
|
2. Verificar una transacción
En esta ocasión se usará el servicio de verificación que permite consultar el último resultado de una transacción con el identificador señalado. Se realiza de esta manera en caso de que se necesite consultar el número de autorización del banco y número de transacción por parte de PagoFácil o simplemente verificar el estado de una transacción.
MÉTODO | URL |
---|---|
POST | /Wsrtransaccion/index/format/json? |
Campos de la petición:
Variable | Descripción | Valor Obligatorio | Tipo | Longitud | Categoría |
---|---|---|---|---|---|
method | Cadena de texto solicitada por el API que distingue entre los tipos de peticiones. La cadena “verificar” es imprescindible en esta petición. | Si | varchar | PagoFácil | |
data[idSucursal] | En caso de contar con varias sucursales se podrá utilizar este identificador para distinguir las transacciones. | Si | varchar (alfanumérico) | 60 | Establecimiento |
data[idUsuario] | Sera el identificador de la empresa ante PagoFácil. | Si | varchar (alfanumérico) | 60 | Establecimiento |
data[idPedido] | Identificador que se proporcionó para ligar la transacción de PagoFácil con la transacción del comercio. | No | varchar (alfanumérico) | 60 | Establecimiento |
Ejemplo de la petición API:
method:verificar
data[idPedido]:TEST_TX
data[idUsuario]:f541b3f11f0f9b3fb334
data[idSucursal]:e147ee31531d815e2308
Campos de la respuesta:
Variable | Descripción | Valor Obligatorio | Tipo | Longitud | Categoría |
---|---|---|---|---|---|
autorizado | Este campo nos indicará si la transacción fue exitosa (1) o declinada (0). | Si | Bool | 1 | Request PagoFácil |
autorizacion | Contendrá el no. de autorización del banco. | No | Int | Request PagoFácil | |
transaccion | Identificador de PagoFácil para la transacción realizada. | No | Varchar | 50 | Request PagoFácil |
texto | Describe si una transacción tuvo un error o fue exitosa. | No | Varchar | 50 | Request PagoFácil |
mode | Nos indica si la transacción se realizó en el entorno de prueba (R) o producción (P). |
No | Varchar | 1 | Request PagoFácil |
TransIni | Indica la hora en que la transacción se llevó a cabo. | No | Datetime | 22 | Request PagoFácil |
TransFin | Indica la hora en que la transacción terminó. | No | Datetime | 22 | Request PagoFácil |
TipoTC | Indica el tipo de tarjeta con el que se está realizando la transacción. | No | Varchar | 30 | Request PagoFácil |
dataVal | Es un arreglo de datos que indica cuáles datos han sido validados. | No | Array | Request PagoFácil | |
status | Contiene una cadena de texto con la información del estado de cierta transacción buscada. | Si | varchar | PagoFácil | |
data | Detalle que contiene la información de los datos de búsqueda de la petición solicitada. | Si | Array | PagoFácil | |
error | Muestra una cadena de texto con el detalle de la transacción. | Si | varchar | PagoFácil |
Ejemplo de la respuesta JSON:
{
"WebServices_Transacciones": {
"verificar": {
"autorizado": "1",
"autorizacion": "1",
"transaccion": "S-PFE2692S2720I1141743",
"texto": "staging",
"mode": "S",
"TransIni": "2018-09-19 11:07:27",
"TransFin": "2018-09-19 11:07:29",
"TipoTC": "Master Card",
"dataVal": {
"nombre": "Jon Snow",
"cp": "48219",
"monto": "1599.00",
"idServicio": "3",
"idPedido": "TEST_TX",
"plan": "NOR",
"diferenciado": "00",
"mensualidades": "00",
"ip": "1.1.1.1",
"tipoTarjeta": "Master Card",
"email": "[email protected]",
"telefono": "55751875",
"celular": "5530996234",
"calleyNumero": "Valle del Don, 45. Del Valle, Tecamac. Sonora, México.",
"idCaja": "0"
},
"status": "1",
"data": {
"idPedido": "TEST_TX",
"idUsuario": "f541b3f11f0f9b3fb3349968",
"idSucursal": "e147ee31531d815e2308d6d"
}
}
}
}
POSTMAN
En el siguiente link lo redirigirá a un ejemplo práctico en diferentes lenguajes de programación mediante la herramienta Postman.