Saltar a contenido

Referencia

  • https://csfacturacion.com/webservices/csdescargasat

API REST application/json

Credenciales de contratación vigente mediante Http Headers.

rfc: RFC de contratación.

password: Password de contratación.

Utilidades SAT

/v3/auth Validar Credenciales

Parámetros

Campo Descripción Requerido
rfc Clave RFC del contribuyente
password Clave CIEC del SAT

Tipo

application/json

Petición

POST /v3/auth HTTP/1.1
Content-Type: application/json
Host: csfacturacion.com
Rfc: AAA010101AAA
Password: PASS_CONTRATACION
Content-Length: 51

{
    "rfc": "AAA010101AAA",
    "password": "CIEC"
}

Respuesta

200 Credenciales Válidas

Tipo

application/json

Cuerpo

Ejemplo
{
    "autenticado": true
}
200 Credenciales Inválidas

Tipo

application/json

Cuerpo

Ejemplo
{
   "autenticado": false
}
400 Datos Inválidos

Tipo

application/json

Cuerpo

Ejemplo
<html>
<head>
<title>Status page</title>
</head>
<body style="font-family: sans-serif;">
<p style="font-size: 1.2em;font-weight: bold;margin: 1em 0px;">Error en la petici&oacute;n</p>
<p>rfc no puede ser null o vacio</p>
<p>You can get technical details <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1">here</a>.<br>
For further assistance, you can contact the <a href="mailto:sistemas@csfacturacion.com">administrator</a>.<br>
Please continue your visit at our <a href="/">home page</a>.
</p>
</body>
</html>
/v3/bloqueo Verificar bloqueo

Validar si un RFC está bloqueado ante el SAT (No puede descargar XML)

Parámetros

Campo Descripción Requerido
rfc Clave RFC del contribuyente
password Clave CIEC del SAT

Tipo

application/json

Petición

POST /v3/bloqueo HTTP/1.1
Content-Type: application/json
Host: csfacturacion.com
Rfc: AAA010101AAA
Password: PASS_CONTRATACION
Content-Length: 51

{
    "rfc": "AAA010101AAA",
    "password": "CIEC"
}

Respuesta

200 No Bloqueado

Tipo

application/json

Cuerpo

{
    "bloqueado": false,
    "disponibles": "1995"
}
200 Bloqueado

Tipo

application/json

Cuerpo

Ejemplo
{
    "bloqueado": true,
    "disponibles": "0"
}
422 Credenciales Inválidas

Tipo

application/json

Cuerpo

Ejemplo
<html>
<head>
<title>Status page</title>
</head>
<body style="font-family: sans-serif;">
<p style="font-size: 1.2em;font-weight: bold;margin: 1em 0px;">Entidad no procesable</p>
<p>Credenciales invalidas</p>
<p>You can get technical details <a href="http://www.webdav.org/specs/rfc2518.html#STATUS_422">here</a>.<br>
For further assistance, you can contact the <a href="mailto:sistemas@csfacturacion.com">administrator</a>.<br>
Please continue your visit at our <a href="/">home page</a>.
</p>
</body>
</html>

Solicitud De Descarga

/v3/consultar Consultar (Fechas)

Parámetros

Campo Tipo Descripción
rfcContribuyente* string RFC del emisor
password* string Password de autenticación ante el portal del SAT
fechaInicio* string-date Fecha de inicio en formato ISO 8601 [YYYY-MMM-DDTHH:MM:SS]
fechaFin* string-date Fecha final en formato ISO 8601 [YYYY-MMD-DDTHH:MM:SS]
complementos string Filtrar por clave de complemento Listado de claves
limite int Limitar el número de resultados de metadata o XML
metadatos bool Indica si solo se requieren metadatos (No se descarga XML). true o false
tipo string [emitidas, recibidas, todas]. Valor por defecto: todas
rfcBusqueda string Filtrar por RFC.
status string Filtrar por estatus de CFDI [vigentes, canceladas, todas]. Valor por defecto: todas
tipoDoc string Solicitar la descarga de CFDI (cfdi) o Retenciones (retencion). Valor por defecto: cfdi

