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 | Sí |
password | Clave CIEC del SAT | Sí |
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
{
"autenticado": true
}
200 Credenciales Inválidas
Tipo
application/json
Cuerpo
{
"autenticado": false
}
400 Datos Inválidos
Tipo
application/json
Cuerpo
<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ó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 | Sí |
password | Clave CIEC del SAT | Sí |
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
{
"bloqueado": true,
"disponibles": "0"
}
422 Credenciales Inválidas
Tipo
application/json
Cuerpo
<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
{
"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
{
"error": "Servicio inactivo, comuniquese con un asesor"
}
401 Credenciales de contratación
Tipo
application/json
Cuerpo
{
"error": {
"code": 401,
"message": "You are not authorized to access this resource."
}
}
400 Dato incorrecto
Tipo
application/json
Cuerpo
{
"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
{
"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
{
"error": "Servicio inactivo, comuniquese con un asesor"
}
401 Credenciales de contratación
Tipo
application/json
Cuerpo
{
"error": {
"code": 401,
"message": "You are not authorized to access this resource."
}
}
400 Dato Incorrecto
Tipo
application/json
Cuerpo
{
"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 complementos
indicando 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
{
"estado": "COMPLETADO", // (1)
"encontrados": 222
}
404 Solicitud Inexistente
Tipo
application/json
Cuerpo
<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
{
"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
{
"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
<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
<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
{
"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
<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
<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
{
"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
<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
{
"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)
}
- Si el campo
url
no contiene un valor, indica que el XML no está disponible
404 CFDI No Existente
Tipo
application/json
Cuerpo
<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
{
"error": {
"code": 401,
"message": "You are not authorized to access this resource."
}
}