API PayCode
Introducción
Bienvenido a PayCode! Podras usar los endpoints de la API de PayCode para poder generar cobros de manera rápida y sencilla.
¡Tenemos enlaces de lenguaje en Python, PHP y JavaScript! Puede ver ejemplos de código en el área oscura a la derecha y puede cambiar el lenguaje de programación de los ejemplos con las pestañas en la parte superior derecha.
Base URL
URL base |
---|
https://plataforma.paycode.com.mx |
V1
Autenticación
El módulo de autenticación de la API de PayCode nos permite obtener un token el cual nos permite autenticar cada una de las peticiones futuras
La API de PayCode utiliza una autenticación basada en token para aceptar peticiones.
Si se raliza un peteción sin el token asignado simplemente fallara.
Login
import requests
url = "https://plataforma.paycode.com.mx/Api/v1/auth/loginApi"
payload = ""
headers = {
'Authorization': '[API Key]'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v1/auth/loginApi',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: [API Key]'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = '';
var config = {
method: 'get',
url: 'https://plataforma.paycode.com.mx/Api/v1/auth/loginApi',
headers: {
'Authorization': '[API Key]'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"access_token": "[token]",
"token_type": "bearer",
"expires_in": 300
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": -80
}
Recupera un token tipo bearer, que permite autenticar una petición
Información de petición
Categoria | Valor |
---|---|
Método HTTP | GET |
EndPoint | /Api/v1/auth/loginApi |
Headers
Tipo | Valor |
---|---|
Authorization | [API Key] |
Esquema de entrada de la petición
El contenido del esquema debe de estar en formato JSON.
No requiere ningún esquema de entrada
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
access_token | String |
Token de autenticación |
token_type | String |
Tipo de token |
expires_in | Int |
Tiempo de vida del token (Segundos) |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Actualizar token
import requests
url = "https://plataforma.paycode.com.mx/Api/v1/token/actualizar_token"
payload = {}
headers = {
'Authorization': 'Bearer [token]'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://plataforma.paycode.com.mx/Api/v1/token/actualizar_token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer [token]"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = '';
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v1/token/actualizar_token',
headers: {
'Authorization': 'Bearer [token]'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"access_token": "[token]",
"token_type": "bearer",
"expires_in": 300
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": -80
}
Recupera un token nuevo usando el token actual, siempre y cuando no haya expirado.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | Api/v1/token/actualizar_token |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
No requiere ningún esquema de entrada
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
access_token | String |
Token de autenticación |
token_type | String |
Tipo de token |
expires_in | Int |
Tiempo de vida del token (Segundos) |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Logout
import requests
url = "https://plataforma.paycode.com.mx/Api/v1/auth/logoutApi"
payload = {}
headers = {
'Authorization': 'Bearer [token]'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://plataforma.paycode.com.mx/Api/v1/auth/logoutApi",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer [token]"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = '';
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v1/auth/logoutApi',
headers: {
'Authorization': 'Bearer [token]'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"message": "Successfully logged out"
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": -80
}
El token recuperado es mandado a un lista negra imposibilitándolo para generar nuevas peticiones.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | Api/v1/auth/logoutApi |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
No requiere ningún esquema de entrada
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
message | String |
Mensaje de salida |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Cobros
Las siguientes URL nos permiten hacer cobros de manera única, recurrente y masiva de manera rápida y sencilla
Pago único
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v1/pagos/pago_unico"
payload = json.dumps({
"numero_tel": 5555555555,
"name": "XXXXXXX",
"lastname_pa": "XXXXX",
"lastname_mo": "XXXXXX",
"mont": 1,
"concept": "XXXXXX",
"limit_da": "2021-10-21 16:10:10"
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v1/pagos/pago_unico',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"numero_tel": 5555555555,
"name": "XXXXXXX",
"lastname_pa": "XXXXX",
"lastname_mo": "XXXXXX",
"mont": 1,
"concept" : "XXXXXX",
"limit_da": "2021-10-21 16:10:10"
}
',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.Stringify({
"numero_tel": 5555555555,
"name": "XXXXXXX",
"lastname_pa": "XXXXX",
"lastname_mo": "XXXXXX",
"mont": 1,
"concept": "XXXXXX",
"limit_da": "2021-10-21 16:10:10"
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v1/pagos/pago_unico',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.Stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": true,
"data": {
"telefono": "XXXXXXXXXX",
"concepto": "XXXXXX",
"codigo_rastreo": "XXXXXXXX"
}
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": "-80",
}
Cree un pago con un cargo único con el cual el cliente podrá aceptar, posponer o rechazar a través de CoDi, El número telefónico debe estar previamente registrado ante CoDi.
Informacion de peticion
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | /Api/v1/pagos/pago_unico |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
El contenido del esquema debe estar en formato JSON.
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
numero_tel | Integer |
True | Número telefónico del cliente (debe de estar dado de alta en CoDi) |
name | String |
True | Nombre del cliente |
lastname_pa | String |
True | Apellido paterno del cliente |
lastname_mo | String |
True | Apellido materno del cliente |
mont | Float |
True | Monto del cargo |
concept | String |
True | Concepto del cobro menor a 40 caracteres |
limit_da | String |
True | Fecha límite del pago, minimo 3 minutos, maximo 30 días |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
success | Boolean |
Respuesta de la petición |
data | Object |
Objeto con Información del cobro |
data.telefono | String |
Telefóno al que se genero el cobro |
data.concepto | String |
Concepto por el que se realizó el cobro |
data.codigo_rastreo | String |
Identificador del cobro, el cual no servira para rastrear el estatus del mismo |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Pago recurrente
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v1/pagos/pago_recurrente"
payload = json.dumps({
"numero_tel": 5555555555,
"name": "XXXXXXXXX",
"lastname_pa": "XXXXXXXXX",
"lastname_mo": "XXXXXXXXX",
"mont": 1,
"concept": "XXXXXXXXX",
"limit_da": "2021-10-16 16:10:10",
"date_pay": "Mensual"
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v1/pagos/pago_recurrente',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"numero_tel": 5555555555,
"name": "XXXXXXXXX",
"lastname_pa": "XXXXXXXXX",
"lastname_mo": "XXXXXXXXX",
"mont": 1,
"concept" : "XXXXXXXXX",
"limit_da": "2021-10-16 16:10:10",
"date_pay": "Mensual"
}
',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.Stringify({
"numero_tel": 5555555555,
"name": "XXXXXXXXX",
"lastname_pa": "XXXXXXXXX",
"lastname_mo": "XXXXXXXXX",
"mont": 1,
"concept": "XXXXXXXXX",
"limit_da": "2021-10-16 16:10:10",
"date_pay": "Mensual"
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v1/pagos/pago_recurrente',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.Stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"status": "exitoso"
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": "-80",
}
Cree un pago con un cargo recurrente con el cual el cliente podra aceptar, posponer o rechazar a traves de CoDi.
Informacion de peticion
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | Api/v1/pagos/pago_recurrente |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
El contenido del esquema debe estar en formato JSON.
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
numero_tel | Integer |
True | Número telefónico del cliente (debe de estar dado de alta en CoDi) |
name | String |
True | Nombre del cliente |
lastname_pa | String |
True | Apellido paterno del cliente |
lastname_mo | String |
True | Apellido materno del cliente |
mont | Float |
True | Monto del cargo |
concept | String |
True | Concepto del cobro menor a 40 caracteres |
limit_da | String |
True | Fecha límite del pago, minimo 3 minutos, maximo 30 días |
date_pay | String |
True | Recurrencia del pago [Anual,Bimestral,Cuatrimestral,Horas,Mensual,Quincenal,Semanal,Semestral,Trimestral,Unico] |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
success | Boolean |
Respuesta de la petición |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Pagos masivos
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v1/pagos/pagos_masivos"
payload = json.dumps({
"data": [
{
"numero_tel": 5555555555,
"name": "XXXXXXXXXXXXXXX",
"lastname_pa": "XXXXXXXXXXXXXXX ",
"lastname_mo": "XXXXXXXXXXXXXXX",
"mont": 1,
"concept": "XXXXXXXXXXXXXXX ",
"limit_da": "2022-10-20 16:10:10"
},
{
"numero_tel": 5555555555,
"name": "XXXXXXXXXXXXXXX",
"lastname_pa": "XXXXXXXXXXXXXXX ",
"lastname_mo": "XXXXXXXXXXXXXXX",
"mont": 1,
"concept": "XXXXXXXXXXXXXXX ",
"limit_da": "2022-10-20 16:10:10"
}
]
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v1/pagos/pagos_masivos',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"data":[
{
"numero_tel": 5555555555,
"name": "XXXXXXXXXXXXXXX",
"lastname_pa": "XXXXXXXXXXXXXXX ",
"lastname_mo": "XXXXXXXXXXXXXXX",
"mont": 1,
"concept" : "XXXXXXXXXXXXXXX ",
"limit_da": "2022-10-20 16:10:10"
},
{
"numero_tel": 5555555555,
"name": "XXXXXXXXXXXXXXX",
"lastname_pa": "XXXXXXXXXXXXXXX ",
"lastname_mo": "XXXXXXXXXXXXXXX",
"mont": 1,
"concept" : "XXXXXXXXXXXXXXX ",
"limit_da": "2022-10-20 16:10:10"
}
]
}
',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.Stringify({
"data": [
{
"numero_tel": 5555555555,
"name": "XXXXXXXXXXXXXXX",
"lastname_pa": "XXXXXXXXXXXXXXX ",
"lastname_mo": "XXXXXXXXXXXXXXX",
"mont": 1,
"concept": "XXXXXXXXXXXXXXX ",
"limit_da": "2022-10-20 16:10:10"
},
{
"numero_tel": 5555555555,
"name": "XXXXXXXXXXXXXXX",
"lastname_pa": "XXXXXXXXXXXXXXX ",
"lastname_mo": "XXXXXXXXXXXXXXX",
"mont": 1,
"concept": "XXXXXXXXXXXXXXX ",
"limit_da": "2022-10-20 16:10:10"
}
]
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v1/pagos/pagos_masivos',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.Stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": true,
"estatus": [
{
"success": true,
"data": [
{
"success": true,
"data": {
"telefono": "5555555555",
"concepto": "XXXXXXXXX",
"codigo_rastreo": "XXXXXXXXX"
}
}
]
},
{
"success": true,
"data": [
{
"success": true,
"data": {
"telefono": "5555555555",
"concepto": "XXXXXXXXX",
"codigo_rastreo": "XXXXXXXXX"
}
}
]
}
]
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": "-80",
}
Cree un objeto de cobros para generar múltiples cobros, los clientes podrán aceptar, posponer o rechazar a través de CoDi.
Informacion de peticion
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | /Api/v1/pagos/pagos_masivos |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
El contenido del esquema debe estar en formato JSON.
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
data | Array |
True | Arreglo que contendra la infromación de los clientes a los que se genera el cobro |
data.x.numero_tel | Integer |
True | Número telefónico del cliente (debe de estar dado de alta en CoDi) |
data.x.name | String |
True | Nombre del cliente |
data.x.lastname_pa | String |
True | Apellido paterno del cliente |
data.x.lastname_mo | String |
True | Apellido materno del cliente |
data.x.mont | Float |
True | Monto del cargo |
data.x.concept | Integer |
True | Concepto del cobro menor a 40 caracteres |
data.x.limit_da | Integer |
True | Fecha límite del pago, minimo 3 minutos, maximo 30 días |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
success | Boolean |
Respuesta de la peteción |
estatus | Array |
Arreglo con las respuestas de cada cobro |
estatus.x.success | Boolean |
Respuesta del cobro |
estatus.x.data.success | Boolean |
Respuesta del cobro |
estatus.x.data.data | Boolean |
Respuesta del cobro |
estatus.x.data.data.telefono | String |
Telefóno al que se genero el cobro |
estatus.x.data.data.concepto | String |
Concepto por el que se realizó el cobro |
estatus.x.data.data.codigo_rastreo | String |
Identificador del cobro, el cual no servira para rastrear el estatus del mismo |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Consulta de estatus de cobro
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v1/pagos/consultar_estatus"
payload = json.dumps({
"codigoRastreo": 'XXXXXXXX'
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v1/pagos/consultar_estatus',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"codigoRastreo":'XXXXXXXX'
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.Stringify({
"codigoRastreo": 'XXXXXXXX'
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v1/pagos/consultar_estatus',
headers: {
'Authorization': '[token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.Stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": true,
"data": {
"estatus": "Rechazado",
"ultima_actualizacion": "2021-02-12 09:52:35"
}
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": "-80",
}
Cree un objeto de rastreo para generar un consulta de estatus de cobro, los clientes podrán consultar el estatus del cobro enviado a traves de un código de rastreo.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | /Api/v1/pagos/consultar_estatus |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
clave_rastreo | String |
True | Identificador de hasta 20 posiciones alfanuméricas que la institución le proporciona al usuario al momento en que se instruye el pago. |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
status | String |
Estatus de la petición |
data | Object |
Objeto con que contiene el estatus actual del objeto y su ultima fecha de actulización |
data.estatus | Strig |
Estado actual del del cobro push |
data.ultima_actualizacion | Strig |
Fecha con de la ultima transacción del cobro push |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Cobros por codigo QR
El módulo de códigos QR nos permite integrar códigos QR de manera sencilla.
Crear codigo QR
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v1/qr/crear_qr"
payload = json.dumps({
"mont": 1,
"concept": "XXXXXXX",
"limit_da": "2021-06-19 11:44:22",
"type": 0,
"reference": 7000003
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v1/qr/crear_qr',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"mont": 1,
"concept": "XXXXXXX",
"limit_da": "2021-06-19 11:44:22",
"type": 0,
"reference": 7000003
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.stringify({
"mont": 1,
"concept": "XXXXXXX",
"limit_da": "2021-06-19 11:44:22",
"type": 0,
"reference": 7000003
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v1/qr/crear_qr',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"status": "exitoso",
"json_pago": "data:image/png;base64,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",
"clave_rastreo": "XXXXXXX",
"ref_pago": "XXXXXXX",
"empresa_cobra": "XXXXXX"
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": "-80",
}
Recupera un objeto QR el cual nos permitirá poder hacer el renderizado de un código QR de manera sencilla usando base64, los códigos QR cuentan con una vida util de 3 minutos como minimo y como maximo de 30 días, si el código QR no se encuentra en este rango sera ilegible.
Ejemplo:
<img alt="" src="data:image/png;base64, infromación del QR">
Es recomendable almacenar el valor clave_rastreo al momento de enviar el estatus de cada código QR.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | /Api/v1/qr/crear_qr |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
mont | float |
True | Monto del cargo |
concept | String |
True | Concepto del cobro menor a 40 caracteres |
concept | String |
True | Motivo del cargo |
limit_da | String |
True | Fecha límite del pago, minimo 3 minutos, maximo 30 días |
reference | Int | True | Número de identificación de hasta siete posiciones que el usuario selecciona al momento de instruir su pago |
type | Int | True | Tipo de cobro [1=>Unico, 2=>Recurrente] |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
status | String |
Estatus de la petición |
json_pago | String |
Cadena con el contenido para poder hacer el render de una imagen base64 |
clave_rastreo | Strig |
Identificador de hasta 20 posiciones alfanuméricas que la institución le proporciona al usuario al momento en que se instruye el pago |
ref_pago | Strig |
Identificador del pago |
empresa_cobra | Strig |
Razón social de la empresa que cobra |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
identificador de error |
Actualizar código QR
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v1/qr/refrescar_qr"
payload = json.dumps({
"clave_rastro": "XXXXXXXXX",
"ref_pag": "XXXXXXXXX"
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v1/qr/refrescar_qr',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'
{"clave_rastro":"XXXXXX","ref_pag":"XXXXXX" }',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.stringify({
"clave_rastro": "XXXXXXX",
"ref_pag": "XXXXXXX"
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v1/qr/refrescar_qr',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"status": "exitoso",
"json_pago": "data:image/png;base64,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",
"clave_rastreo": "XXXXXXX",
"ref_pago": "XXXXXXX",
"empresa_cobra": "XXXXXX"
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": "-80",
}
Recupera objeto refrescar QR, el cual nos va a permitir generar un nuevo codigo QR pasando como parametros la clave de rastreo y la referencia de pago.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | Api/v1/qr/refrescar_qr |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
Campo | Tipo de dato | Definición |
---|---|---|
clave_rastreo | String |
Identificador de hasta 20 posiciones alfanuméricas que la institución le proporciona al usuario al momento en que se instruye el pago. |
ref_pago | String |
Identificador del pago |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
status | String |
Estatus de la petición |
json_pago | String |
Cadena con el contenido para poder hacer el render de una imagen base64 |
clave_rastreo | Strig |
Identificador de hasta 20 posiciones alfanuméricas que la institución le proporciona al usuario al momento en que se instruye el pago |
ref_pago | Strig |
Identificador del pago |
empresa_cobra | Strig |
Razón social de la empresa que cobra |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
identificador de error |
Obtener estatus de código QR
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v1/qr/consultar_estatus"
payload = json.dumps({
"claveRastreo": "XXXXXXXXX"
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v1/qr/consultar_estatus',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"claveRastreo":"XXXXXXXXX"
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.stringify({
"claveRastreo": "XXXXXXXX"
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v1/qr/consultar_estatus',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": true,
"data": {
"estatus": "Rechazado",
"ultima_actualizacion": "2021-02-12 09:52:35"
}
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": "-80",
}
Recupera objeto refrescar QR, el cual nos va a permitir generar un nuevo codigo QR pasando como parametros la clave de rastreo y la referencia de pago.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | Api/v1/qr/consultar_estatus |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
El contenido del esquema debe de estar en formato JSON.
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
clave_rastreo | String |
True | Identificador de hasta 20 posiciones alfanuméricas que la institución le proporciona al usuario al momento en que se instruye el pago. |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
status | String |
Estatus de la petición |
data | Object |
Objeto con que contiene el estatus actual del objeto y su ultima fecha de actulización |
data.estatus | Strig |
Estado actual del último escaneo del código QR |
data.ultima_actualizacion | Strig |
Fecha con de la ultima transacción del código QR |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
identificador de error |
V2
Autenticación versión 2
El módulo de autenticación de la API de PayCode nos permite obtener un token el cual nos permite autenticar cada una de las peticiones futuras
La API de PayCode utiliza una autenticación basada en token para aceptar peticiones.
Si se raliza un peteción sin el token asignado simplemente fallara.
Login v2
import requests
url = "https://plataforma.paycode.com.mx/Api/v2/auth/login"
payload = ""
headers = {
'Authorization': '[API Key]'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v2/auth/login',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: [API Key]'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = '';
var config = {
method: 'get',
url: 'https://plataforma.paycode.com.mx/Api/v2/auth/login',
headers: {
'Authorization': '[API Key]'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"access_token": "[token]",
"token_type": "bearer",
"expires_in": 300
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": -80
}
Recupera un token tipo bearer, que permite autenticar una petición
Información de petición
Categoria | Valor |
---|---|
Método HTTP | GET |
EndPoint | /Api/v2/auth/login |
Headers
Tipo | Valor |
---|---|
Authorization | [API Key] |
Esquema de entrada de la petición
El contenido del esquema debe de estar en formato JSON.
No requiere ningún esquema de entrada
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
access_token | String |
Token de autenticación |
token_type | String |
Tipo de token |
expires_in | Int |
Tiempo de vida del token |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Actualizar token v2
import requests
url = "https://plataforma.paycode.com.mx/Api/v2/token/actualizar_token"
payload = {}
headers = {
'Authorization': 'Bearer [token]'
}
response = requests.request("POST", url, headers=headers, data = payload)
print(response.text.encode('utf8'))
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://plataforma.paycode.com.mx/Api/v2/token/actualizar_token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer [token]"
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = '';
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v2/token/actualizar_token',
headers: {
'Authorization': 'Bearer [token]'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"access_token": "[token]",
"token_type": "bearer",
"expires_in": 300
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": -80
}
Recupera un token nuevo usando el token actual, siempre y cuando no se halla expirado.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | Api/v2/token/actualizar_token |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
No requiere ningún esquema de entrada
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
access_token | String |
Token de autenticación |
token_type | String |
Tipo de token |
expires_in | Int |
Tiempo de vida del token (Segundos) |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Logout v2
import requests
url = "https://plataforma.paycode.com.mx/Api/v2/auth/logout"
payload = ""
headers = {
'Authorization': 'Bearer [token]'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
<?php
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v2/auth/logout',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = '';
var config = {
method: 'get',
url: 'https://plataforma.paycode.com.mx/Api/v2/auth/logout',
headers: {
'Authorization': 'Bearer [token]'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"message": "Successfully logged out"
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": -80
}
El token recuperado es mandado a un lista negra imposibilitándolo para generar nuevas peticiones.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | GET |
EndPoint | Api/v2/auth/logout |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
No requiere ningún esquema de entrada
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
message | String |
Mensaje de salida |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Cobros v2
Las siguientes URL nos permiten hacer cobros de manera única, recurrente y masiva de manera rápida y sencilla
Pago único v2
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v2/cobros/cobro_unico"
payload = json.dumps({
"phone": 5555555555,
"amount": 10.5,
"name": "XXXXXX",
"lastname_pa": "XXXXXX",
"lastname_mo": "XXXXXX",
"birth_date": "1995-02-16",
"email": "mail@mail.com",
"concept": "XXXXXX",
"limit_date": "2021-06-19 11:44:22",
"branch_code": "",
"product_code": "",
"zone_code": "",
"period_code": "",
"date_pay": "unico",
"if_error": 1
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v2/cobros/cobro_unico',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"phone":5555555555,
"amount":10.5,
"name":"XXXXXX",
"lastname_pa":"XXXXXX",
"lastname_mo":"XXXXXX",
"birth_date": "1995-02-16",
"email" :"mail@mail.com",
"concept":"XXXXXX",
"limit_date":"2021-06-19 11:44:22",
"branch_code":"",
"product_code":"",
"zone_code":"",
"period_code":"",
"date_pay":"unico",
"if_error":1
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.Stringify({
"phone": 5555555555,
"amount": 10.5,
"name": "XXXXXX",
"lastname_pa": "XXXXXX",
"lastname_mo": "XXXXXX",
"birth_date": "1995-02-16",
"email": "mail@mail.com",
"concept": "XXXXXX",
"limit_date": "2021-06-19 11:44:22",
"branch_code": "",
"product_code": "",
"zone_code": "",
"period_code": "",
"date_pay": "unico",
"if_error": 1
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v2/cobros/cobro_unico',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.Stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": true,
"data": {
"telefono": "XXXXXXXXXX",
"concepto": "XXXXXX",
"codigo_rastreo": "XXXXXXXX",
"errors": [
"Código de zona no ingresado",
"Código de sucursal no ingresado",
"Código de producto no ingresado",
"Código de periodo no ingresado"
]
}
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": "-80",
}
Cree un pago con un cargo único con el cual el cliente podrá aceptar, posponer o rechazar a través de CoDi, El número telefónico debe estar previamente registrado ante CoDi.
Informacion de peticion
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | /Api/v2/cobros/cobro_unico |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
El contenido del esquema debe estar en formato JSON.
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
phone | Integer |
True | Número telefónico del cliente (debe de estar dado de alta en CoDi) |
amount | Float |
True | Monto del cargo |
name | String |
True | Nombre del cliente |
lastname_pa | String |
True | Apellido paterno del cliente |
lastname_mo | String |
True | Apellido materno del cliente |
birth_date | String |
True | Fecha de nacimiento del cliente |
String |
True | Correo electrónico del cliente | |
concept | String |
True | Concepto del cobro menor a 40 caracteres |
limit_date | String |
True | Fecha límite del pago, minimo 3 minutos, maximo 30 días |
branch_code | String |
True | Código de la sucursal asociada al producto |
product_code | String |
True | Código del producto |
zone_code | String |
True | Código del región |
period_code | String |
True | Código del periodo |
date_pay | String |
True | Periodicidad del pago |
if_error | String |
True | Condición para generar un envío de pago unico sencillo, donde 1 le permite no colocar los valores de branch_code, product_code, zone_code, period_zone en dado caso de que se coloquen y esten mal se enviara el cobro y mostrara los errores, si no se colocan estos valores y esta el valor if_error en 1 se asignaran valores por defecto en estos campos, si el valor esta en 0 los campos branch_code, period_code product_code y zone_code deben ser validos de lo contrario no saldra el envio de cobro |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
success | Boolean |
Respuesta de la petición |
data | Object |
Objeto con Información del cobro |
data.telefono | String |
Telefóno al que se genero el cobro |
data.concepto | String |
Concepto por el que se realizó el cobro |
data.codigo_rastreo | String |
Identificador del cobro, el cual no servira para rastrear el estatus del mismo |
data.errors | Array |
Arreglo donde se listaran los errores |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Consulta de estatus de cobro v2
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v2/pagos/consultar_estatus"
payload = json.dumps({
"codigoRastreo": 'XXXXXXXX'
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v1/pagos/consultar_estatus',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"codigoRastreo":'XXXXXXXX'
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.Stringify({
"codigoRastreo": 'XXXXXXXX'
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v1/pagos/consultar_estatus',
headers: {
'Authorization': '[token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.Stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": true,
"data": {
"estatus": "Rechazado",
"ultima_actualizacion": "2021-02-12 09:52:35"
}
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": "-80",
}
Cree un objeto de rastreo para generar un consulta de estatus de cobro, los clientes podrán consultar el estatus del cobro enviado a traves de un código de rastreo.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | /Api/v2/pagos/consultar_estatus |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
El contenido del esquema debe de estar en formato JSON.
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
clave_rastreo | String |
True | Identificador de hasta 20 posiciones alfanuméricas que la institución le proporciona al usuario al momento en que se instruye el pago. |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
status | String |
Estatus de la petición |
data | Object |
Objeto con que contiene el estatus actual del objeto y su ultima fecha de actulización |
data.estatus | Strig |
Estado actual del cobro push |
data.ultima_actualizacion | Strig |
Fecha con de la ultima transacción del cobro push |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Cobros por codigo QR v2
El módulo de códigos QR nos permite integrar códigos QR de manera sencilla.
Crear codigo QR v2
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v2/qr/crear_qr"
payload = json.dumps({
"amount": 1,
"concept": "XXXXXXX",
"limit_date": "2021-06-19 11:44:22",
"type": 0,
"reference": 7000003
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v2/qr/crear_qr',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"amount": 1,
"concept": "XXXXXXX",
"limit_date": "2021-06-19 11:44:22",
"type": 0,
"reference": 7000003
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.stringify({
"amount": 1,
"concept": "XXXXXXX",
"limit_date": "2021-06-19 11:44:22",
"type": 0,
"reference": 7000003
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v2/qr/crear_qr',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"status": "exitoso",
"json_pago": "data:image/png;base64,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",
"clave_rastreo": "XXXXXXX",
"ref_pago": "XXXXXXX",
"empresa_cobra": "XXXXXX"
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": "-80",
}
Recupera un objeto QR el cual nos permitirá poder hacer el renderizado de un código QR de manera sencilla usando base64, los códigos QR cuentan con una vida util de 3 minutos como minimo y como maximo de 30 días, si el código QR no se encuentra en este rango sera ilegible.
Ejemplo:
<img alt="" src="data:image/png;base64, infromación del QR">
Es recomendable almacenar el valor clave_rastreo al momento de enviar el estatus de cada código QR.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | /Api/v2/qr/crear_qr |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
amount | float |
True | Monto del cargo |
concept | String |
True | Concepto del cobro menor a 40 caracteres |
limit_date | String |
True | Fecha límite del pago, minimo 3 minutos, maximo 30 días |
reference | Integer |
True | Número de identificación de hasta siete posiciones que el usuario selecciona al momento de instruir su pago |
type | Integer |
True | Tipo de cobro [1=>Unico, 2=>Recurrente] |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
status | String |
Estatus de la petición |
json_pago | String |
Cadena con el contenido para poder hacer el render de una imagen base64 |
clave_rastreo | Strig |
Identificador de hasta 20 posiciones alfanuméricas que la institución le proporciona al usuario al momento en que se instruye el pago |
ref_pago | Strig |
Identificador del pago |
empresa_cobra | Strig |
Razón social de la empresa que cobra |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Actualizar código QR v2
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v2/qr/refrescar_qr"
payload = json.dumps({
"clave_rastro": "XXXXXXXXX",
"ref_pag": "XXXXXXXXX"
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v2/qr/refrescar_qr',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'
{"clave_rastro":"XXXXXX","ref_pag":"XXXXXX" }',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.stringify({
"clave_rastro": "XXXXXXX",
"ref_pag": "XXXXXXX"
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v2/qr/refrescar_qr',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"status": "exitoso",
"json_pago": "data:image/png;base64,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",
"clave_rastreo": "XXXXXXX",
"ref_pago": "XXXXXXX",
"empresa_cobra": "XXXXXX"
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": "-80",
}
Recupera objeto refrescar QR, el cual nos va a permitir generar un nuevo codigo QR pasando como parametros la clave de rastreo y la referencia de pago.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | Api/v2/qr/refrescar_qr |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
Campo | Tipo de dato | Definición |
---|---|---|
clave_rastreo | String |
Identificador de hasta 20 posiciones alfanuméricas que la institución le proporciona al usuario al momento en que se instruye el pago. |
ref_pago | String |
Identificador del pago |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
status | String |
Estatus de la petición |
json_pago | String |
Cadena con el contenido para poder hacer el render de una imagen base64 |
clave_rastreo | Strig |
Identificador de hasta 20 posiciones alfanuméricas que la institución le proporciona al usuario al momento en que se instruye el pago |
ref_pago | Strig |
Identificador del pago |
empresa_cobra | Strig |
Razón social de la empresa que cobra |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Obtener estatus de código QR v2
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v2/qr/consultar_estatus"
payload = json.dumps({
"claveRastreo": "XXXXXXXXX"
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v2/qr/consultar_estatus',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"claveRastreo":"XXXXXXXXX"
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.stringify({
"claveRastreo": "XXXXXXXX"
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v2/qr/consultar_estatus',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": true,
"data": {
"estatus": "Rechazado",
"ultima_actualizacion": "2021-02-12 09:52:35"
}
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": "-80",
}
Recupera un objeto el cual nos permite saber el estatus actual del código QR.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | Api/v2/qr/consultar_estatus |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
El contenido del esquema debe de estar en formato JSON.
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
clave_rastreo | String |
True | Identificador de hasta 20 posiciones alfanuméricas que la institución le proporciona al usuario al momento en que se instruye el pago. |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
status | String |
Estatus de la petición |
data | Object |
Objeto con que contiene el estatus actual del objeto y su ultima fecha de actulización |
data.estatus | Strig |
Estado actual del último escaneo del código QR |
data.ultima_actualizacion | Strig |
Fecha con de la ultima transacción del código QR |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Cobros por link de pago v2
El módulo de links de pago es una opción fácil para cobrar a tus clientes enviando notificaciones en forma de mensaje por Whatsapp, mensaje de texto ó correo sin necesidad de tener un sitio web o tienda en línea, tus clientes podrán acceder al sitio https://checkout.paycode.com.mx/ donde podran pagar.
Crear un link de pago
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v2/links-pago/crear_link"
payload = json.dumps({
"require_info": 0,
"auto_invoicing": False,
"concept": "sum concept",
"customer_code": "0000000",
"type_link": "2",
"expiration_time": {
"days": 1,
"hours": 0,
"mins": 0,
"secs": 0
},
"images_link": {
"url_img_product": "https://img.com/img.jpg",
"url_logo": "https://img.com/img.jpg"
},
"notifications": {
"email": True,
"sms": True
},
"payment_method": {
"codi": True,
"credit_card": True,
"spei": True
},
"products": [
{
"amount": "12",
"name": "pago unico",
"product_code": "0000000",
"quantity": 1
}
],
"redirect_url": "https://callback.com/redirect_success",
"sms_text": "PayCode: tiene una nueva solicitud de pago. Puede realizar el pago en el siguiente enlace #LINK_PAGO, #NEGOCIO envío una solicitud de pago por el importe de #TOTAL MXN.",
"style_configuration": {
"backgoround": "#000000",
"color_btn": "#000000",
"colortext_btn": "#FFFFFF"
}
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v2/links-pago/crear_link',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"require_info":0,
"auto_invoicing": false,
"concept": "sum concept",
"customer_code": "0000000",
"type_link":"2",
"expiration_time":
{
"days": 1,
"hours": 0,
"mins": 0,
"secs": 0
}
,
"images_link": {
"url_img_product": "https://img.com/img.jpg",
"url_logo": "https://img.com/img.jpg"
},
"notifications": {
"email": true,
"sms": true
},
"payment_method": {
"codi": true,
"credit_card": true,
"spei": true
},
"products": [
{
"amount": "12",
"name": "pago unico",
"product_code": "0000000",
"quantity": 1
}
],
"redirect_url": "https://callback.com/redirect_success",
"sms_text": "PayCode: tiene una nueva solicitud de pago. Puede realizar el pago en el siguiente enlace #LINK_PAGO, #NEGOCIO envío una solicitud de pago por el importe de #TOTAL MXN.",
"style_configuration": {
"backgoround": "#000000",
"color_btn": "#000000",
"colortext_btn": "#FFFFFF"
}
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.stringify({
"require_info": 0,
"auto_invoicing": false,
"concept": "sum concept",
"customer_code": "0000000",
"type_link": "2",
"expiration_time": {
"days": 1,
"hours": 0,
"mins": 0,
"secs": 0
},
"images_link": {
"url_img_product": "https://img.com/img.jpg",
"url_logo": "https://img.com/img.jpg"
},
"notifications": {
"email": true,
"sms": true
},
"payment_method": {
"codi": true,
"credit_card": true,
"spei": true
},
"products": [
{
"amount": "12",
"name": "pago unico",
"product_code": "0000000",
"quantity": 1
}
],
"redirect_url": "https://callback.com/redirect_success",
"sms_text": "PayCode: tiene una nueva solicitud de pago. Puede realizar el pago en el siguiente enlace #LINK_PAGO, #NEGOCIO envío una solicitud de pago por el importe de #TOTAL MXN.",
"style_configuration": {
"backgoround": "#000000",
"color_btn": "#000000",
"colortext_btn": "#FFFFFF"
}
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v2/links-pago/crear_link',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
maxRedirects: 0,
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": true,
"link": "https://checkout.paycode.com.mx/XXXXXX-CCCC-XXXXXXXX"
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"error": "-80",
}
Recupera un objeto link de pago el cual nos permitara poder generar un URL única donde tus clientes podran pagar algún servicio.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | /Api/v2/links-pago/crear_link |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
require_info | integer |
false | Valor que terminte solicitar datos del cliente (Nombre, Apellido, Email) |
type_link | integer |
false | Define el tipo de link, 1 para un link de pago único, 2 para un link de pago permanente este link puede pagarse mas de una vez |
expiration_time | object |
true | Define el tiempo de duración del link de pago |
expiration_time.days | integer |
true | Define los días de vida del link de pago, para cobros CoDi los dias maximos son 30 |
expiration_time.hours | integer |
false | Horas de vida del link de pago |
expiration_time.mins | integer |
false | Minutos de vida del link de pago |
expiration_time.secs | integer |
false | Segundos de vida del link de pago |
images_link | object |
true | Define las imagenes del producto y logo del link de pago |
images_link.url_img_product | String |
true | Url de imagen del producto |
images_link.url_logo | String |
true | Url de imagen del logo del negocio |
notifications | object |
true | Define los medios de notificación del link de pago |
notifications.email | Boolean |
true | Se enviara notificación por email |
notifications.sms | Boolean |
true | Se enviara notificación por SMS |
payment_method | object |
true | Define los metodos de pago que se habilitaran para el link de pago |
payment_method.codi | Boolean |
false | Define CoDi como método de pago |
payment_method.credit_card | Boolean |
false | Define tarjeta de crédito como método de pago |
payment_method.spei | Boolean |
false | Define SPEI como método de pago |
concept | String |
True | Concepto del cobro menor a 40 caracteres |
customer_code | String |
True | Código único de usario al cual se le generara el cobro, el código se puede definir a través de la plataforma de PayCode al momento de dar de alta a un cliente |
products | Array |
True | Arreglo que contiene los productos asociados al link de pago |
products.x.product_code | String |
True | Código único de producto al cual se le generara el cobro, el código se puede definir a través de la plataforma de PayCode al momento de dar de alta a un producto |
products.x.quantity | Integer |
false | Cantidad del producto asociado |
products.x.amount | float |
false | Precio por unidad del producto |
auto_invoicing | Boolean |
True | Facturación (alpha), por default false |
sms_text | String |
True | Texto de hasta 250 caracteres que se enviará en las notificaciones via SMS y Correo, los valores que se pueden sustituir son los siguientes: '#NOMBRE' => Nombre del cliente a quien va dirigido el link de pago, '#TOTAL'=>Monto total del link de pago, '#FECHA_LIMITE'=>Fecha de vencimiento, '#LINK_PAGO'=>URL del link de pago, '#CONCEPTO'=>Concepto del link de pago, '#NEGOCIO'=> Nombre del negocio que cobra |
redirect_url | String |
True | URL a donde se realizará un redireccionamiento posterior a efectuar el cobro por algún Método de pago |
style_configuration | object |
true | Define parametros de estilo para el link de pago |
style_configuration.backgoround | Boolean |
true | Define el color de fondo del link de pago |
style_configuration.color_btn | Boolean |
true | Define el color de fondo de los botones |
style_configuration.colortext_btn | Boolean |
true | Define el color de texto del botón |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
success | Boolean |
Estatus de la petición |
link | String |
URL del link de pago |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Cobros por tarjeta débito/crédito v2
Módulo pago por tarjeta nos permite generar transacciones a través de nuestro API con total seguridad
Crear cargo
Recupera un objeto tarjeta el cual nos permitirá realizar un cobro con tarjeta de crédito / débito.
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v2/cobros/pago_tarjeta_ecomerce"
payload = json.dumps({
"save_card":true,
"amount": "23.00",
"card": {
"card_number": "5111111111111118",
"sec_code": "000",
"exp_month": "00",
"exp_year": "20",
"cardholder_name": "XXXXXX"
},
"client": {
"num_cel": "5555555555",
"first_name": "XXXXXX",
"paternal_surname": "XXXXXX",
"maternal_surname": "XXXXXX",
"concept": "XXXXXX"
},
"ip":"000.000.000.000"
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v2/cobros/pago_tarjeta_ecomerce',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{ "save_card":true, "amount": "23.00",
"card": {
"card_number": "5111111111111118",
"sec_code": "000",
"exp_month": "00",
"exp_year": "20",
"cardholder_name": "XXXXXX"
},
"client": {
"num_cel" : "5555555555",
"first_name" : "XXXXXX",
"paternal_surname" : "XXXXXX",
"maternal_surname" : "XXXXXX",
"concept" : "XXXXXX"
},
"ip":"000.000.000.000"
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.stringify({
"save_card":true,
"amount": "23.00",
"card": {
"card_number": "1111111111111111",
"sec_code": "000",
"exp_month": "00",
"exp_year": "00",
"cardholder_name": "XXXXXX"
},
"client": {
"num_cel": "5555555555",
"first_name": "XXXXXX",
"paternal_surname": "XXXXXX",
"maternal_surname": "XXXXXX",
"concept": "XXXXXX"
},
"ip":"000.000.000.000"
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v2/cobros/pago_tarjeta_ecomerce',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint con el campo
save_card
definido con valorfalse
, La respuesta del mismo esta en formato JSON.
{
"success": true,
"display_message": "APROBADO",
"reference_number": "000000006216",
"track_code": "0X0X0X0X0X"
}
Este es un ejemplo de respuesta satisfactoria del endpoint con el campo
save_card
definido con valortrue
, La respuesta del mismo esta en formato JSON.
{
"success": true,
"display_message": "APROBADO",
"reference_number": "000000006216",
"track_code": "0X0X0X0X0X",
"token_card": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": false,
"display_message": "RECHAZADA",
"reference_number": "000000006216",
"track_code": "0X0X0X0X0X"
}
Recupera un objeto tarjeta el cual nos permitirá poder generar una transacción via e-comerce, aceptamos tarjetas Visa / Mastercard y AMEX.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | /Api/v2/cobros/pago_tarjeta_ecomerce |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
save_card | Boolean |
false | Indica si requiere tokenizar la tarjeta fase BETA |
amount | float |
true | Monto del cargo |
card | Object |
true | Objeto que contiene los datos de la tarjeta |
card.card_number | String |
true | Número de tarjeta a la que se realizara el cobro |
card.sec_code | String |
true | Código de serguridad de la tarjeta a la que se realizara el cobro |
card.exp_month | String |
true | Mes de expiración de la tarjeta (MM) |
card.exp_year | String |
true | Año de expiración de la tarjeta (YY) |
card.cardholder_name | String |
true | Nombre del propietario de la tarjeta |
client | Object |
true | Objeto que contiene los datos del cliente |
client.num_cel | Integer |
true | Número telefónico del cliente |
client.first_name | String |
true | Nombre del cliente |
client.paternal_surname | String |
true | Apellido paterno del cliente |
client.maternal_surname | String |
true | Apellido materno del cliente |
client.concept | String |
true | Concepto del cobro menor a 40 caracteres |
ip | String |
true | IP pública del cliente |
Esquema de salida de una petición satisfactoria con el campo save_card
definido con valor false
Campo | Tipo de dato | Definición |
---|---|---|
successful | String |
Estatus de la petición |
display_message | String |
Cadena con el mensaje de estatus de la transacción |
reference_number | String |
Número de referencia |
track_code | String |
Identificador de 10 posiciones alfanuméricas servira para consultar el estatus del cobro |
Esquema de salida de una petición satisfactoria con el campo save_card
definido con valor true
Campo | Tipo de dato | Definición |
---|---|---|
successful | String |
Estatus de la petición |
display_message | String |
Cadena con el mensaje de estatus de la transacción |
reference_number | String |
Número de referencia |
track_code | String |
Identificador de 10 posiciones alfanuméricas servira para consultar el estatus del cobro |
token_card | String |
Identificador el cual se podrá utilizar para genera transacciones sin necesidad de mandar los datos de la tarjeta |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Crear cargo por token BETA
Recupera un objeto tarjeta el cual nos permitirá realizar un cobro con tarjeta de crédito / débito.
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v2/cobros/pago_token_ecomerce"
payload = json.dumps({
"amount": "23.00",
"token_card":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"ip":"000.000.000.000"
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v2/cobros/pago_token_ecomerce',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{ "amount": "23.00",
"token_card":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "ip":"000.000.000.000"
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.stringify({
"amount": "23.00",
"token_card":"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"ip":"000.000.000.000"
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v2/cobros/pago_token_ecomerce',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": true,
"display_message": "APROBADO",
"reference_number": "000000006216",
"track_code": "0X0X0X0X0X"
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": false,
"display_message": "RECHAZADA",
"reference_number": "000000006216",
"track_code": "0X0X0X0X0X"
}
Recupera un objeto tarjeta el cual nos permitirá poder generar una transacción via e-comerce, aceptamos tarjetas Visa / Mastercard y AMEX.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | /Api/v2/cobros/pago_token_ecomerce |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
token_card | String |
true | Identificador el cual se podrá utilizar para genera transacciones sin necesidad de mandar los datos de la tarjeta |
amount | float |
true | Monto del cargo |
ip | String |
true | IP pública del cliente |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
successful | String |
Estatus de la petición |
display_message | String |
Cadena con el mensaje de estatus de la transacción |
reference_number | String |
Número de referencia |
track_code | String |
Identificador de 10 posiciones alfanuméricas servira para consultar el estatus del cobro |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Obtener transacciones
Recupera un objeto transacciones el cual listara las transacciones realizadas.
import requests
url = "https://plataforma.paycode.com.mx/Api/v2/transacciones/obtener_transacciones"
payload={}
headers = {
'Authorization': 'Bearer [token]'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v2/transacciones/obtener_transacciones',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var config = {
method: 'get',
url: 'https://plataforma.paycode.com.mx/Api/v2/transacciones/obtener_transacciones',
headers: {
'Authorization': 'Bearer [token]'
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": true,
"data": [{
"negocio": "PayCode",
"identificador": XXXXXXXX,
"fecha_transaccion": "XXXXXXXXX",
"tipo_lectura": "key_entry",
"monto": "1.00",
"propina": "0.00",
"numero_autorizacion": XXXXXXXXXX,
"referencia": "XXXXXXXXXX",
"codigo_resultado": "00",
"reference_number": "XXXXXXXXXX"
}]
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": false,
"data": "[]",
}
Información de petición
Categoria | Valor |
---|---|
Método HTTP | GET |
EndPoint | /Api/v2/transacciones/obtener_transacciones |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
El contenido del esquema debe de estar en formato JSON.
No requiere ningún esquema de entrada
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
successful | string |
Estatus de la petición |
data | array |
Arreglo que contiene información de transacciones |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Obtener estatus de transacciones
Recupera un objeto transacciones el cual nos permitirá conocer el estatus de la transacción.
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v2/transacciones/obtener_estatus_transacciones"
payload = json.dumps({
"transactions": [
XXXXX
]
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v2/transacciones/obtener_estatus_transacciones',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"transactions":[XXXXXXX]
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.stringify({
"transactions": [
226379
]
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v2/transacciones/obtener_estatus_transacciones',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": true,
"data": [{
"negocio": "PayCode",
"identificador": XXXXXXXX,
"fecha_transaccion": "XXXXXXXXX",
"tipo_lectura": "key_entry",
"monto": "1.00",
"propina": "0.00",
"numero_autorizacion": XXXXXXXXXX,
"referencia": "XXXXXXXXXX",
"codigo_resultado": "00",
"reference_number": "XXXXXXXXXX",
"conciliado":true
}],
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": false,
"data": [],
}
Recupera un objeto tarjeta el cual nos permitirá poder conocer el estatus de las transacciones, se pueden consultar hasta 50 transacciones por petición.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | /Api/v2/transacciones/obtener_estatus_transacciones |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
transactions | array |
true | Arreglo que contendra todos los indentificadores de las transacciones |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
negocio | string |
Nombre del negocio |
identificador | integer |
Número de identificación de la transacción |
fecha_transaccion | date |
Fecha en la que se realizo la transacción |
tipo_lectura | string |
Método por el cual se realizo la transacción |
propina | integer |
Cantidad de propina |
numero_autorizacion | integer |
Número asignado de autorización para la transacción |
referencia | string |
Referencia de la transacción |
codigo_resultado | string |
Código de respuesta de la transacción |
tipo_transaccion | integer |
Tipo de transacción [sale 0, void 1, refund 2, auth 3, completion 4, cancel 5, chargeback 6] |
aprobada | boolean |
Define si fue aprobada o rechazada la transacción |
reversada | boolean |
Define si fue devuelta la transacción |
terminal_id | integer |
Número de terminal |
banco | string |
Nombre de banco |
tipo_tarjeta | integer |
Define el tipo de tarjeta [credit 0, debit 1, prepaid 2, charge_card 3] |
marca_tarjeta | string |
Marca de la tarjeta |
conciliado | boolean |
Define si la transacción fue concilida |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Crear devolución
Módulo devolución por tarjeta nos permite generar una devolución sobre una transacciones dentro de las primeras 24 horas en las que fue ralizada la transacción, pasado este tiempo la peticion retornara false.
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v2/cobros/void_tarjeta_ecomerce"
payload = json.dumps({
"track_code": 00000000
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v2/cobros/void_tarjeta_ecomerce',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"track_code":00000000
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.stringify({
"track_code": 00000000
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v2/cobros/void_tarjeta_ecomerce',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
maxRedirects: 0,
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"successfull": true,
"display_message": "APROBADO",
"result_code": "00",
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": false,
"display_message": "RECHAZADA",
"result_code": "56",
}
Recupera un objeto devolución el cual nos permitirá realizar una devolución sobre una transacción de tarjeta de débito/crédito.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | /Api/v2/cobros/void_tarjeta_ecomerce |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
track_code | integer |
true | Identificador de la transacción |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
successful | String |
Estatus de la petición |
display_message | String |
Cadena que nos indica el estatus de la petición |
result_code | String |
Código de respuesta |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
successful | String |
Estatus de la petición |
display_message | String |
Cadena que nos indica el estatus de la petición |
result_code | String |
Código de respuesta |
Facturación v2
Módulo facturación, permitirá generar facturas a través de nuestro API con total seguridad
Crear factura
Recupera un objeto factura el cual nos permitirá realizar una operación de facturación.
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v2/facturacion/crear_factura"
payload = json.dumps({
"emission_date": "2018-02-22T11:11:50",
"subtotal": 430,
"total": 430,
"iva": 72.48,
"amount_lrcs": "DOS MIL CIENTO DIESIOCHO 00/100",
"currency":"MXN",
"exchange_rate":1,
"observations": {
"first_observation": "PRIMERA OBSERVACIÓN",
"second_observation": "SEGUNDA OBSERVACIÓN",
"third_observation":"TERCERA OBSERVACIÓN",
},
"cfdi_relation":"51454E3B-F9D2-4016-A8FA-D71B3970567A",
"receptor": {
"rfc": "5555555555",
"name": "XXXXXX",
"country": "XXXXXX",
"address": "XXXXXX",
"number": "XXXXXX",
"interior_num": "XXXXXX",
"reference_address":"XXXXX",
"cp":78485
},
"quantities":1,
"unit":"A1-Unidad",
"description":"10101506 - Galletas",
"price":"115.11",
"discount":0,
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v2/facturacion/crear_factura',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"emission_date": "2018-02-22T11:11:50",
"subtotal": 430,
"total": 430,
"iva": 72.48,
"amount_lrcs": "DOS MIL CIENTO DIESIOCHO 00/100",
"currency":"MXN",
"exchange_rate":1,
"observations": {
"first_observation": "PRIMERA OBSERVACIÓN",
"second_observation": "SEGUNDA OBSERVACIÓN",
"third_observation":"TERCERA OBSERVACIÓN",
},
"cfdi_relation":"51454E3B-F9D2-4016-A8FA-D71B3970567A",
"receptor": {
"rfc": "5555555555",
"name": "XXXXXX",
"country": "XXXXXX",
"address": "XXXXXX",
"number": "XXXXXX",
"interior_num": "XXXXXX",
"reference_address":"XXXXX",
"cp":78485
},
"quantities":1,
"unit":"A1-Unidad",
"description":"10101506 - Galletas",
"price":"115.11",
"discount":0,
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.stringify({
"emission_date": "2018-02-22T11:11:50",
"subtotal": 430,
"total": 430,
"iva": 72.48,
"amount_lrcs": "DOS MIL CIENTO DIESIOCHO 00/100",
"currency":"MXN",
"exchange_rate":1,
"observations": {
"first_observation": "PRIMERA OBSERVACIÓN",
"second_observation": "SEGUNDA OBSERVACIÓN",
"third_observation":"TERCERA OBSERVACIÓN",
},
"cfdi_relation":"51454E3B-F9D2-4016-A8FA-D71B3970567A",
"receptor": {
"rfc": "5555555555",
"name": "XXXXXX",
"country": "XXXXXX",
"address": "XXXXXX",
"number": "XXXXXX",
"interior_num": "XXXXXX",
"reference_address":"XXXXX",
"cp":78485
},
"quantities":1,
"unit":"A1-Unidad",
"description":"10101506 - Galletas",
"price":"115.11",
"discount":0,
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v2/facturacion/crear_factura',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": true,
"URL_PDF": "https://plataforma.paycode.com.mx/Api/v2/facturacion/archivo/xxx-xxxx-xxx-xxx-xxxx-xxxx-xx",
"URL_XML": "https://plataforma.paycode.com.mx/Api/v2/facturacion/archivo/xxx-xxxx-xxx-xxx-xxxx-xxxx-xx"
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": false,
"error": -81
}
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | /Api/v2/facturacion/crear_factura |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
emission_date | string |
true | Fecha en la que se emitió la factura |
subtotal | float |
true | Subtotal del monto requerido |
total | float |
true | Total neto del monto requerido |
iva | float |
true | IVA de la cantidad |
amount_lrcs | string |
true | Cantidad total en letra |
currency | string |
true | Tipo de moneda ISO 4217 |
exchange_rate | int |
true | Tipo de cambio |
observations | object |
true | Objeto que contiene los observaciones |
observations.first_observation | string |
true | Observación sobre la factura |
observations.second_observation | string |
true | Segunda Observación sobre la factura |
observations.third_observation | string |
true | Tercera Observación sobre la factura |
cfdi_relation | string |
true | CFDI |
receptor | object |
true | Objeto que contiene los datos del receptor |
receptor.rfc | string |
true | RFC del receptor de la factura |
receptor.name | String |
true | Nombre de la empresa receptora |
receptor.country | String |
true | País de la empresa receptora |
receptor.address | string |
true | Dirección de la empresa receptora |
receptor.number | int |
true | Número de la dirección de la empresa receptora |
receptor.interior_num | int |
true | Número interior de la empresa receptora |
receptor.reference_address | string |
true | Referencia sobre la dirección de la empresa receptora |
receptor.cp | int |
true | Código postal de la empresa receptora |
quantities | int |
true | Cantidad de unidades a facturar |
unit | int |
true | Tipo de unidad a facturar |
description | string |
true | Descripción de las unidades a facturar |
price | float |
true | Precio de las unidades a facturar |
discount | float |
true | Descuento de las unidades a facturar |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
successful | String |
Estatus de la petición |
URL_PDF | String |
URL de descarga de la factura en formato PDF |
URL_XML | Strig |
URL de descarga de la factura en formato XML |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
successful | String |
Estatus de la petición |
error | String |
Identificador de error |
Cobros por SPEI
El módulo de cobros SPEI nos permite integrar cobros a traves de SPEI.
Crear cobro SPEI
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v2/payments/payment_spei"
payload = json.dumps({
"clabe": "XXXXXXXXXXXXXXXXX",
"amount": 3.10,
"concept": "concepto",
"limit_date": "2021-06-19 15:18:29"
})
headers = {
'Content-Type': 'application/json'
'Authorization': 'Bearer [token]',
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v2/payments/payment_spei',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{ "clabe": "XXXXXXXXXXXXXXXXX",
"amount": 3.10,
"concept": "concepto",
"limit_date": "2021-06-19 15:18:29"
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.stringify({
"clabe": "XXXXXXXXXXXXXXXXX",
"amount": 3.10,
"concept": "concepto",
"limit_date": "2021-06-19 15:18:29"
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v2/payments/payment_spei',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint , La respuesta del mismo esta en formato JSON.
{
"success": true,
"data": {
"code": "8eNt-vmL-8Mut",
"concept": "PAY000000056",
"beneficiary": "PayCode",
"bank": "STP",
"clabe": "646180238065900013"
}
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": false,
"error": "0X0X0X0X0X",
}
Recupera un objeto Spei el cual nos permitirá poder generar un cobro SPEI.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | /Api/v2/payments/payment_spei |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
clabe | String |
true | Cuenta CLABE del cliente |
amount | float |
true | Monto del cargo |
concept | String |
true | Concepto del carga, máximo 40 caracteres |
limit_date | String |
true | Fecha de vencimiento del cobro Y-mm-dd H:m:s |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
successful | String |
Estatus de la petición |
data | Object |
Objeto con datos de cobro |
data.code | String |
Identificador del pago |
data.concept | String |
Concepto del carga, máximo 40 caracteres |
data.beneficiary | String |
Nombre del beneficiario |
data.bank | String |
Nombre del banco |
data.clabe | String |
Cuenta CLABE del cliente |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Webhook
El módulo webhook nos ayudara a enviar actualizaciones de los cobros al momento que el cliente efectue alguna acción sobre el cobro.
Agregar URL
import requests
import json
url = "https://plataforma.paycode.com.mx/Api/v2/qr/agregar_url"
payload = json.dumps({
"url": "https://backend.com/webhook"
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://plataforma.paycode.com.mx/Api/v2/qr/agregar_url',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"url":"https://backend.com/webhook"
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.stringify({
"url": "https://backend.com/webhook"
});
var config = {
method: 'post',
url: 'https://plataforma.paycode.com.mx/Api/v2/qr/agregar_url',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": true,
"data": "Se inserto correctamente",
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": false,
"data": "Ocurrio un error",
}
Se definirá una URL la cual recibirá los estatus los cobros (CoDi,SPEI,links de pago y tarjeta) al momento de que el cliente ejerza una acción sobre un cobro ('Enviado', 'Pospuesto', 'Rechazado','Reintegrada', 'Cancelado', 'Vencido') se enviará la el estatus del cobro a la URL definida en este Endpoint.
Se almacena la respuesta del Endpoint con la finalidad de poder reenviar la información en caso de que el URL no esté disponible al momento de enviar una actualización sobre un cobro. el parámetro para definir si la respuesta fue recibida correctamente es un código HTTP 200.
Se enviará el siguiente objeto:
{
"monto": 0,
"concepto": "XXXXXXXX",
"clave_rastreo": "XXXXXXXX",
"numeroCuentaCliente": "XXXXXXXX",
"horaProcMensajeCobro": "2020-06-09 07:01:33",
"resultadoMensajeCobro": "XXXXXXXX",
"horaSolicitudMensajeCobro": "2020-06-09 04:38:35"
}
Objeto para links de pago
Para links de pago se enviara este objeto:
{
"success": true,
"hash": "XX8X-XX8X-XX8",
"paid_at": "2020-06-09 04:38:35",
"amout_paid": "19.99",
"status": "paid",
"type_paid": "credit card",
}
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | Api/v2/qr/agregar_url |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
El contenido del esquema debe de estar en formato JSON.
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
url | String |
True | URL a la que se enviarán las actualizaciones de los cobros. |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
succes | Boolean |
Respuesta de la petición |
data | String |
Mensaje de respuesta |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Actualizar URL
import requests
import json
url = "https://dev.paycode.com.mx/Api/v2/qr/actualizar_url"
payload = json.dumps({
"url": "https://backend.com/updatehook"
})
headers = {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://dev.paycode.com.mx/Api/v2/qr/actualizar_url',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"url":"https://backend.com/updatehook"
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer [token]',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
var axios = require('axios');
var data = JSON.stringify({
"url": "https://backend.com/updatehook"
});
var config = {
method: 'post',
url: 'https://dev.paycode.com.mx/Api/v2/qr/actualizar_url',
headers: {
'Authorization': 'Bearer [token]',
'Content-Type': 'application/json'
},
data : data
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.data));
})
.catch(function (error) {
console.log(error);
});
Este es un ejemplo de respuesta satisfactoria del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": true,
"data": "Se actualizo correctamente",
}
Este es un ejemplo de respuesta rechazada del endpoint, La respuesta del mismo esta en formato JSON.
{
"success": false,
"data": "Ocurrio un error",
}
Recupera un token nuevo usando el token actual, siempre y cuando no se halla expirado.
Información de petición
Categoria | Valor |
---|---|
Método HTTP | POST |
EndPoint | Api/v2/qr/actualizar_url |
Headers
Tipo | Valor |
---|---|
Authorization | Bearer [token] |
Content-Type | application/json |
Esquema de entrada de la petición
El contenido del esquema debe de estar en formato JSON.
Campo | Tipo de dato | Requerido | Definición |
---|---|---|---|
url | String |
True | URL a la que se enviarán las actualizaciones de los cobros. |
Esquema de salida de una petición satisfactoria
Campo | Tipo de dato | Definición |
---|---|---|
succes | Boolean |
Respuesta de la petición |
data | String |
Mensaje de respuesta |
Esquema de salida de una petición no satisfatoria
Campo | Tipo de dato | Definición |
---|---|---|
error | String |
Identificador de error |
Errores
Codigo de errores | Definición |
---|---|
400 | Bad Request -- Petición no valida. |
401 | Unauthorized -- Claves de login incorrectas. |
403 | Forbidden -- No tiene permisos necesarios para este Endpoint. |
404 | Not Found -- URL no valida. |
405 | Method Not Allowed -- Verbo HTTP no valido. |
Codigo de errores | Definición |
---|---|
500 | Internal Server Error -- Problema con el servidor. |
503 | Service Unavailable -- Temporalmente fuera de servicio . |
Codigo de errores | Definición |
---|---|
-10 | Número celular requerido |
-11 | Número de cel. tiene que ser numérico |
-12 | Número de cel. tiene que tener 10 caracteres |
-13 | Recurrencia del pago requerida |
-14 | Recurrencia no puede ser numérica |
-15 | Recurrencia supera los 30 caracteres |
-16 | Concepto requerido |
-17 | Concepto supera los 40 caracteres |
-18 | Fecha límite requerida |
-19 | Formato de fecha límite incorrecto |
-20 | Nombre requerido |
-21 | Nombre no puede contener caracteres numéricos |
-22 | Nombre supera los 40 caracteres |
-23 | Apellido paterno requerido |
-24 | Apellido paterno no puede contener caracteres numéricos |
-25 | Apellido paterno supera los 40 caracteres |
-26 | Apellido materno requerido |
-27 | Apellido materno no puede contener caracteres numéricos |
-28 | Apellido materno supera los 40 caracteres |
-29 | Monto requerido |
-30 | Monto tiene que ser numérico |
-31 | Monto supera la cantidad de 8000 |
-41 | Monto requerido |
-42 | Monto tiene que ser de tipo númerico |
-43 | Monto supera la cantidad de 8000 |
-44 | Concepto requerido |
-45 | Concepto tiene más de 40 caracteres |
-46 | Fecha requerida |
-47 | Error en el formato de la fecha |
-48 | Tipo de pago requerido |
-49 | Tipo de pago tiene que ser numerico |
-50 | Pago tiene que ser opción 0 o 1 |
-51 | Referencia requerida |
-52 | Referencia tiene que ser tipo númerico |
-53 | Referencia tiene que tener 7 caracteres |
-61 | Numero de cel. requerido |
-62 | Número de cel. tiene que ser numérico |
-63 | Número de cel. tiene que tener 10 caracteres |
-64 | Monto requerido |
-65 | Monto tiene que ser numérico |
-66 | Monto supera la cantidad de 8000 |
-67 | Concepto requerido |
-68 | Concepto supera los 40 caracteres |
-69 | Fecha límite es requerida |
-70 | Formato de fecha límite incorrecto |
-71 | Nombre requerido |
-72 | Nombre no puede contener caracteres númericos |
-73 | Nombre supera los 40 caracteres |
-74 | Apellido paterno requerido |
-75 | Apellido paterno no puede contener caracteres númericos |
-76 | Apellido paterno supera los 40 caracteres |
-77 | Apellido materno requerido |
-78 | Apellido materno no puede contener caracteres númericos |
-79 | Apellido materno supera los 40 caracteres |
-90 | Clave de rastreo requerida |
-91 | Clave de rastreo supera 40 caracteres |
-92 | Referencia de pago requerida |
-93 | Referencia de pago supera los 40 caracteres |