Tipo

application/json

Petición

POST /v3/consultar HTTP/1.1
Content-Type: application/json
Rfc: AAA010101AAA
Password: PASS_CONTRATACION
Host: csfacturacion.com
Content-Length: 312

{
    "servicio": "CRAPI",
    "descarga": {
        "rfcContribuyente": "AAA010101AAA",
        "password": "CIEC",
        "fechaInicio": "2022-10-20T00:00:00",
        "fechaFin": "2022-11-20T23:59:59",
        "tipo": "todas",
        "status": "vigentes",
        "metadatos": true,
        "limite": 100,
        "rfcBusqueda": "BBB010101BBB"
    }
}

Respuesta

200 Solicitud Exitosa

Tipo

application/json

Cuerpo

Ejemplo
{
    "data": {
        "uuid": "a3264871-30bc-4c51-bdba-db215p4csl29",
        "mensaje": "Peticion realizada con exito",
        "contratacion": true,
        "transacciones": 3000000,
        "idContratacion": 74848
    }
}
Campo Descripción
uuid UUID de la solicitud. Necesario para el monitoreo
mensaje Descripción de la operación
contratacion Indica si tiene una contratación vigente para la descarga
transacciones Cantidad de descargas restantes de la contratación.
idContratacion ID de la contratación de la descarga
200 Servicio Inactivo

Tipo

application/json

Cuerpo

Ejemplo
{
   "error": "Servicio inactivo, comuniquese con un asesor"
}
401 Credenciales de contratación

Tipo

application/json

Cuerpo

Ejemplo
{
    "error": {
        "code": 401,
        "message": "You are not authorized to access this resource."
    }
}
400 Dato incorrecto

Tipo

application/json

Cuerpo

Ejemplo
{
    "error": {
        "code": 400,
        "message": "fecha inicio es requerido"
    }
}
/v3/cfdiFolios Consultar (Folio Fiscal)

Parámetros

Campo Descripción
rfcContribuyente* RFC del emisor
password* Password de autenticación ante el portal del SAT
folios* Lista de UUID's de los CFDI a descargar (Array)
tipoDoc Solicitar la descarga de CFDI (cfdi) o Retenciones (retencion). Valor por defecto: cfdi

Tipo

application/json

Petición

POST /v3/cfdiFolios HTTP/1.1
Content-Type: application/json
Rfc: AAA010101AAA
Password: PASS_CONTRATACION
Host: csfacturacion.com
Content-Length: 312

{
    "servicio": "CRAPI",
    "descarga": {
        "rfcContribuyente": "AAA010101AAA",
        "password": "CIEC",
        "folios": ["796A65EC-88FB-2745-B285-8F9F5F0D4232"]
    }
}

Respuesta

200 Solicitud Exitosa

Tipo

application/json

Cuerpo

Ejemplo
{
    "data": {
        "uuid": "a3264871-30bc-4c51-bdba-db215p4csl29",
        "mensaje": "Peticion realizada con exito",
        "contratacion": true,
        "transacciones": 3000000,
        "idContratacion": 74848
    }
}
Campo Descripción
uuid UUID de la solicitud. Necesario para el monitoreo
mensaje Descripción de la operación
contratacion Indica si tiene una contratación vigente para la descarga
transacciones Cantidad de descargas restantes de la contratación.
idContratacion ID de la contratación de la descarga
200 Servicio Inactivo

Tipo

application/json

Cuerpo

Ejemplo
{
   "error": "Servicio inactivo, comuniquese con un asesor"
}
401 Credenciales de contratación

Tipo

application/json

Cuerpo

Ejemplo
{
    "error": {
        "code": 401,
        "message": "You are not authorized to access this resource."
    }
}
400 Dato Incorrecto

Tipo

application/json

Cuerpo

Ejemplo
{
    "error": {
        "code": 400,
        "message": "folios no puede estar vacio"
    }
}

Filtrar por Complementos

