DESCRIPCIÓN
Como bien su nombre lo indica, son formas de pago que se realizar periódicamente dependiendo las condiciones que se hayan establecido en el momento de la compra. Se manejarán de la misma forma que las transacciones normales.
MÉTODOS DE INTERACCIÓN
Los métodos de interacción que se usan para consumir esta API, son los siguientes:
URL
Base de la URL para consumir los servicios Web.
Desarrollo: https://sandbox.pagofacil.tech
Producción: https://api.pagofacil.tech
1. Registrar una transacción.
Esta petición de API te permite generar un registro de pago de por un monto determinado para ser aplicado de forma recurrente de acuerdo a las condiciones de compra del producto.
MÉTODO | URL |
---|---|
POST | /Wsrrecurrentes/index/format/json? |
Campos de la Petición:
Variable | Descripción | Valor Obligatorio | Tipo | Longitud | Categoría |
---|---|---|---|---|---|
method | Este dato es muy importante ya que permite distinguir las dos peticiones. En este caso se debe incluir la cadena “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 | 15 | 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 dónde 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 del cargo a la tarjeta. | Si | Decimal | (7,2) | Establecimiento |
data[idSucursal] | En caso de contar con varias sucursales se podrá utilizar este identificador para distinguir las transacciones. | Si | Varhcar | 20 | Establecimiento |
data[idUsuario] | Sera el identificador de la empresa ante PagoFácil. | Si | Varchar | 20 | Establecimiento |
data[idServicio] | Este identificador le indica al motor de PagoFácil que servicio será el que se consumirá: 2=Recurrente. | 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 el número de celular del tarjetahabiente. | Si | Varchar | 10 | Datos Personales Cliente |
data[calleyNumero] | Campo para registro de la calle y numero del tarjetahabiente. | Si | Varchar | 45 | Datos Personales Cliente |
data[colonia] | Campo para registrar la colonia dónde vive el tarjetahabiente. | Si | Varchar | 30 | Datos Personales Cliente |
data[municipio] | Campo para registrar el municipio dónde vive el tarjetahabiente. | Si | Varchar | 30 | Datos Personales Cliente |
data[estado] | Campo para registrar el estado dónde vive el tarjetahabiente. | Si | Varchar | 30 | Datos Personales Cliente |
data[pais] | Campo para registrar el país dónde vive el tarjetahabiente. | Si | Varchar | 50 | Datos Personales Cliente |
data[idCliente] | Identificador del contrato donde se autoriza el cargo recurrente por parte del dueño de la tarjeta. | No | Varchar | 10 | Datos Establecimiento |
data[diaPago] | Día en el que se estarán realizando los cobros. | No | Int | 2 | Datos Establecimiento |
data[fechaIniCobro] | Fecha a partir de la cual se empezará a cobrar. | Si | Date | Formato: ‘dd-mm-yyyy’ | Datos Establecimiento |
data[fechaFinCobro] | Fecha en la cual expira el cobro. | No | Date | Formato: ‘dd-mm-yyyy’ | Datos Establecimiento |
data[httpUserAgent] | Identificador de Navegador | No | Varchar | 150 | Datos Establecimiento |
data[ip] | Dirección Ip del servidor el cual envía la petición. | No | Varhcar | 16 | Datos Establecimiento |
data[cargo] | Si se va a registrar un cobro al momento del registro. | No | Int | 1 | Datos Establecimiento |
Ejemplo de la petición API:
{
"method":"transaccion",
"data": {
nombre":"Jon",
"apellidos":"Doe",
"numeroTarjeta":"5513 5509 9409 2123",
"cvt":"271",
"cp":"11540",
"mesExpiracion":"05",
"anyoExpiracion":"19",
"monto":"659.66",
"idSucursal":"e147ee31531d815e2308d6d",
"idUsuario":"f541b3f11f0f9b3fb334996",
"idServicio":"2",
"email":"[email protected]",
"telefono":"057557326",
"celular":"5588204416",
"calleyNumero":"",
"colonia":"",
"municipio":"",
"estado":"",
"pais":"",
"idCliente":"0",
"diaPago":"11",
"fechaIniCobro":"16-07-2018",
"fechaFinCobro":"01-02-2019",
"httpUserAgent":"Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:"50.0) Gecko/20100101 Firefox/50.0",
"ip":"127.0.0.1",
"cargo":"1"
}
}
Campos de la respuesta:
CAMPO | DESCRIPCIÓN |
---|---|
status | Valor de tipo entero que devuelve el valor “1” en caso de que la transacción haya sido errónea, de manera contraria, devuelve un valor de tipo entero “0”. |
registered | Muestra el estatus del cargo recurrente, es decir si se procesa manda un valor “1”, en caso contrario, mostrará el valor “0”. |
initial_charge_authorized | Se refiere al estatus del cargo recurrente autorizado (“1”) o no (“0”). |
message | Cadena de texto que nos proporciona un detalle poco más amplio del estatus de la petición. |
registered_id | Identificador del registro del cargo recurrente. |
registrado | Muestra el cargo recurrente registrado correctamente. |
transaccion | Información de la transacción realizada. |
autorizacion | Este dato se refiere al número de autorización de la transacción realizada. |
texto | Muestra información complementaria del estatus general de la transacción. |
error | En caso de ser fallida la transacción, devuelve un arreglo de datos con información de cada error generado al tiempo de la petición. De forma contraria, este campo no muestra alguna información. |
empresa | Es el nombre de la empresa que está realizando la transacción. |
TransIni | Muestra el tiempo de inicio de la transacción. |
TransFin | Devuelve el tiempo de duración de la transacción. |
TipoTC | Nos indica con qué tipo de tarjeta se generó la compra de cierto producto o servicio. |
data | Es un dato de tipo array que muestra todos los campos y valores que se usaron en la petición. |
dataVal | Muestra los datos que se están validando al tiempo de la transacción. |
Ejemplo de la respuesta JSON:
{
"WebServices_Recurrentes": {
"transaccion": {
"status": "1",
"registered": "0",
"initial_charge_authorized": "0",
"message": "Error en las Validaciones Validaciones_Strategy_Recurrente_Manual",
"registered_id": "",
"registrado": "0",
"transaccion": "n/a",
"autorizacion": "n/a",
"texto": "Error en las Validaciones Validaciones_Strategy_Recurrente_Manual",
"error": {
"recordFound": "El contrato ya esta registrado en esta sucursal '0'",
"calleyNumero": "Falta el campo: 'calleyNumero'",
"colonia": "Falta el campo: 'colonia'",
"municipio": "Falta el campo: 'municipio'",
"estado": "Falta el campo: 'estado'",
"pais": "Falta el campo: 'pais'"
},
"empresa": "Sin determinar",
"TransIni": "12:48:26 pm 18/09/2018",
"TransFin": "12:48:26 pm 18/09/2018",
"TipoTC": "",
"data": {
"nombre": "usuario",
"apellidos": "prueba",
"numeroTarjeta": "(19) **** **** ****2123",
"cvt": "(3) ***",
"cp": "11540",
"mesExpiracion": "(2) **",
"anyoExpiracion": "(2) **",
"monto": "659.66",
"idSucursal": "e147ee31531d815e2308d6d6",
"idUsuario": "f541b3f11f0f9b3fb33499684",
"idServicio": "2",
"email": "[email protected]",
"telefono": "057557326",
"celular": "5588204416",
"calleyNumero": "",
"colonia": "",
"municipio": "",
"estado": "",
"pais": "",
"idCliente": "0",
"diaPago": "11",
"fechaIniCobro": "16-07-2018",
"fechaFinCobro": "01-02-2019",
"httpUserAgent": "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0",
"ip": "1.1.1.1",
"cargo": "1",
"transFechaHora": "1537292906"
},
"dataVal": {
"idSucursal": "2720",
"nombre": "usuario",
"apellidos": "prueba",
"numeroTarjeta": "(16) **** **** ****2123",
"cp": "11540",
"monto": "659.66",
"mesExpiracion": "(2) **",
"anyoExpiracion": "(2) **",
"idUsuario": "2691",
"idServicio": "2",
"idCliente": "0",
"diaPago": "11",
"fechaIniCobro": "2018-07-16",
"ip": "172.69.6.42",
"httpUserAgent": "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0",
"fechaFinCobro": "2019-02-01",
"tipoTarjeta": "Master Card",
"hashKeyCC": "7002cfdf80f18a8de8ac1b8",
"idEmpresa": "2692",
"nombre_comercial": "PagoFacil Demo",
"emailEmpresa": "[email protected]",
"tipo": "P",
"transFechaHora": "1537292906",
"noProcess": "",
"noMail": "",
"notaMail": "",
"cvt": "",
"https": "No HTTPS"
}
}
}
}
2. Ver una transacción.
Esta petición nos sirve para consultar la generación y el estatus de una transacción de cargo recurrente, previamente creada.
MÉTODO | URL |
---|---|
POST | /Wsrrecurrentes/index/format/json? |
Campos de la petición:
Variable | Descripción | Obligatorio | Tipo | Longitud | Categoría |
---|---|---|---|---|---|
method | Se debe ingresar la cadena “vercargo” pues es un dato de suma importancia para intentar obtener información de este tipo de petición. | Si | varchar | PagoFacil | |
data[idRecurrente] | El identificador con el que se registró el cargo en PagoFacil. | Si | varchar | 50 | Tarjeta de Crédito |
data[idSucursal] | El Apikey de la sucursal a la que le pertenece el cargo recurrente. | Si | varchar | 20 | Tarjeta de Crédito |
Ejemplo de la petición API:
{"method":"vercargo",
"data":{
"idRecurrente":"S-RAPFE2692S2720I1055",
"idSucursal":"e147ee31531d815e2308d6d6d39929ab599deb98"
}
}
Campos de la respuesta:
CAMPO | DESCRIPCIÓN |
---|---|
registrado | Muestra los datos del cargo recurrente registrado. |
transaccion | Se refiere a la información de la transacción realizada. |
autorizacion | Muestra el número de autorización de la transacción que se registró previamente. |
texto | Muestra una breve descripción de la petición a esta API, ya sea que haya sido satisfactoria o que haya devuelto algún error. |
error | Es un dato de tipo arreglo que muestra la información detallada de los errores que pudieran surgir al momento de hacer la petición. De forma contraria, éste dato se muestra vacío. |
TransIni | Muestra el momento de inicio de la petición. |
TransFin | Este dato devuelve el momento del fin de la petición. |
data | Este valor contiene un arreglo de datos con la información que se envió en la petición del API. |
dataVal | Devuelve un arreglo de datos con los campos que fueron validados por PagoFacil. |
status | Muestra en que estado se encuentra la aplicación del cargo correspondiente. “success” indica que la petición se completo. |
Ejemplo de la respuesta JSON:
{
"WebServices_Recurrentes": {
"vercargo": {
"registrado": "0",
"transaccion": "n/a",
"autorizacion": "n/a",
"texto": "Errores en las reglas de negocio",
"error": {
"idRecurrente": "El cargo: S-RAPFE2692S2720I1055 no se encontro asignado"
},
"TransIni": "12:51:41 pm 18/09/2018",
"TransFin": "12:51:41 pm 18/09/2018",
"data": {
"idRecurrente": "S-RAPFE2692S27",
"idSucursal": "e147ee31531d815e2308d6d6",
"transFechaHora": "1537293101"
},
"dataVal": {
"idRecurrente": "S-RAPFE2692S27",
"idSucursal": "e147ee31531d815e2308d6d6",
"https": "No HTTPS"
},
"status": "success"
}
}
}
POSTMAN
En el siguiente link lo redirigirá a un ejemplo práctico en diferentes lenguajes de programación mediante la herramienta Postman.