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 mail 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":"pruebas@pagofacil.net",
		"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:

{
 "WebServices_Transacciones": {
 "transaccion": {
 "autorizado": "1",
 "autorizacion": "1",
 "transaccion": "S-PFE2692S2720I1141743",
 "texto": "Transaction has been successful!-staging",
 "mode": "S",
 "totalAttempts": "1",
 "idTransaccion": "1141743",
 "tipoTarjetaBancaria": "DEBIT",
 "empresa": "PagoFacil Demo",
 "TransIni": "11:07:27 am 19/09/2018",
 "TransFin": "11:07:30 am 19/09/2018",
 "param1": "",
 "param2": "",
 "param3": "",
 "param4": "",
 "param5": "",
 "TipoTC": "Master Card",
 "data": {
 "nombre": "Jon",
 "apellidos": "Snow",
 "numeroTarjeta": "",
 "cvt": "",
 "cp": "48219",
 "mesExpiracion": "",
 "anyoExpiracion": "",
 "monto": "1599",
 "idSucursal": "e147ee31531d815e2308d",
 "idUsuario": "f541b3f11f0f9b3fb33499",
 "idServicio": "3",
 "email": "ohmlaud@gmail.com",
 "telefono": "55751875",
 "celular": "5530996234",
 "calleyNumero": "Valle de Don, 54",
 "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": "127.0.0.1",
 "transFechaHora": "1537373247",
 "bin": "5513 5"
 },
 "dataVal": {
 "idSucursal": "2720",
 "cp": "48219",
 "nombre": "Jon",
 "apellidos": "Snow",
 "numeroTarjeta": "(16) **** **** ****2123",
 "cvt": "(3) ***",
 "monto": "1599",
 "mesExpiracion": "(2) **",
 "anyoExpiracion": "(2) **",
 "idUsuario": "2691",
 "source": "1",
 "idServicio": "3",
 "recurrente": "0",
 "plan": "NOR",
 "diferenciado": "00",
 "mensualidades": "00",
 "ip": "201.140.96.58",
 "httpUserAgent": "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0",
 "idPedido": "TEST_TX",
 "tipoTarjeta": "Master Card",
 "hashKeyCC": "17b043d9be2648db6b298583",
 "idEmpresa": "2692",
 "nombre_comercial": "PagoFacil Demo",
 "noProcess": "",
 "noMail": "",
 "notaMail": "",
 "transFechaHora": "1537373247",
 "settingsTransaction": {
 "noMontoMes": "300",
 "noTransaccionesDia": "2",
 "minTransaccionTc": "5",
 "tiempoDevolucion": "30",
 "sendPdfTransCliente": "1",
 "AppService": "1",
 "noTransErroneas": "5",
 "minTransErroneas": "10",
 "suspencionServicio": ""
 },
 "email": "pruebas@pagofacil.net",
 "telefono": "55751875",
 "celular": "5530996234",
 "calleyNumero": "Valle del Don, 45",
 "colonia": "Del Valle",
 "municipio": "Tecamac",
 "estado": "Sonora",
 "pais": "México",
 "idCaja": "",
 "paisDetectedIP": "201.140.96.58",
 "qa": "1",
 "https": "off"
 },
 "pf_message": "Transaccion exitosa",
 "status": "success"
 }
 }
}
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": "pruebas@pagofacil.net",
 "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.