Es posible filtrar la búsqueda de CFDI mediante una clave de complemento. Para ello debe utilizar el campo complementosindicando alguna de las claves disponibles.

Clave Complemento
4294967296 Acreditamiento de IEPS
8388608 Aerolíneas
70368744177664 Carta Porte
140737488355328 Carta Porte 2.0
2251799813685248 Carta Porte 3.0
9007199254740992 Carta Porte 3.1
1073741824 Certificado de Destrucción
17179869184 Comercio Exterior
274877906944 Comercio Exterior 1.1
4503599627370496 ComercioExterior 2.0
4 Compra Venta de Divisas
16777216 Consumo de Combustibles
8796093022208 Consumo De Combustibles 1.1
64 Donatarias
256 Estado De Cuenta Bancario
4398046511104 Estado de Cuenta Combustibles 1.2
8589934592 Estado de cuenta de combustibles de monederos electrónicos.
17592186044416 Gastos de Hidrocarburos
68719476736 INE 1.1
35184372088832 Ingresos de Hidrocarburos
1024 Instituciones Educativas Privadas (Pago de colegiatura)
4096 Leyendas Fiscales
524288 Mis Cuentas
67108864 Notarios Públicos
536870912 Obras de artes y antigüedades
2048 Otros Derechos e Impuestos
4194304 Pago en Especie
8192 Persona Física Integrante de Coordinado
1125899906842624 Recepcion de Pagos
549755813888 Recepción de Pagos
128 Recibo de donativo
1048576 Recibo de Pago de Salarios
137438953472 Recibo de Pago de Salarios 1.2
32 Sector de Ventas al Detalle (Detallista)
268435456 Servicios de construcción
16384 SPEI de Tercero a Tercero
2147483648 Sustitución y renovación vehicular
32768 Terceros
65536 Terceros
2199023255552 Timbre Fiscal Digital
16 Turista o Pasajero Extranjero
33554432 Vales de Despensa
134217728 Vehículo Usado
2097152 Venta de Vehiculos

Funcionalidad SAT

La funcionalidad de filtrado recae en su totalidad en el filtrado nativo del SAT. Si los resultados no son los esperados después de aplicar el filtro recomendamos aplicar el mismo filtro en el portal CFDI del SAT para verificar su funcionamiento.

Verificación de Descarga

/v3/consultas/{UUID}/progreso Progreso De Solicitud

Consultar el estatus de una solicitud de descarga.

Parámetros de la URL

Campo Descripción
{UUID}* Identificador de la solicitud

Tipo

application/json

Petición

GET /v3/consultas/{UUID}/progreso HTTP/1.1
Host: csfacturacion.com
Rfc: AAA010101AAA
Password: PASS_CONTRATACION

Respuesta

200 Solicitud Exitosa

Tipo

application/json

Cuerpo

Ejemplo
{
    "estado": "COMPLETADO", // (1)
    "encontrados": 222
}
1. ✅ Posibles estatus de consulta

404 Solicitud Inexistente

Tipo

application/json

Cuerpo

Ejemplo
<html>
<head>
<title>Status page</title>
</head>
<body style="font-family: sans-serif;">
<p style="font-size: 1.2em;font-weight: bold;margin: 1em 0px;">Recurso no encontrado</p>
<p>El recurso especificado no se ha encontrado</p>
<p>You can get technical details <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">here</a>.<br>
For further assistance, you can contact the <a href="mailto:sistemas@csfacturacion.com">administrator</a>.<br>
Please continue your visit at our <a href="/">home page</a>.
</p>
</body>
</html>
401 Credenciales de contratación

Tipo

application/json

Cuerpo

Ejemplo
{
    "error": {
        "code": 401,
        "message": "You are not authorized to access this resource."
    }
}
/v3/consultas/{UUID}/resumen Resumen De Solicitud

Consultar el resumen de una solicitud finalizada

Parámetros de la URL

Campo Descripción
{UUID}* Identificador de la solicitud

Tipo

application/json

Petición

GET /v3/consultas/{UUID}/resumen HTTP/1.1
Host: csfacturacion.com
Rfc: AAA010101AAA
Password: PASS_CONTRATACION

