Guía de referencia técnica para integrar timbrado masivo CFDI 4.0, Recepción de Pagos 2.0, Nómina 1.2 y Cancelación ante el SAT.
Los endpoints de la API REST v1 reciben peticiones HTTP POST con cuerpo JSON y autenticación obligatoria mediante el encabezado HTTP X-API-KEY.
https://servicios.integratucfdi.net/api/v1/{metodo}
Los servicios SOAP 1.1 / 1.2 reciben peticiones XML definidas por su documento WSDL oficial con autenticación por usuario y contraseña en la llamada.
https://servicios.integratucfdi.net/wscfdi.php?wsdl
https://afiliados.integratucfdi.net/wscfdi.php?wsdl
Puedes realizar todas las pruebas de timbrado sin consumir timbres de tu saldo real ni emitir comprobantes fiscales reales consumiendo el ambiente de Sandbox:
https://sandbox.integratucfdi.net/api/v1/{metodo}
https://sandbox.integratucfdi.net/wscfdi.php?wsdl
generarComprobante(...)Método general para timbrado de comprobantes fiscales CFDI 4.0 (Ingreso, Egreso, Traslado). Permite emitir facturas estándar o adjuntar complementos fiscales especializados en la misma llamada.
generarComprobante($id, $rfcemisor, $idcertificado, $documento, $usuario, $password)
POST /api/v1/generarComprobante (Header: X-API-KEY: ak_test_...)
Fecha de Emisión Opcional: El campo fecha en la propiedad documento es opcional. Si se omite o se envía vacío (''), el servidor calcula la fecha y hora exacta de emisión basada en la zona horaria del Código Postal de la sucursal.
Ejemplo básico de facturación CFDI 4.0 tradicional para venta de bienes o servicios generales.
curl -X POST "https://sandbox.integratucfdi.net/api/v1/generarComprobante" \
-H "X-API-KEY: ak_test_sandbox_integratucfdi_2026" \
-H "Content-Type: application/json" \
-d '{
"id": 1,
"rfcemisor": "HECF750311V64",
"idcertificado": 10494,
"documento": {
"serie": "F",
"folio": "1001",
"formapago": "01",
"metodopago": "PUE",
"tipodocumento": "I",
"moneda": "MXN",
"subtotal": "1000.00",
"total": "1160.00",
"exportacion": "01",
"receptor": {
"rfc": "XAXX010101000",
"nombre": "PUBLICO EN GENERAL",
"usodelcomprobante": "S01",
"codigopostal": "80000",
"regimenfiscal": "616"
},
"conceptos": [
{
"clave": "84111506",
"cantidad": "1",
"codigounidad": "E48",
"unidad": "Servicio",
"descripcion": "Servicios de Software",
"valorUnitario": "1000.00",
"importe": "1000.00",
"objetoimpuesto": "02"
}
]
}
}'
<?php
$ch = curl_init('https://sandbox.integratucfdi.net/api/v1/generarComprobante');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-API-KEY: ak_test_sandbox_integratucfdi_2026',
'Content-Type: application/json'
],
CURLOPT_POSTFIELDS => json_encode([
'id' => 1, 'rfcemisor' => 'HECF750311V64', 'idcertificado' => 10494,
'documento' => [
'serie' => 'F', 'folio' => '1001', 'formapago' => '01', 'metodopago' => 'PUE', 'tipodocumento' => 'I', 'moneda' => 'MXN', 'subtotal' => '1000.00', 'total' => '1160.00', 'exportacion' => '01',
'receptor' => ['rfc' => 'XAXX010101000', 'nombre' => 'PUBLICO EN GENERAL', 'usodelcomprobante' => 'S01', 'codigopostal' => '80000', 'regimenfiscal' => '616'],
'conceptos' => [['clave' => '84111506', 'cantidad' => '1', 'codigounidad' => 'E48', 'unidad' => 'Servicio', 'descripcion' => 'Servicios de Software', 'valorUnitario' => '1000.00', 'importe' => '1000.00', 'objetoimpuesto' => '02']]
]
])
]);
$res = json_decode(curl_exec($ch), true);
if ($res['resultado']) {
echo "UUID: " . $res['uuid'];
}
?>
<?php
$wsdl = "https://sandbox.integratucfdi.net/wscfdi.php?wsdl";
$client = new SoapClient($wsdl, array('trace' => 1, 'encoding' => 'UTF-8'));
$documento = array(
'serie' => 'F', 'folio' => '1001', 'formapago' => '01', 'metodopago' => 'PUE', 'tipodocumento' => 'I', 'moneda' => 'MXN', 'subtotal' => '1000.00', 'total' => '1160.00', 'exportacion' => '01',
'receptor' => array('rfc' => 'XAXX010101000', 'nombre' => 'PUBLICO EN GENERAL', 'usodelcomprobante' => 'S01', 'codigopostal' => '80000', 'regimenfiscal' => '616'),
'conceptos' => array(
array('clave' => '84111506', 'cantidad' => '1', 'codigounidad' => 'E48', 'unidad' => 'Servicio', 'descripcion' => 'Servicios de Software', 'valorUnitario' => '1000.00', 'importe' => '1000.00', 'objetoimpuesto' => '02')
)
);
$res = $client->generarComprobante(1, 'HECF750311V64', 10494, $documento, 'pruebas', 'ee2ec3cc66427bb422894495068222a8');
if ($res->resultado) {
file_put_contents("factura_" . $res->uuid . ".xml", $res->xml);
file_put_contents("cbb_" . $res->uuid . ".jpg", base64_decode($res->cbb));
}
?>
using System.Net.Http.Json;
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-API-KEY", "ak_test_sandbox_integratucfdi_2026");
var payload = new {
id = 1, rfcemisor = "HECF750311V64", idcertificado = 10494,
documento = new {
serie = "F", folio = "1001", formapago = "01", metodopago = "PUE", tipodocumento = "I", moneda = "MXN", subtotal = "1000.00", total = "1160.00", exportacion = "01",
receptor = new { rfc = "XAXX010101000", nombre = "PUBLICO EN GENERAL", usodelcomprobante = "S01", codigopostal = "80000", regimenfiscal = "616" },
conceptos = new[] { new { clave = "84111506", cantidad = "1", codigounidad = "E48", unidad = "Servicio", descripcion = "Servicios de Software", valorUnitario = "1000.00", importe = "1000.00", objetoimpuesto = "02" } }
}
};
var response = await client.PostAsJsonAsync("https://sandbox.integratucfdi.net/api/v1/generarComprobante", payload);
var res = await response.Content.ReadFromJsonAsync<dynamic>();
Console.WriteLine("UUID REST: " + res?.uuid);
var binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
var endpoint = new EndpointAddress("https://sandbox.integratucfdi.net/wscfdi.php");
var client = new wscfdiPortTypeClient(binding, endpoint);
var documentoFactura = new Dictionary<string, object> {
{ "serie", "F" }, { "folio", "1001" }, { "formapago", "01" }, { "metodopago", "PUE" }, { "tipodocumento", "I" }, { "moneda", "MXN" }, { "subtotal", "1000.00" }, { "total", "1160.00" }, { "exportacion", "01" },
{ "receptor", new Dictionary<string, string> { { "rfc", "XAXX010101000" }, { "nombre", "PUBLICO EN GENERAL" }, { "usodelcomprobante", "S01" }, { "codigopostal", "80000" }, { "regimenfiscal", "616" } } },
{ "conceptos", new[] { new Dictionary<string, string> { { "clave", "84111506" }, { "cantidad", "1" }, { "codigounidad", "E48" }, { "unidad", "Servicio" }, { "descripcion", "Servicios de Software" }, { "valorUnitario", "1000.00" }, { "importe", "1000.00" }, { "objetoimpuesto", "02" } } } }
};
var res = client.generarComprobante(1, "HECF750311V64", 10494, documentoFactura, "pruebas", "ee2ec3cc66427bb422894495068222a8");
if (res.resultado) {
Console.WriteLine("UUID SOAP: " + res.uuid);
}
import requests
headers = {
'X-API-KEY': 'ak_test_sandbox_integratucfdi_2026',
'Content-Type': 'application/json'
}
payload = {
'id': 1, 'rfcemisor': 'HECF750311V64', 'idcertificado': 10494,
'documento': {
'serie': 'F', 'folio': '1001', 'formapago': '01', 'metodopago': 'PUE', 'tipodocumento': 'I', 'moneda': 'MXN', 'subtotal': '1000.00', 'total': '1160.00', 'exportacion': '01',
'receptor': {'rfc': 'XAXX010101000', 'nombre': 'PUBLICO EN GENERAL', 'usodelcomprobante': 'S01', 'codigopostal': '80000', 'regimenfiscal': '616'},
'conceptos': [{'clave': '84111506', 'cantidad': '1', 'codigounidad': 'E48', 'unidad': 'Servicio', 'descripcion': 'Servicios de Software', 'valorUnitario': '1000.00', 'importe': '1000.00', 'objetoimpuesto': '02'}]
}
}
res = requests.post('https://sandbox.integratucfdi.net/api/v1/generarComprobante', headers=headers, json=payload).json()
if res.get('resultado'):
print(f"UUID REST: {res['uuid']}")
import zeep, base64
client = zeep.Client('https://sandbox.integratucfdi.net/wscfdi.php?wsdl')
doc = {
'serie': 'F', 'folio': '1001', 'formapago': '01', 'metodopago': 'PUE', 'tipodocumento': 'I', 'moneda': 'MXN', 'subtotal': '1000.00', 'total': '1160.00', 'exportacion': '01',
'receptor': {'rfc': 'XAXX010101000', 'nombre': 'PUBLICO EN GENERAL', 'usodelcomprobante': 'S01', 'codigopostal': '80000', 'regimenfiscal': '616'},
'conceptos': [{'clave': '84111506', 'cantidad': '1', 'codigounidad': 'E48', 'unidad': 'Servicio', 'descripcion': 'Servicios de Software', 'valorUnitario': '1000.00', 'importe': '1000.00', 'objetoimpuesto': '02'}]
}
res = client.service.generarComprobante(id=1, rfcemisor='HECF750311V64', idcertificado=10494, documento=doc, usuario='pruebas', password='ee2ec3cc66427bb422894495068222a8')
if res.resultado:
print(f"UUID SOAP: {res.uuid}")
{
"resultado": true,
"mensaje": "CFDI 4.0 Timbrado Exitosamente",
"fechadocumento": "2026-08-23T13:30:00",
"seriecertificado": "00001000000501234567",
"sellodocumento": "iS7gK8M9xL2pQ5rT8yU1vW3xY5zA7bC9dE1fG3hI5jK7lM9nO1pQ3rS5tU7vW9xY1z...",
"uuid": "4F92E391-89B2-4A73-A3B9-8F7E1B5D90A2",
"fechatimbre": "2026-08-23T13:30:02",
"seriecertificadosat": "00001000000504465028",
"sellotimbre": "K7aP9mN4bV1cX8zY3wA5sD7fG9hJ1kL3mN5bP7rS9tU1vW3xY5zA7bC9dE1fG3hI...",
"cadenaoriginal": "||1.1|4F92E391-89B2-4A73-A3B9-8F7E1B5D90A2|2026-08-23T13:30:02|SAT970701NN3|iS7gK8M9xL2pQ5rT8...||",
"rfcpac": "SAT970701NN3",
"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><cfdi:Comprobante .../>",
"cbb": "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAP...==",
"archivos": "UEsDBBQAAAAIAI9lXFAAAAAA... [Archivo ZIP en Base64 con XML + CBB]"
}
Para emitir el complemento vigente de Carta Porte 3.1, se incluye la llave cartaporte31 en la propiedad documento.
curl -X POST "https://sandbox.integratucfdi.net/api/v1/generarComprobante" \
-H "X-API-KEY: ak_test_sandbox_integratucfdi_2026" \
-H "Content-Type: application/json" \
-d '{
"id": 1, "rfcemisor": "HECF750311V64", "idcertificado": 10494,
"documento": {
"serie": "CP", "folio": "3001", "formapago": "99", "metodopago": "PPD", "tipodocumento": "I", "moneda": "MXN", "subtotal": "15000.00", "total": "17400.00", "exportacion": "01",
"receptor": { "rfc": "XAXX010101000", "nombre": "CLIENTE LOGISTICA SA DE CV", "usodelcomprobante": "G03", "codigopostal": "80000", "regimenfiscal": "601" },
"conceptos": [ { "clave": "78101802", "cantidad": "1", "codigounidad": "E48", "unidad": "Servicio", "descripcion": "Servicio de Flete", "valorUnitario": "15000.00", "importe": "15000.00", "objetoimpuesto": "02" } ],
"cartaporte31": {
"TranspInternac": "No", "TotalDistRec": "450.00",
"Ubicaciones": [
{ "TipoUbicacion": "Origen", "RFCRemitenteDestinatario": "HECF750311V64", "FechaHoraSalidaLlegada": "2026-08-24 08:00:00", "Domicilio": { "Estado": "SIN", "Pais": "MEX", "CodigoPostal": "80000" } },
{ "TipoUbicacion": "Destino", "RFCRemitenteDestinatario": "XAXX010101000", "FechaHoraSalidaLlegada": "2026-08-24 18:00:00", "DistanciaRecorrida": "450.00", "Domicilio": { "Estado": "JAL", "Pais": "MEX", "CodigoPostal": "44100" } }
],
"Mercancias": {
"PesoBrutoTotal": "1200.00", "UnidadPeso": "KGM", "NumTotalMercancias": "1",
"Mercancia": [ { "BienesTransp": "42142100", "Descripcion": "Equipo Electrónico", "Cantidad": "100", "ClaveUnidad": "H87", "PesoEnKg": "1200.00" } ],
"Autotransporte": { "PermSCT": "TPAF01", "NumPermisoSCT": "123456789", "IdentificacionVehicular": { "ConfigVehicular": "C2", "PlacaVM": "12ABC34", "AnioModeloVM": "2024" }, "Seguros": { "AseguraRespCivil": "Qualitas", "PolizaRespCivil": "POL-998877" } }
}
}
}
}'
<?php
$ch = curl_init('https://sandbox.integratucfdi.net/api/v1/generarComprobante');
curl_setopt_array($ch, [
CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['X-API-KEY: ak_test_sandbox_integratucfdi_2026', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'id' => 1, 'rfcemisor' => 'HECF750311V64', 'idcertificado' => 10494,
'documento' => [
'serie' => 'CP', 'folio' => '3001', 'formapago' => '99', 'metodopago' => 'PPD', 'tipodocumento' => 'I', 'moneda' => 'MXN', 'subtotal' => '15000.00', 'total' => '17400.00', 'exportacion' => '01',
'receptor' => ['rfc' => 'XAXX010101000', 'nombre' => 'CLIENTE LOGISTICA SA DE CV', 'usodelcomprobante' => 'G03', 'codigopostal' => '80000', 'regimenfiscal' => '601'],
'conceptos' => [['clave' => '78101802', 'cantidad' => '1', 'codigounidad' => 'E48', 'unidad' => 'Servicio', 'descripcion' => 'Servicio de Flete', 'valorUnitario' => '15000.00', 'importe' => '15000.00', 'objetoimpuesto' => '02']],
'cartaporte31' => ['TranspInternac' => 'No', 'TotalDistRec' => '450.00', 'Ubicaciones' => [...], 'Mercancias' => [...]]
]
])
]);
$res = json_decode(curl_exec($ch), true);
?>
<?php
$client = new SoapClient("https://sandbox.integratucfdi.net/wscfdi.php?wsdl");
$documento = array('serie' => 'CP', 'folio' => '3001', 'cartaporte31' => array(...));
$res = $client->generarComprobante(1, 'HECF750311V64', 10494, $documento, 'pruebas', 'ee2ec3cc66427bb422894495068222a8');
?>
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-API-KEY", "ak_test_sandbox_integratucfdi_2026");
var response = await client.PostAsJsonAsync("https://sandbox.integratucfdi.net/api/v1/generarComprobante", payload);
var client = new wscfdiPortTypeClient(binding, endpoint);
var res = client.generarComprobante(1, "HECF750311V64", 10494, doc, "pruebas", "ee2ec3cc66427bb422894495068222a8");
import requests
res = requests.post('https://sandbox.integratucfdi.net/api/v1/generarComprobante', headers={'X-API-KEY': 'ak_test_sandbox_integratucfdi_2026'}, json=payload).json()
import zeep
client = zeep.Client('https://sandbox.integratucfdi.net/wscfdi.php?wsdl')
res = client.service.generarComprobante(id=1, rfcemisor='HECF750311V64', idcertificado=10494, documento=doc, usuario='pruebas', password='ee2ec3cc66427bb422894495068222a8')
{
"resultado": true,
"mensaje": "CFDI 4.0 con Complemento Carta Porte 3.1 Timbrado Exitosamente",
"uuid": "3E92A101-89C2-4B73-A3B9-9F8E1B5D90B3",
"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><cfdi:Comprobante ...><cartaporte31:CartaPorte .../></cfdi:Comprobante>",
"cbb": "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAP...==",
"archivos": "UEsDBBQAAAAIAI9lXFAAAAAA... [ZIP con XML + CBB]"
}
generaComprobantePago(...)Emisión de Complementos de Recepción de Pagos 2.0 (REP) relacionando las facturas liquidadas a crédito (PPD).
generaComprobantePago($id, $rfcemisor, $idcertificado, $documento, $usuario, $password)
POST /api/v1/generaComprobantePago (Header: X-API-KEY: ak_test_...)
curl -X POST "https://sandbox.integratucfdi.net/api/v1/generaComprobantePago" \
-H "X-API-KEY: ak_test_sandbox_integratucfdi_2026" \
-H "Content-Type: application/json" \
-d '{
"id": 1, "rfcemisor": "HECF750311V64", "idcertificado": 10494,
"documento": {
"serie": "REP", "folio": "201", "tipodocumento": "P", "subtotal": "0", "total": "0", "moneda": "XXX", "exportacion": "01",
"receptor": { "rfc": "XAXX010101000", "nombre": "PUBLICO EN GENERAL", "usodelcomprobante": "CP01", "codigopostal": "80000", "regimenfiscal": "616" },
"pagos20": [
{
"fechapago": "2026-08-23 15:30:00", "formadepago": "03", "moneda": "MXN", "monto": "1160.00",
"cfdis": [ { "uuid": "4F92E391-89B2-4A73-A3B9-8F7E1B5D90A2", "serie": "F", "folio": "1001", "moneda": "MXN", "tipocambio": "1", "numeroparcialidad": "1", "importesaldoanterior": "1160.00", "importepagado": "1160.00", "importesaldoinsoluto": "0.00", "objetoimpuestos": "02" } ]
}
]
}
}'
<?php
$ch = curl_init('https://sandbox.integratucfdi.net/api/v1/generaComprobantePago');
curl_setopt_array($ch, [
CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['X-API-KEY: ak_test_sandbox_integratucfdi_2026', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(['id' => 1, 'rfcemisor' => 'HECF750311V64', 'idcertificado' => 10494, 'documento' => $docPago])
]);
$res = json_decode(curl_exec($ch), true);
?>
<?php
$client = new SoapClient("https://sandbox.integratucfdi.net/wscfdi.php?wsdl");
$res = $client->generaComprobantePago(1, 'HECF750311V64', 10494, $documento, 'pruebas', 'ee2ec3cc66427bb422894495068222a8');
?>
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-API-KEY", "ak_test_sandbox_integratucfdi_2026");
var response = await client.PostAsJsonAsync("https://sandbox.integratucfdi.net/api/v1/generaComprobantePago", payload);
var res = client.generaComprobantePago(1, "HECF750311V64", 10494, documentoPago, "pruebas", "ee2ec3cc66427bb422894495068222a8");
import requests
res = requests.post('https://sandbox.integratucfdi.net/api/v1/generaComprobantePago', headers={'X-API-KEY': 'ak_test_sandbox_integratucfdi_2026'}, json=payload).json()
import zeep
client = zeep.Client('https://sandbox.integratucfdi.net/wscfdi.php?wsdl')
res = client.service.generaComprobantePago(id=1, rfcemisor='HECF750311V64', idcertificado=10494, documento=doc_pago, usuario='pruebas', password='ee2ec3cc66427bb422894495068222a8')
{
"resultado": true,
"mensaje": "Complemento de Recepción de Pagos 2.0 Timbrado Exitosamente",
"uuid": "7B82F401-90C3-4B84-A1D8-7F6E5B4C3D2A",
"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><cfdi:Comprobante .../>",
"cbb": "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAP...==",
"archivos": "UEsDBBQAAAAIAI9lXFAAAAAA... [ZIP con XML + CBB]"
}
GenerarRecibosNomina(...)Timbrado de recibos de nómina 1.2. En la API REST v1 se envía un único recibo individual en "recibo" para optimizar la velocidad de respuesta.
GenerarRecibosNomina($id, $rfcemisor, $idcertificado, $recibos, $usuario, $password)
POST /api/v1/GenerarRecibosNomina (Header: X-API-KEY: ak_test_...)
curl -X POST "https://sandbox.integratucfdi.net/api/v1/GenerarRecibosNomina" \
-H "X-API-KEY: ak_test_sandbox_integratucfdi_2026" \
-H "Content-Type: application/json" \
-d '{
"id": 1, "rfcemisor": "HECF750311V64", "idcertificado": 10494,
"recibo": {
"serie": "NOM", "folio": "501", "tipodocumento": "N", "subtotal": "5000.00", "descuento": "500.00", "total": "4500.00", "moneda": "MXN", "exportacion": "01",
"receptor": { "rfc": "PERJ800101AA1", "nombre": "JUAN PEREZ PEREZ", "usodelcomprobante": "CN01", "codigopostal": "80000", "regimenfiscal": "605" },
"fechapago": "2026-08-30", "fechainicial": "2026-08-16", "fechafinal": "2026-08-31", "diaspagados": "15.000", "tiponomina": "O"
}
}'
<?php
$ch = curl_init('https://sandbox.integratucfdi.net/api/v1/GenerarRecibosNomina');
curl_setopt_array($ch, [
CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['X-API-KEY: ak_test_sandbox_integratucfdi_2026', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(['id' => 1, 'rfcemisor' => 'HECF750311V64', 'idcertificado' => 10494, 'recibo' => $reciboIndividual])
]);
$res = json_decode(curl_exec($ch), true);
?>
<?php
$client = new SoapClient("https://sandbox.integratucfdi.net/wscfdi.php?wsdl");
$recibos = array($recibo1);
$res = $client->GenerarRecibosNomina(1, 'HECF750311V64', 10494, $recibos, 'pruebas', 'ee2ec3cc66427bb422894495068222a8');
?>
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-API-KEY", "ak_test_sandbox_integratucfdi_2026");
var response = await client.PostAsJsonAsync("https://sandbox.integratucfdi.net/api/v1/GenerarRecibosNomina", payload);
var res = client.GenerarRecibosNomina(1, "HECF750311V64", 10494, recibosArray, "pruebas", "ee2ec3cc66427bb422894495068222a8");
import requests
res = requests.post('https://sandbox.integratucfdi.net/api/v1/GenerarRecibosNomina', headers={'X-API-KEY': 'ak_test_sandbox_integratucfdi_2026'}, json=payload).json()
import zeep
client = zeep.Client('https://sandbox.integratucfdi.net/wscfdi.php?wsdl')
res = client.service.GenerarRecibosNomina(id=1, rfcemisor='HECF750311V64', idcertificado=10494, recibos=lote, usuario='pruebas', password='ee2ec3cc66427bb422894495068222a8')
{
"resultado": true,
"mensaje": "CFDI de Nómina Timbrado Exitosamente",
"uuid": "8A91E392-12B3-4A56-B789-9F0E1B2C3D4E",
"xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><cfdi:Comprobante .../>",
"cbb": "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAP...==",
"archivos": "UEsDBBQAAAAIAI9lXFAAAAAA... [ZIP con XML + CBB]"
}
cancelarCFDISAT(...)Cancela un CFDI ante el SAT especificando el motivo de cancelación (01, 02, 03, 04) y UUID sustituto si aplica.
cancelarCFDISAT($id, $rfcemisor, $uuid, $rfcreceptor, $importe, $motivo, $uuidsustituye, $idcertificado, $usuario, $password)
POST /api/v1/cancelarCFDISAT (Header: X-API-KEY: ak_test_...)
curl -X POST "https://sandbox.integratucfdi.net/api/v1/cancelarCFDISAT" \
-H "X-API-KEY: ak_test_sandbox_integratucfdi_2026" \
-H "Content-Type: application/json" \
-d '{
"id": 1, "rfcemisor": "HECF750311V64", "idcertificado": 10494,
"uuid": "4F92E391-89B2-4A73-A3B9-8F7E1B5D90A2", "rfcreceptor": "XAXX010101000",
"importe": "1160.00", "motivo": "02", "uuidsustituye": ""
}'
<?php
$ch = curl_init('https://sandbox.integratucfdi.net/api/v1/cancelarCFDISAT');
curl_setopt_array($ch, [
CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['X-API-KEY: ak_test_sandbox_integratucfdi_2026', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(['id' => 1, 'rfcemisor' => 'HECF750311V64', 'idcertificado' => 10494, 'uuid' => '4F92E391-89B2-4A73-A3B9-8F7E1B5D90A2', 'rfcreceptor' => 'XAXX010101000', 'importe' => '1160.00', 'motivo' => '02'])
]);
$res = json_decode(curl_exec($ch), true);
?>
<?php
$client = new SoapClient("https://sandbox.integratucfdi.net/wscfdi.php?wsdl");
$res = $client->cancelarCFDISAT(1, 'HECF750311V64', $uuid, 'XAXX010101000', '1160.00', '02', '', 10494, 'pruebas', 'ee2ec3cc66427bb422894495068222a8');
?>
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-API-KEY", "ak_test_sandbox_integratucfdi_2026");
var response = await client.PostAsJsonAsync("https://sandbox.integratucfdi.net/api/v1/cancelarCFDISAT", payload);
var res = client.cancelarCFDISAT(1, "HECF750311V64", uuid, "XAXX010101000", "1160.00", "02", "", 10494, "pruebas", "ee2ec3cc66427bb422894495068222a8");
import requests
res = requests.post('https://sandbox.integratucfdi.net/api/v1/cancelarCFDISAT', headers={'X-API-KEY': 'ak_test_sandbox_integratucfdi_2026'}, json=payload).json()
import zeep
client = zeep.Client('https://sandbox.integratucfdi.net/wscfdi.php?wsdl')
res = client.service.cancelarCFDISAT(id=1, rfcemisor='HECF750311V64', uuid=uuid, rfcreceptor='XAXX010101000', importe='1160.00', motivo='02', uuidsustituye='', idcertificado=10494, usuario='pruebas', password='ee2ec3cc66427bb422894495068222a8')
{
"resultado": true,
"procedio": true,
"fecha": "2026-08-23 14:00:00",
"sello": "SELLODIGITALDECANCELACION...==",
"mensaje": "2026-08-23 14:00:00|SELLODIGITAL...",
"estatuscomprobante": "Cancelado",
"estatuscancelacion": "Cancelado sin aceptacion",
"escancelable": "Cancelable sin aceptacion",
"acuse": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Acuse .../>"
}
Propiedades retornadas por los métodos para los objetos RespuestaTimbrado y CancelarCfdiResponse:
RespuestaTimbrado (Facturación, Pagos y Nómina)| Atributo | Tipo | Descripción |
|---|---|---|
resultado | boolean | true si el timbrado ante el PAC/SAT fue exitoso; false en caso de error. |
mensaje | string | Mensaje descriptivo de éxito o código de error detallado del SAT. |
fechadocumento | string | Fecha y hora de emisión original del comprobante (ISO 8601). |
seriecertificado | string | Número de serie del Certificado de Sello Digital (CSD) del emisor. |
sellodocumento | string | Firma digital / sello criptográfico generado por el CSD emisor. |
uuid | string | Folio Fiscal Único Universal asignado por el SAT (UUID v4). |
fechatimbre | string | Fecha y hora oficial de certificación del Timbre Fiscal Digital (TFD). |
seriecertificadosat | string | Número de serie del certificado del SAT utilizado para certificar. |
sellotimbre | string | Sello digital generado por la autoridad fiscal (SAT). |
cadenaoriginal | string | Cadena Original del complemento de certificación digital del SAT. |
rfcpac | string | RFC del Proveedor Autorizado de Certificación (PAC). |
xml | string | Contenido XML completo en texto plano del CFDI 4.0 timbrado. |
cbb | string Base64 | Cadena Base64 de la imagen JPG del código de barras QR (CBB). |
archivos | string Base64 | Cadena Base64 de un archivo comprimido .ZIP con el XML + CBB JPG. |
CancelarCfdiResponse (Retornado por cancelarCFDISAT)| Atributo | Tipo | Descripción |
|---|---|---|
resultado | boolean | true si la petición fue procesada correctamente. |
procedio | boolean | true si la cancelación fue aceptada e inscrita ante el SAT. |
fecha | string | Fecha y hora oficial del acuse de cancelación. |
sello | string | Sello digital de la solicitud de cancelación. |
acuse | string XML | Contenido XML completo del Acuse Oficial de Cancelación del SAT. |
mensaje | string | Código o mensaje de respuesta retornado por el SAT. |
estatuscomprobante | string | Estatus del CFDI ante la lista SAT (ej. "Cancelado"). |
estatuscancelacion | string | Modalidad de cancelación (ej. "Cancelado sin aceptación"). |
escancelable | string | Condición legal fiscal (ej. "Cancelable sin aceptación"). |