Efisco® permite gestionar la descarga masiva de XML y generar reportes de los archivos descargados. Para poder generar las descargas es necesario contar con un token de acceso temporal o token infinito válido.
URL´s
https://api.test.sw.com.mx 📄
https://api.sw.com.mx 📄
Documentación
📊 Visualiza el flujo de descarga Efisco® 🔎Documentación
| requestType | processType | Valor | Descripción |
|---|---|---|
WebService |
0 |
Petición realizada vía servicio web |
WebPortal |
1 |
Petición realizada por Scraping | Portal SAT |
Metadata |
2 |
Petición de información metadatos |
| documentType | Valor | Descripción |
|---|---|---|
Emision |
0 |
Documento que emitió el RFC que genera la solicitud |
Recepcion |
1 |
Documento que recibió el RFC que genera la solicitud |
processType (processes) |
Valor | Descripción |
|---|---|---|
CFDI |
0 |
Generación de reportes y descargas de archivos XML |
PDF |
1 |
Generación de archivos PDF de los XML descargados |
Metadata |
2 |
Reportes centrados en información de metadatos |
| statusRequest | Valor | Descripción |
|---|---|---|
InProgress |
1 |
Petición en curso |
Error |
3 |
Ocurrió un error durante el proceso |
Expired |
4 |
Petición expirada o ya no disponible |
Completed |
6 |
Proceso terminado con éxito |
| cfdiType | Valor | Descripción |
|---|---|---|
Todos |
null |
Recuperar todos los tipos de comprobante |
Pagos |
P |
Comprobante de tipo Pagos |
Nómina |
N |
Comprobante de tipo Nómina |
Ingreso |
I |
Comprobante de tipo Ingreso |
Egreso |
E |
Comprobante de tipo Egreso |
Traslados |
T |
Comprobante de tipo Traslados |
| cfdiComplement | Valor | Descripción |
|---|---|---|
Todos |
null |
Recupera todos los complementos |
Acreditamiento de IEPS | acreditamientoieps10 | Complemento de Acreditamiento de IEPS |
Aerolíneas | aerolineas | Complemento de Aerolíneas |
Certificado de Destrucción | certificadodedestruccion | Complemento de Certificado de Destrucción |
CFDI Registro Fiscal | cfdiregistrofiscal | Complemento de CFDI Registro Fiscal |
Comercio Exterior | comercioexterior10 | Complemento de Comercio Exterior |
Comercio Exterior 1.1 | comercioexterior11 | Complemento de Comercio Exterior 1.1 |
Comprobante | comprobante | Complemento de Comprobante |
Consumo de Combustibles | consumodecombustibles | Complemento de Consumo de Combustibles |
Consumo de Combustibles 1.1 | consumodecombustibles11 | Complemento de Consumo de Combustibles 1.1 |
Sector de Ventas a Detalle | detallista | Complemento de Sector de Ventas a Detalle |
Compra Venta de Divisas | divisas | Complemento de Compra Venta de Divisas |
Donatarias | donat11 | Complemento de Donatarias |
Estado de Cuenta de Combustibles de Monederos Electrónicos | ecc11 | Complemento de Estado de Cuenta de Combustibles de Monederos Electrónicos |
Estado de Cuenta de Combustibles 1.2 | ecc12 | Complemento de Estado de Cuenta de Combustibles 1.2 |
Gastos de Hidrocarburos | gastoshidrocarburos10 | Complemento de Gastos de Hidrocarburos |
Instituciones Educativas Privadas | iedu | Complemento de Instituciones Educativas Privadas |
Otros Derechos e Impuestos | implocal | Complemento de Otros Derechos e Impuestos |
INE 1.1 | ine11 | Complemento de INE 1.1 |
Ingresos de Hidrocarburos | ingresoshidrocarburos | Complemento de Ingresos de Hidrocarburos |
Leyendas Fiscales | leyendasfiscales | Complemento de Leyendas Fiscales |
Recibo de Pago de Salarios | nomina11 | Complemento de Recibo de Pago de Salarios |
Recibo de Pago de Salarios 1.2 | nomina12 | Complemento de Recibo de Pago de Salarios 1.2 |
Notarios Públicos | notariospublicos | Complemento de Notarios Públicos |
Obras de arte y antigüedades | obrasarteantiguedades | Complemento de Obras de arte y antigüedades |
Pago en Especie | pagoenespecie | Complemento de Pago en Especie |
Recepción de Pagos | pagos10 | Complemento de Recepción de Pagos |
Persona Física Integrante de Coordinado | pfic | Complemento de Persona Física Integrante de Coordinado |
Sustitución y Renovación Vehicular | renovacionysustitucionvehiculos | Complemento de Sustitución y Renovación Vehicular |
Servicios Parciales de Construcción | servicioparcialconstruccion | Complemento de Servicios Parciales de Construcción |
SPEI de Tercero a Tercero | spei | Complemento de SPEI de Tercero a Tercero |
Terceros | terceros11 | Complemento de Terceros |
Turista o Pasajero Extranjero | turistapasajeroextranjero | Complemento de Turista o Pasajero Extranjero |
Vales de Despensa | valesdedespensa | Complemento de Vales de Despensa |
Vehículo Usado | vehiculousado | Complemento de Vehículo Usado |
Venta de Vehículos | ventavehiculos11 | Complemento de Venta de Vehículos |
| Código | Mensaje | Descripción |
|---|---|---|
304 |
Certificado Revocado o Caduco |
El certificado fue revocado o bien la fecha de vigencia expiró. |
305 |
Certificado Inválido |
El certificado puede ser inválido por múltiples razones como son el tipo, la vigencia, etc. |
404 |
Error no controlado |
Error no controlado devuelto por el SAT |
5002 |
Se han agotado las solicitudes de por vida |
Se ha alcanzado el límite de solicitudes, con el mismo criterio |
5003 |
Tope máximo |
Indica que con base en los parámetros de consulta se está superando el tope máximo de CFDI o Metadata, por solicitud de descarga masiva. |
5004 |
No se encontró la información |
No se encontró la información con los datos proporcionados, inténtalo con otros parámetros de búsqueda. |
5006 |
Error interno en el proceso |
Error interno en el proceso devuelto por el SAT |
Manejo de certificados
FIEL
Cargar FIEL
Cargar una nueva FIEL en el sistema.
🔗 Endpoint
| Método | Ruta |
|---|---|
| POST | /gestion/v1/api/certificates/create/fiel |
🔐 Autenticación y Headers
| Header | Value |
|---|---|
| Authorization | Bearer Token |
| Content-Type | application/json |
🧾 Parámetros JSON
| Propiedad | Tipo | Uso | Descripción |
|---|---|---|---|
| privatekey | string | Requerido | Key en Base64 |
| publickey | string | Requerido | CSD en Base64 |
| password | string | Requerido | Contraseña del certificado |
Ejemplo Request
curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/certificates/create/fiel'
--header 'Authorization: Bearer {{token}}'
--header 'Content-Type: application/json'
--data-raw '{
"privatekey": "{{base64Key}}",
"publickey": "{{base64Cer}}",
"password" : "12345678a"
}'
Ejemplo Response
{
"data": {
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"taxId": "CACX7605101P8",
"createdDate": "2025-04-11T18:31:04.9935201+00:00",
"serialNumber": "30001000000500003282",
"name": "XOCHILT CASAS CHAVEZ",
"notBefore": "2023-05-09T18:05:49+00:00",
"notAfter": "2027-05-08T18:05:49+00:00",
"encryptedPfx": "8nFGs1nqir...",
"encryptedPK": "nxG25f9lPwt...",
"encryptedPassword": "g109dSBauF8P3Fb7BNwBbg=="
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
{
"data": null,
"status": "error",
"message": "Verifique que el certificado y la contraseña sean correctos",
"messageDetail": ""
}
| Atributo | Tipo | Descripción |
|---|---|---|
| data | object/null | Objeto de datos referente a la solicitud cuando es exitoso. |
| status | String | “success” o “error” |
| message | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. |
| messageDetail | String | Mensaje más descriptivo del error cuando existe uno. |
Obtener FIEL por RFC
Consulta la FIEL específica de un RFC perteneciente al usuario del token.
🔗 Endpoint
| Método | Ruta |
|---|---|
| POST | /gestion/v1/api/certificates/get/fiel?filter={taxId} |
📍 Parámetros Query
| Propiedad | Uso | Descripción |
|---|---|---|
| filter | Requerido | RFC de la FIEL a buscar |
🔐 Autenticación y Headers
| Header | Value |
|---|---|
| Authorization | Bearer Token |
Ejemplo Request
curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/certificates/get/fiel?filter={taxId}'
--header 'Authorization: Bearer {{token}}'
Ejemplo Response
{
"data": {
"metaData": {
"page": 1,
"perPage": 10,
"pageCount": 1,
"totalCount": 1,
"links": {
"current": "?page=1&per_page=10"
}
},
"records": [
{
"taxId": "CACX7605101P8",
"createdDate": "2025-04-11T18:39:09",
"serialNumber": "30001000000500003282",
"name": "XOCHILT CASAS CHAVEZ",
"notBefore": "2023-05-09T18:05:49",
"notAfter": "2027-05-08T18:05:49"
}
]
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
{
"data": {
"metaData": {
"page": 1,
"perPage": 10,
"pageCount": 0,
"totalCount": 0,
"links": {
"current": "?page=1&per_page=10"
}
},
"records": []
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
| Atributo | Tipo | Descripción |
|---|---|---|
| data | array/null | Lista de objetos con información de paginación y datos filtrados. Cada elemento contine datos diferentes. |
| status | String | “success” o “error” |
| message | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. |
| messageDetail | String | Mensaje más descriptivo del error cuando existe uno. |
Obtener FIELs paginados
Consulta paginada de FIEL pertenecientes al usuario del token.
🔗 Endpoint
| Método | Ruta |
|---|---|
| POST | /gestion/v1/api/certificates/get/fiel?page=1&per_page=10 |
📍 Parámetros Query
| Propiedad | Uso | Descripción |
|---|---|---|
| page | Requerido | Pagina que se extrae en la consulta |
| per_page | Requerido | Numero de registros por pagina |
🔐 Autenticación y Headers
| Header | Value |
|---|---|
| Authorization | Bearer Token |
Ejemplo Request
curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/certificates/get/fiel?page=1&per_page=10'
--header 'Authorization: Bearer {{token}}'
Ejemplo Response
{
"data": {
"metaData": {
"page": 1,
"perPage": 10,
"pageCount": 2,
"totalCount": 2,
"links": {
"current": "?page=1&per_page=10"
}
},
"records": [
{
"taxId": "CACX7605101P8",
"createdDate": "2025-04-11T18:39:09",
"serialNumber": "30001000000500003282",
"name": "XOCHILT CASAS CHAVEZ",
"notBefore": "2023-05-09T18:05:49",
"notAfter": "2027-05-08T18:05:49"
},
{
"taxId": "XIQB891116QE4",
"createdDate": "2025-04-11T18:44:05",
"serialNumber": "30001000000500003301",
"name": "BERENICE XIMO QUEZADA",
"notBefore": "2023-05-09T18:42:24",
"notAfter": "2027-05-08T18:42:24"
}
]
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
{
"data": {
"metaData": {
"page": 1,
"perPage": 10,
"pageCount": 0,
"totalCount": 0,
"links": {
"current": "?page=1&per_page=10"
}
},
"records": []
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
| Atributo | Tipo | Descripción |
|---|---|---|
| data | array/null | Lista de objetos con información de paginación y datos filtrados. Cada elemento contine datos diferentes. |
| status | String | “success” o “error” |
| message | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. |
| messageDetail | String | Mensaje más descriptivo del error cuando existe uno. |
Eliminar FIEL
Elimina una FIEL almacenada.
🔗 Endpoint
| Método | Ruta |
|---|---|
| DELETE | /gestion/v1/api/certificates/{taxId} |
🔐 Autenticación y Headers
| Header | Value |
|---|---|
| Authorization | Bearer Token |
📍 Parámetros Path
| Propiedad | Uso | Descripción |
|---|---|---|
| taxId | Requerido | RFC de la FIEL a eliminar |
Ejemplo Request
curl --location --request DELETE 'https://api.sw.com.mx/gestion/v1/api/certificates/{taxId}'
--header 'Authorization: Bearer {{token}}'
Ejemplo Response
{
"data": "Certificado 30001000000500003282 eliminado exitosamente.",
"status": "success",
"message": "OK",
"messageDetail": ""
}
{
"data": null,
"status": "error",
"message": "El certificado que se intenta eliminar no se encuentra en la base de datos.",
"messageDetail": ""
}
| Atributo | Tipo | Descripción |
|---|---|---|
| data | object/null | Objeto de datos referente a la solicitud cuando es exitoso. |
| status | String | “success” o “error” |
| message | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. |
| messageDetail | String | Mensaje más descriptivo del error cuando existe uno. |
CIEC
Cargar CIEC
Cargar una nueva CIEC en el sistema.
🔗 Endpoint
| Método | Ruta |
|---|---|
| POST | /gestion/v1/api/ciecs |
🔐 Autenticación y Headers
| Header | Value |
|---|---|
| Authorization | Bearer Token |
| Content-Type | application/json |
🧾 Parámetros JSON
| Propiedad | Tipo | Uso | Descripción |
|---|---|---|---|
| taxId | string | Requerido | RFC relacionado a la CIEC |
| password | string | Requerido | Contraseña CIEC |
Ejemplo Request
curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/ciecs'
--header 'Authorization: Bearer {{token}}'
--header 'Content-Type: application/json'
--data '{
"taxId": "EKU9003173C9",
"password": "12345678a"
}'
Ejemplo Response
{
"data": {
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "6fa459ea-ee8a-11e3-ac10-0800200c9a66",
"idDealer": "6fa459ea-ee8a-11e3-ac10-0800200c9a66",
"taxId": "EKU9003173C9",
"password": "QXJnb...",
"createdDate": "2025-04-11T13:56:37.9289642"
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
{
"data": null,
"status": "error",
"message": "Password no valido para RFC.",
"messageDetail": ""
}
| Atributo | Tipo | Descripción |
|---|---|---|
| data | object/null | Objeto de datos referente a la solicitud cuando es exitoso. |
| status | String | “success” o “error” |
| message | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. |
| messageDetail | String | Mensaje más descriptivo del error cuando existe uno. |
Obtener CIEC por ID
Consulta por ID de una CIEC perteneciente al usuario del token.
🔗 Endpoint
| Método | Ruta |
|---|---|
| GET | /gestion/v1/api/ciecs/{id} |
🔐 Autenticación y Headers
| Header | Value |
|---|---|
| Authorization | Bearer Token |
📍 Parámetros Path
| Propiedad | Tipo | Uso | Descripción |
|---|---|---|---|
| id | string | Requerido | ID relacionado a la CIEC cargada |
Ejemplo Request
curl --location --request GET 'https://api.sw.com.mx/gestion/v1/api/ciecs/{id}'
--header 'Authorization: Bearer {{token}}'
Ejemplo Response
{
"data": {
"id": "9615e32e-d5ef-445f-938c-ff2809d9d963",
"idUser": "6fa459ea-ee8a-11e3-ac10-0800200c9a66",
"idDealer": "6fa459ea-ee8a-11e3-ac10-0800200c9a66",
"taxId": "EKU9003173C9",
"createdDate": "2025-04-11T14:01:11"
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
{
"data": null,
"status": "error",
"message": "Object reference not set to an instance of an object.",
"messageDetail": ""
}
| Atributo | Tipo | Descripción |
|---|---|---|
| data | object/null | Objeto de datos referente a la solicitud cuando es exitoso. |
| status | String | “success” o “error” |
| message | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. |
| messageDetail | String | Mensaje más descriptivo del error cuando existe uno. |
Obtener CIEC´s paginadas
Consulta paginada de CIEC´s perteneciente al usuario del token.
🔗 Endpoint
| Método | Ruta |
|---|---|
| GET | /gestion/v1/api/ciecs?page=1&per_page=10 |
🔐 Autenticación y Headers
| Header | Value |
|---|---|
| Authorization | Bearer Token |
📍 Parámetros Query
| Propiedad | Uso | Descripción |
|---|---|---|
| page | Requerido | Pagina que se extrae en la consulta |
| per_page | Requerido | Numero de registros por pagina |
Ejemplo Request
curl --location --request GET 'https://api.sw.com.mx/gestion/v1/api/ciecs?page=1&per_page=10'
--header 'Authorization: Bearer {{token}}'
Ejemplo Response
{
"data": {
"metaData": {
"page": 1,
"perPage": 10,
"pageCount": 2,
"totalCount": 2,
"links": {
"current": "?page=1&per_page=10"
}
},
"records": [
{
"id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"taxId": "CACX7605101P8",
"createdDate": "2025-04-11T13:56:38"
},
{
"id": "6fa459ea-ee8a-11e3-ac10-0800200c9a66",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"taxId": "EKU9003173C9",
"createdDate": "2025-04-11T14:01:11"
}
]
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
{
"data": {
"metaData": {
"page": 1,
"perPage": 10,
"pageCount": 0,
"totalCount": 0,
"links": {
"current": "?page=1&per_page=10"
}
},
"records": []
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
| Atributo | Tipo | Descripción |
|---|---|---|
| data | array/null | Lista de objetos con información de paginación y datos filtrados. Cada elemento contine datos diferentes. |
| status | String | “success” o “error” |
| message | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. |
| messageDetail | String | Mensaje más descriptivo del error cuando existe uno. |
Actualizar CIEC
Actualizar CIEC perteneciente al usuario del token.
🔗 Endpoint
| Método | Ruta |
|---|---|
| PUT | /gestion/v1/api/ciecs/{id} |
🔐 Autenticación y Headers
| Header | Value |
|---|---|
| Authorization | Bearer Token |
| Content-Type | application/json |
📍 Parámetros Path
| Propiedad | Uso | Descripción |
|---|---|---|
| id | Requerido | ID relacionado con la CIEC a actualizar |
Ejemplo Request
curl --location --request PUT 'https://api.sw.com.mx/gestion/v1/api/ciecs/{id}'
--header 'Authorization: Bearer {{token}}'
--header 'Content-Type: application/json'
--data '{
"taxId": "EKU9003173C9",
"password": "12345678a"
}'
Ejemplo Response
{
"data": {
"id": "9615e32e-d5ef-445f-938c-ff2809d9d963",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"taxId": "EKU9003173C9",
"password": "12345678a",
"createdDate": "2025-04-11T12:41:37"
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
{
"data": null,
"status": "error",
"message": "Password no valido para RFC.",
"messageDetail": ""
}
| Atributo | Tipo | Descripción |
|---|---|---|
| data | object/null | Objeto de datos referente a la solicitud cuando es exitoso. |
| status | String | “success” o “error” |
| message | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. |
| messageDetail | String | Mensaje más descriptivo del error cuando existe uno. |
Eliminar CIEC
Eliminar CIEC perteneciente al usuario del token.
🔗 Endpoint
| Método | Ruta |
|---|---|
| DELETE | /gestion/v1/api/ciecs/{id} |
🔐 Autenticación y Headers
| Header | Value |
|---|---|
| Authorization | Bearer Token |
📍 Parámetros Path
| Propiedad | Uso | Descripción |
|---|---|---|
| id | Requerido | ID relacionado con la CIEC a eliminar |
Ejemplo Request
curl --location --request DELETE 'https://api.sw.com.mx/gestion/v1/api/ciecs/{id}'
--header 'Authorization: Bearer {{token}}'
Ejemplo Response
{
"data": "Ciec con id f47ac10b-58cc-4372-a567-0e02b2c3d479 eliminado correctamente.",
"status": "success",
"message": "OK",
"messageDetail": ""
}
{
"data": null,
"status": "error",
"message": "No se encontro ciec con ese id.",
"messageDetail": ""
}
| Atributo | Tipo | Descripción |
|---|---|---|
| data | object/null | Objeto de datos referente a la solicitud cuando es exitoso. |
| status | String | “success” o “error” |
| message | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. |
| messageDetail | String | Mensaje más descriptivo del error cuando existe uno. |
Crear solicitud de descarga
Solicitud de descarga
Scraping | Portal SAT
- Único servicio que permite obtener archivos XML Emitidos con estatus cancelado.
- Límite diario de 2,000 documentos por RFC, con un tiempo de respuesta promedio de 48 horas.
🔗 Endpoint
| Método | Ruta |
|---|---|
| POST | /gestion/v1/api/massiveservicemanager/request/create/webportal |
🔐 Autenticación y Headers
| Header | Value |
|---|---|
| Authorization | Bearer Token |
| Content-Type | application/json |
🧾 Parámetros JSON
| Propiedad | Tipo | Uso | Descripción |
|---|---|---|---|
| documentType | string | Requerido | Tipo de documento a descargar |
| startDate | string | Requerido | Fecha de inicio (“aaaa-mm-dd”) |
| endDate | string | Requerido | Fecha de fin (“aaaa-mm-dd”) |
| taxId | string | Requerido | RFC |
| generatePDF | bool | Requerido | (Default = false) Especificar si se generaran los PDFs de los documentos descargadas |
| googleDrive | bool | Opcional | (Default = false) Especificar si se guarda la descarga en Google Drive (si existe cuenta vinculada) |
Ejemplo Request
curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/massiveservicemanager/request/create/webportal'
--header 'Authorization: Bearer {{token}}'
--header 'Content-Type: application/json'
--data '{
"documentType": "Emision",
"startDate": "2025-01-01",
"endDate": "2025-01-29",
"taxId": "XIQB891116QE4",
"generatePDF": false,
"googleDrive": false
}'
Ejemplo Response
{
"data": {
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "0dc44f00-b66b-495c-acce-5a0aeee88fec",
"taxId": "XIQB891116QE4",
"createdDate": "2025-04-11T15:05:40.7868786",
"dateFrom": "2025-01-01T00:00:00",
"dateTo": "2025-01-31T23:59:59",
"requestType": 1,
"documentType": 0,
"statusRequest": 1,
"message": "La solicitud de descarga de xml se encuentra en progreso",
"totalFiles": 0,
"rfcEmisor": null,
"rfcReceptor": null,
"efosIndicator": 0,
"rfcTPAccount": null,
"cfdiType": null,
"cfdiComplement": null,
"processes": [
{
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "0dc44f00-b66b-495c-acce-5a0aeee88fec",
"processType": 0,
"statusProcess": 1,
"message": "",
"url": null,
"createdDate": "2025-04-11T15:05:40.7868786"
},
{
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "0dc44f00-b66b-495c-acce-5a0aeee88fec",
"processType": 1,
"statusProcess": 1,
"message": "",
"url": null,
"createdDate": "2025-04-11T15:05:40.7868786"
}
]
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
{
"data": null,
"status": "error",
"message": "Ya existe una solicitud con los mismos parámetros : 2025-01-01-2025-01-31 . RFC XIQB891116QE4",
"messageDetail": ""
}
| Atributo | Tipo | Descripción |
|---|---|---|
| data | object/null | Objeto de datos referente a la solicitud cuando es exitoso. |
| status | String | “success” o “error” |
| message | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. |
| messageDetail | String | Mensaje más descriptivo del error cuando existe uno. |
Web Service
- Este servicio solo recupera CFDIs vigentes, permitiendo descargar información histórica (de hasta 5 años) y del ejercicio actual.
- Límite por petición de hasta 200,000 documentos, con un tiempo de respuesta de hasta 6 días.
🔗 Endpoint
| Método | Ruta |
|---|---|
| POST | /gestion/v1/api/massiveservicemanager/request/create/webservice |
🔐 Autenticación y Headers
| Header | Value |
|---|---|
| Authorization | Bearer Token |
| Content-Type | application/json |
🧾 Parámetros JSON
| Propiedad | Tipo | Uso | Descripción |
|---|---|---|---|
| documentType | string | Requerido | Tipo de documento a descargar |
| startDate | string | Requerido | Fecha de inicio (“aaaa-mm-dd hh:mm:ss”) |
| endDate | string | Requerido | Fecha de fin (“aaaa-mm-dd hh:mm:ss”) |
| taxId | string | Requerido | RFC del usuario |
| generatePDF | bool | Requerido | (Default = false) Especifica si se generaran los PDFs de los documentos descargadas |
| googleDrive | bool | Requerido | (Default = false) Especificar si se guarda la descarga en Google Drive (si existe cuenta vinculada) |
| rfcReceptor | array | Opcional | (Default = empty) Especifica el RFC receptor a buscar en los XML descargados (en caso de descarga de tipo Emisión |
| cfdiType | string | Opcional | (Default = null) Especifica el tipo de comprobante a descargar (si es null busca todos los tipos de comprobantes) |
| cfdiComplement | string | Opcional | (Default = null) Especifica el tipo de complemento a buscar (si es null busca todos los tipos de complementos) |
Ejemplo Request
curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/massiveservicemanager/request/create/webservice'
--header 'Authorization: Bearer {{token}}'
--header 'Content-Type: application/json'
--data '{
"documentType": "Emision",
"startDate": "2025-01-01 00:00:00",
"endDate": "2025-01-31 23:59:58",
"taxId": "CACX7605101P8",
"generatePDF": true,
"googleDrive": false,
"rfcReceptor": [],
"cfdiType": null,
"cfdiComplement": null
}'
Ejemplo Response
{
"data": {
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "b72ef0e3-27e6-4082-bfbc-f91c240a3063",
"taxId": "CACX7605101P8",
"createdDate": "2025-04-11T15:24:57.4954099",
"dateFrom": "2025-01-01T00:00:00",
"dateTo": "2025-01-31T23:59:58",
"requestType": 0,
"documentType": 0,
"statusRequest": 1,
"message": "La solicitud de descarga de xml se encuentra en progreso",
"totalFiles": 0,
"rfcEmisor": null,
"rfcReceptor": "",
"efosIndicator": 0,
"rfcTPAccount": null,
"cfdiType": null,
"cfdiComplement": null,
"processes": [
{
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "b72ef0e3-27e6-4082-bfbc-f91c240a3063",
"processType": 0,
"statusProcess": 1,
"message": "",
"url": null,
"createdDate": "2025-04-11T15:24:57.4954099"
},
{
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "b72ef0e3-27e6-4082-bfbc-f91c240a3063",
"processType": 1,
"statusProcess": 1,
"message": "",
"url": null,
"createdDate": "2025-04-11T15:24:57.4954099"
}
]
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
{
"data": null,
"status": "error",
"message": "Ya existe una solicitud con los mismos parámetros : 2025-01-01 00:00:00-2025-01-31 23:59:58 . RFC CACX7605101P8",
"messageDetail": ""
}
| Atributo | Tipo | Descripción |
|---|---|---|
| data | object/null | Objeto de datos referente a la solicitud cuando es exitoso. |
| status | String | “success” o “error” |
| message | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. |
| messageDetail | String | Mensaje más descriptivo del error cuando existe uno. |
Metadata
- Permite descargar hasta 1 millon de registros por petición.
- Únicamente retorna la metadata de los comprobantes, con un tiempo de respuesta de hasta 6 días.
🔗 Endpoint
| Método | Ruta |
|---|---|
| POST | /gestion/v1/api/MassiveServiceManager/request/create/webservice/metadata |
🔐 Autenticación y Headers
| Header | Value |
|---|---|
| Authorization | Bearer Token |
| Content-Type | application/json |
🧾 Parámetros JSON
| Propiedad | Tipo | Uso | Descripción |
|---|---|---|---|
| documentType | string | Requerido | Tipo de documento a descargar |
| startDate | string | Requerido | Fecha de inicio (“aaaa-mm-dd hh:mm:ss”) |
| endDate | string | Requerido | Fecha de fin (“aaaa-mm-dd hh:mm:ss”) |
| taxId | string | Requerido | RFC |
Ejemplo Request
curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/MassiveServiceManager/request/create/webservice/metadata'
--header 'Authorization: Bearer {{token}}'
--header 'Content-Type: application/json'
--data '{
"documentType": "Emision",
"startDate": "2025-01-01 00:00:00",
"endDate": "2025-01-31 23:59:58",
"taxId": "CACX7605101P8"
}'
Ejemplo Response
{
"data": {
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "5705cbf0-4886-4132-8c98-94fdfd8f2b93",
"taxId": "CACX7605101P8",
"createdDate": "2025-04-11T15:32:53.3265727",
"dateFrom": "2025-01-01T00:00:00",
"dateTo": "2025-01-31T23:59:58",
"requestType": 2,
"documentType": 0,
"statusRequest": 1,
"message": "La solicitud de descarga se encuentra en progreso",
"totalFiles": 0,
"rfcEmisor": null,
"rfcReceptor": null,
"efosIndicator": 0,
"rfcTPAccount": null,
"cfdiType": null,
"cfdiComplement": null,
"processes": [
{
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "5705cbf0-4886-4132-8c98-94fdfd8f2b93",
"processType": 2,
"statusProcess": 1,
"message": "",
"url": null,
"createdDate": "2025-04-11T15:32:53.3265727"
}
]
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
{
"data": null,
"status": "error",
"message": "El certificado del RFC es inválido, por favor actualícelo. (305)",
"messageDetail": ""
}
| Atributo | Tipo | Descripción |
|---|---|---|
| data | object/null | Objeto de datos referente a la solicitud cuando es exitoso. |
| status | String | “success” o “error” |
| message | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. |
| messageDetail | String | Mensaje más descriptivo del error cuando existe uno. |
Programar descarga
Se crea tarea programada de descarga de CFDI periódicamente.
🔗 Endpoint
| Método | Ruta |
|---|---|
| POST | /gestion/v1/api/gestionxml/scheduler/create |
🔐 Autenticación y Headers
| Header | Value |
|---|---|
| Authorization | Bearer Token |
| Content-Type | application/json |
🧾 Parámetros JSON
| Propiedad | Tipo | Uso | Descripción |
|---|---|---|---|
| active | int | Requerido | Estatus de la descarga |
| schedule | string | Requerido | Hora de ejecución de la descarga, siempre se ejecuta a las 00:00:00 hrs |
| documentType | string | Requerido | Tipo de documento a descargar |
| taxId | string | Requerido | RFC del usuario |
| lapseDays | int | Requerido | Rango de días de la información a descargar |
| processType | int | Requerido | Tipo de proceso a ejecutar |
| frecuencyInDays | int | Requerido | Frecuencia en dias con la que se hará la descarga |
| generatePdf | int | Opcional | (Default = 0) Especificar si se generaran los PDFs de los documentos descargadas |
| googleDrive | int | Opcional | (Default = 0) Especificar si se guarda la descarga en Google Drive (si existe cuenta vinculada) |
| cfdiType | string | Opcional | (Default = null) Especifica el tipo de comprobante a descargar (si es null busca todos los tipos de comprobantes) |
| cfdiComplement | string | Opcional | (Default = null) Especifica el tipo de complemento a buscar (si es null busca todos los tipos de complementos) |
Ejemplo Request
curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/gestionxml/scheduler/create'
--header 'Authorization: Bearer {{token}}'
--header 'Content-Type: application/json'
--data '[
{
"active": 1,
"schedule": "00:00:00",
"documentType": 2,
"taxId": "CACX7605101P8",
"lapseDays": 1,
"processType": 2,
"frecuencyInDays": 2,
"generatePdf": 0,
"googleDrive": 0,
"cfdiType": null,
"cfdiComplement": null
}
]'
Ejemplo Response
{
"data": "Datos insertados.",
"status": "success",
"message": "OK",
"messageDetail": ""
}
{
"data": null,
"status": "error",
"message": "Rfc no declarado o vacío",
"messageDetail": ""
}
| Atributo | Tipo | Descripción |
|---|---|---|
| data | String/null | Descripción referente a la solicitud cuando es exitoso. |
| status | String | “success” o “error” |
| message | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. |
| messageDetail | String | Mensaje más descriptivo del error cuando existe uno. |
Consulta estatus de solicitudes de descarga
Consulta estatus de solicitudes
Consulta por requestId
Consulta una petición por medio del requestId de la solicitud perteneciente al usuario del token.
🔗 Endpoint
| Método | Ruta |
|---|---|
| GET | /gestion/v1/api/gestionxml/{requestId} |
🔐 Autenticación y Headers
| Header | Value |
|---|---|
| Authorization | Bearer Token |
📍 Parámetros Path
| Propiedad | Uso | Descripción |
|---|---|---|
| idRequest | Requerido | ID de la solicitud |
Ejemplo Request
curl --location -g --request GET 'https://api.sw.com.mx/gestion/v1/api/gestionxml/{requestId}'
--header 'Authorization: Bearer {{token}}'
Ejemplo Response
{
"data": {
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "14624457-0134-4e1d-993d-7862861ccf2c",
"taxId": "CACX7605101P8",
"createdDate": "2025-04-11T15:41:33",
"dateFrom": "2025-02-01T00:00:00",
"dateTo": "2025-02-28T23:59:59",
"requestType": 2,
"documentType": 1,
"statusRequest": 1,
"message": "La solicitud de descarga de xml se encuentra en progreso",
"totalFiles": 0,
"rfcEmisor": null,
"rfcReceptor": null,
"efosIndicator": 0,
"rfcTPAccount": null,
"cfdiType": null,
"cfdiComplement": null,
"processes": [
{
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "14624457-0134-4e1d-993d-7862861ccf2c",
"processType": 2,
"statusProcess": 1,
"message": "",
"url": null,
"createdDate": "2025-04-11T15:41:33"
}
]
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
{
"data": null,
"status": "success",
"message": "OK",
"messageDetail": ""
}
| Atributo | Tipo | Descripción |
|---|---|---|
| data | object/null | Objeto de datos referente a la solicitud cuando es exitoso. |
| status | String | “success” o “error” |
| message | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. |
| messageDetail | String | Mensaje más descriptivo del error cuando existe uno. |
Consulta paginada
Consulta paginada de solicitudes creadas pertenecientes al usuario del token.
🔗 Endpoint
| Método | Ruta |
|---|---|
| GET | /gestion/v1/api/gestionxml/request?page=1&per_page=1 |
📍 Parámetros Query
| Propiedad | Uso | Descripción |
|---|---|---|
| page | Requerido | Pagina que se extrae en la consulta |
| per_page | Requerido | Numero de registros por pagina |
🔐 Autenticación y Headers
| Header | Value |
|---|---|
| Authorization | Bearer Token |
Ejemplo Request
curl --location --request GET 'https://api.sw.com.mx/gestion/v1/api/gestionxml/request?page=1&per_page=1'
--header 'Authorization: Bearer {{token}}'
Ejemplo Response
{
"data": {
"metaData": {
"page": 1,
"perPage": 3,
"pageCount": 3,
"totalCount": 56,
"links": {
"current": "?page=1&per_page=3",
"next": "?page=2&per_page=3"
}
},
"records": [
{
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "14624457-0134-4e1d-993d-7862861ccf2c",
"taxId": "CACX7605101P8",
"createdDate": "2025-04-11T15:41:33",
"dateFrom": "2025-02-01T00:00:00",
"dateTo": "2025-02-28T23:59:59",
"requestType": 2,
"documentType": 1,
"statusRequest": 1,
"message": "La solicitud de descarga de xml se encuentra en progreso",
"totalFiles": 0,
"rfcEmisor": null,
"rfcReceptor": null,
"efosIndicator": 0,
"rfcTPAccount": null,
"cfdiType": null,
"cfdiComplement": null,
"processes": [
{
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "14624457-0134-4e1d-993d-7862861ccf2c",
"processType": 2,
"statusProcess": 1,
"message": "",
"url": null,
"createdDate": "2025-04-11T15:41:33"
}
]
},
{
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "d7e649c6-5241-41db-bd0f-84b4c6229e79",
"taxId": "CACX7605101P8",
"createdDate": "2025-04-11T15:41:22",
"dateFrom": "2025-03-01T00:00:00",
"dateTo": "2025-03-31T23:59:59",
"requestType": 1,
"documentType": 1,
"statusRequest": 1,
"message": "La solicitud de descarga de xml se encuentra en progreso",
"totalFiles": 0,
"rfcEmisor": null,
"rfcReceptor": null,
"efosIndicator": 0,
"rfcTPAccount": "",
"cfdiType": null,
"cfdiComplement": null,
"processes": [
{
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "d7e649c6-5241-41db-bd0f-84b4c6229e79",
"processType": 0,
"statusProcess": 1,
"message": "",
"url": null,
"createdDate": "2025-04-11T15:41:22"
},
{
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "d7e649c6-5241-41db-bd0f-84b4c6229e79",
"processType": 1,
"statusProcess": 1,
"message": "",
"url": null,
"createdDate": "2025-04-11T15:41:22"
}
]
},
{
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "bb17ab8b-7913-4c9b-b3b4-330a6640ca28",
"taxId": "CACX7605101P8",
"createdDate": "2025-04-11T15:41:12",
"dateFrom": "2025-03-01T00:00:00",
"dateTo": "2025-03-31T23:59:59",
"requestType": 0,
"documentType": 0,
"statusRequest": 3,
"message": " No se encontró la información con los datos proporcionados, inténtalo con otros parámetros de búsqueda (5004)",
"totalFiles": 0,
"rfcEmisor": null,
"rfcReceptor": null,
"efosIndicator": 0,
"rfcTPAccount": "",
"cfdiType": null,
"cfdiComplement": null,
"processes": [
{
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "bb17ab8b-7913-4c9b-b3b4-330a6640ca28",
"processType": 0,
"statusProcess": 3,
"message": " No se encontró la información con los datos proporcionados, inténtalo con otros parámetros de búsqueda (5004)",
"url": null,
"createdDate": "2025-04-11T15:41:12"
},
{
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"requestId": "bb17ab8b-7913-4c9b-b3b4-330a6640ca28",
"processType": 1,
"statusProcess": 1,
"message": "",
"url": null,
"createdDate": "2025-04-11T15:41:12"
}
]
}
]
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
{
"data": {
"metaData": {
"page": 1,
"perPage": 3,
"pageCount": 0,
"totalCount": 0,
"links": {
"current": "?page=1&per_page=3"
}
},
"records": []
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
| Atributo | Tipo | Descripción |
|---|---|---|
| data | array/null | Lista de objetos con información de paginación y datos filtrados. Cada elemento contine datos diferentes. |
| status | String | “success” o “error” |
| message | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. |
| messageDetail | String | Mensaje más descriptivo del error cuando existe uno. |
Consulta registros de peticiones programadas
Consulta registros de peticiones programadas creadas pertenecientes al usuario del token.
🔗 Endpoint
| Método | Ruta |
|---|---|
| GET | /gestion/v1/api/gestionxml/scheduler?page=1&perPage=2 |
📍 Parámetros Query
| Propiedad | Uso | Descripción |
|---|---|---|
| page | Requerido | Pagina que se extrae en la consulta |
| per_page | Requerido | Numero de registros por pagina |
🔐 Autenticación y Headers
| Header | Value |
|---|---|
| Authorization | Bearer Token |
Ejemplo Request
curl --location --request GET 'https://api.sw.com.mx/gestion/v1/api/gestionxml/scheduler?page=1&perPage=2'
--header 'Authorization: Bearer {{token}}'
Ejemplo Response
{
"data": {
"metaData": {
"page": 1,
"perPage": 2,
"pageCount": 2,
"totalCount": 2,
"links": {
"current": "?page=1&per_page=2"
}
},
"records": [
{
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"active": 0,
"lapseDays": 90,
"schedule": "00:00:00",
"documentType": 0,
"taxId": "CACX7605101P8",
"token": "T2lYQ0t4L0...",
"visited": "2025-04-09T16:21:37",
"processType": 0,
"nextSchedule": "2025-05-11T00:00:00",
"frequencyInDays": 90,
"generatePdf": 1,
"googleDrive": 1,
"cfdiType": null,
"cfdiComplement": null
},
{
"idDealer": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"idUser": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"active": 1,
"lapseDays": 180,
"schedule": "00:00:00",
"documentType": 1,
"taxId": "CACX7605101P8",
"token": "T2lYQ0t4L0...",
"visited": "2025-04-11T14:21:37",
"processType": 0,
"nextSchedule": "2025-04-24T00:00:00",
"frequencyInDays": 90,
"generatePdf": 1,
"googleDrive": 1,
"cfdiType": null,
"cfdiComplement": null
}
]
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
{
"data": {
"metaData": {
"page": 1,
"perPage": 2,
"pageCount": 0,
"totalCount": 0,
"links": {
"current": "?page=1&per_page=2"
}
},
"records": []
},
"status": "success",
"message": "OK",
"messageDetail": ""
}
| Atributo | Tipo | Descripción |
|---|---|---|
| data | array/null | Lista de objetos con información de paginación y datos filtrados. Cada elemento contine datos diferentes. |
| status | String | “success” o “error” |
| message | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. |
| messageDetail | String | Mensaje más descriptivo del error cuando existe uno. |
Descarga de solicitud concluida
Obtener URL de descarga pública
Obtener URL de descarga
Genera path público de descarga de documentos mediante el path privado de S3.
🔗 Endpoint
| Método | Ruta |
|---|---|
| POST | /gestion/v1/api/file |
🔐 Autenticación y Headers
| Header | Value |
|---|---|
| Authorization | Bearer Token |
| Content-Type | application/json |
🧾 Parámetros JSON
| Propiedad | Tipo | Uso | Descripción |
|---|---|---|---|
| pathFile | string | Requerido | Path privado de S3 |
Ejemplo Request
curl --location --request POST 'https://api.sw.com.mx/gestion/v1/api/file'
--header 'Authorization: Bearer {{token}}'
--header 'Content-Type: application/json'
--data '{
"pathFile": "f47ac10b-58cc-4372-a567-0e02b2c3d479/11-04-2025/Report_6fa459ea-ee8a-11e3-ac10-0800200c9a66.zip"
}'
Ejemplo Response
{
"data": "https://smarter-gestion-xml-s3-prod.s3.amazonaws.com/f47ac10b-58cc-4372-a567-0e02b2c3d479/11-04-2025/Report_6fa459ea-ee8a-11e3-ac10-0800200c9a66.zip?AWSAccessKeyId=AKIEVRP5AMYOYVPEJ3XV&Expires=1744491409&Signature=IZAshfH7k%2F7%2B4%2F8b3ycoaEDhmOc%3D",
"status": "success",
"message": "OK",
"messageDetail": ""
}
{
"data": null,
"status": "error",
"message": "La ruta del archivo no corresponde al usuario de la petición",
"messageDetail": ""
}
| Atributo | Tipo | Descripción |
|---|---|---|
| data | String/null | URL de descarga cuando es exitoso. |
| status | String | “success” o “error” |
| message | String | Mensaje informativo sobre la petición generada. Varia si la petición fue “success” o “error”. |
| messageDetail | String | Mensaje más descriptivo del error cuando existe uno. |
En SW® somos mejores para TI, es por ello que tu opinión es muy importante, por favor ayúdanos calificando este articulo y dejando tus comentarios.