Respuesta

200 Solicitud Finalizada

Tipo

application/json

Cuerpo

Ejemplo
{
    "total": 222,
    "paginas": 12,
    "fechasMismoHorario": [],
    "xmlFaltantes": false,
    "cancelados": 0
}
Campo Descripción
total Número de CFDI recuperados
paginas No. De Páginas disponible para la páginacion
fechasMismoHorario Arreglo de fechas conflictivas
xmlFaltantes Indica si fue posible descargar todos los archivos XML
cancelados No. De CFDI cancelados
404 Solicitud Inexistente

Tipo

application/json

Cuerpo

Ejemplo
<html>
<head>
<title>Status page</title>
</head>
<body style="font-family: sans-serif;">
<p style="font-size: 1.2em;font-weight: bold;margin: 1em 0px;">Recurso no encontrado</p>
<p>El recurso especificado no se ha encontrado</p>
<p>You can get technical details <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">here</a>.<br>
For further assistance, you can contact the <a href="mailto:sistemas@csfacturacion.com">administrator</a>.<br>
Please continue your visit at our <a href="/">home page</a>.
</p>
</body>
</html>
400 Solicitud No Finalizada

Tipo

application/json

Cuerpo

Ejemplo
<html>
<head>
<title>Status page</title>
</head>
<body style="font-family: sans-serif;">
<p style="font-size: 1.2em;font-weight: bold;margin: 1em 0px;">Recurso no encontrado</p>
<p>El recurso especificado no se ha encontrado</p>
<p>You can get technical details <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">here</a>.<br>
For further assistance, you can contact the <a href="mailto:sistemas@csfacturacion.com">administrator</a>.<br>
Please continue your visit at our <a href="/">home page</a>.
</p>
</body>
</html>
401 Credenciales de contratación

Tipo

application/json

Cuerpo

Ejemplo
{
    "error": {
        "code": 401,
        "message": "You are not authorized to access this resource."
    }
}

Resultados de Descarga

/v3/consultas/{UUID} ZIP

Consultar el resumen de una solicitud finalizada

Parámetros de la URL

Campo Descripción
{UUID}* Identificador de la solicitud

Tipo

application/json

Petición

GET /v3/consultas/{UUID} HTTP/1.1
Host: csfacturacion.com
Rfc: AAA010101AAA
Password: PASS_CONTRATACION

Respuesta

200 Solicitud Finalizada

Tipo

application/zip

Cuerpo

binary content

404 Solicitud Inexistente

Tipo

application/json

Cuerpo

Ejemplo
<html>
<head>
<title>Status page</title>
</head>
<body style="font-family: sans-serif;">
<p style="font-size: 1.2em;font-weight: bold;margin: 1em 0px;">Recurso no encontrado</p>
<p>El recurso especificado no se ha encontrado</p>
<p>You can get technical details <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">here</a>.<br>
For further assistance, you can contact the <a href="mailto:sistemas@csfacturacion.com">administrator</a>.<br>
Please continue your visit at our <a href="/">home page</a>.
</p>
</body>
</html>
400 Solicitud No Finalizada

Tipo

application/json

Cuerpo

Ejemplo
<html>
<head>
<title>Status page</title>
</head>
<body style="font-family: sans-serif;">
<p style="font-size: 1.2em;font-weight: bold;margin: 1em 0px;">Recurso no encontrado</p>
<p>El recurso especificado no se ha encontrado</p>
<p>You can get technical details <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">here</a>.<br>
For further assistance, you can contact the <a href="mailto:sistemas@csfacturacion.com">administrator</a>.<br>
Please continue your visit at our <a href="/">home page</a>.
</p>
</body>
</html>
401 Credenciales de contratación

Tipo

application/json

Cuerpo

Ejemplo
{
    "error": {
        "code": 401,
        "message": "You are not authorized to access this resource."
    }
}

Estructura ZIP

.
└── ANIO(YYYY)/
    └── MM.mes/
        └── RFC/
            └── UUID.xml

La jerarquía se basa en la fecha de emisión del CFDI, es decir en el campo Fecha. Por ejemplo, para un CFDI con fecha de emisión 2022-11-21T22:53:32, RFC emisor AAA010101AAA y UUID 276d5af0-a46d-4039-b826-a0b81786d84a, su estructura en el ZIP sería:

.
└── 2022/
    └── 11.noviembre/
        └── AAA010101AAA/
            └── 276d5af0-a46d-4039-b826-a0b81786d84a.xml
/v3/cfdi/{UUID} XML

Parámetros de la URL

Campo Descripción
{UUID}* UUID del CFDI (Folio Fiscal)

Tipo

application/json

Petición

GET /v3/cfdi/{UUID} HTTP/1.1
Accept: application/xml
Content-Type: application/json
Host: csfacturacion.com
Rfc: AAA010101AAA
Password: PASS_CONTRATACION

Respuesta

200 CFDI Descargado

Tipo

application/xml

Cuerpo

<?xml version="1.0" encoding="UTF-8"?>
<cfdi:Comprobante>

</cfdi:Comprobante>
404 CFDI No Descargado

Tipo

application/json

Cuerpo

Ejemplo
<html>
<head>
<title>Status page</title>
</head>
<body style="font-family: sans-serif;">
<p style="font-size: 1.2em;font-weight: bold;margin: 1em 0px;">Recurso no encontrado</p>
<p>El recurso especificado no se ha encontrado</p>
<p>You can get technical details <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">here</a>.<br>
For further assistance, you can contact the <a href="mailto:sistemas@csfacturacion.com">administrator</a>.<br>
Please continue your visit at our <a href="/">home page</a>.
</p>
</body>
</html>
401 Credenciales de contratación

Tipo

application/json

Cuerpo

Ejemplo
{
    "error": {
        "code": 401,
        "message": "You are not authorized to access this resource."
    }
}
/v3/cfdi/{UUID} JSON

Parámetros de la URL

Campo Descripción
{UUID}* UUID del CFDI (Folio Fiscal)

Tipo

application/json

Petición

GET /v3/cfdi/{UUID} HTTP/1.1
Accept: application/json
Content-Type: application/json
Host: csfacturacion.com
Rfc: AAA010101AAA
Password: PASS_CONTRATACION

Respuesta

200 CFDI Existente

Tipo

application/json

Cuerpo

{
    "folio": "***6f0**-57c1-42fc-****-**6022feef**",
    "emisor": {
        "razonSocial": "ACME SA DE CV",
        "rfc": "AAA010101AAA"
    },
    "receptor": {
        "razonSocial": "FOO BAR",
        "rfc": "BBB010101BBB"
    },
    "fechaEmision": "2022-10-20T15:28:42.000-05:00",
    "fechaCertificacion": "2022-10-20T15:28:56.000-05:00",
    "PACCertificador": {
        "rfc": "MAS0810247C0"
    },
    "total": 4699.40,
    "tipo": "NOMINA",
    "status": "VIGENTE",
    "cancelacion": {
        "cancelable": "Cancelable sin aceptación"
    },
    "url": "5978/9181/****f0e7-57c1-42fc-b72d-**6022fe******.xml" // (1)
}
  1. Si el campo url no contiene un valor, indica que el XML no está disponible
404 CFDI No Existente

Tipo

application/json

Cuerpo

Ejemplo
<html>
<head>
<title>Status page</title>
</head>
<body style="font-family: sans-serif;">
<p style="font-size: 1.2em;font-weight: bold;margin: 1em 0px;">Recurso no encontrado</p>
<p>El recurso especificado no se ha encontrado</p>
<p>You can get technical details <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5">here</a>.<br>
For further assistance, you can contact the <a href="mailto:sistemas@csfacturacion.com">administrator</a>.<br>
Please continue your visit at our <a href="/">home page</a>.
</p>
</body>
</html>
401 Credenciales de contratación

Tipo

application/json

Cuerpo

Ejemplo
{
    "error": {
        "code": 401,
        "message": "You are not authorized to access this resource."
    }
}