Documentación de la API de AnalySAT
Bienvenido(a) a la documentación de la API de AnalySAT. Esta API te permite realizar operaciones y consultas relacionadas con:
- Las empresas registradas en tu usuario.
- Las cuentas bancarias de una empresa (cuentas de banco).
- Transacciones bancarias de una empresa (pagos, abonos, cargos).
- Facturas emitidas y recibidas de una empresa.
- Solicitudes de descargas de facturas de una empresa.
URL base
Para realizar las solicitudes a la API, utiliza la siguiente URL base:
https://b2b.analysat.com/api_v3/<ENDPOINT>
Autenticación
Para autenticarte en la API, debes contar con una llave pública (API_KEY_PUBLICA) y una llave privada (API_KEY_PRIVADA):
- API_KEY_PUBLICA se utiliza como usuario.
- API_KEY_PRIVADA se utiliza como contraseña.
Incluye estas llaves en la cabecera Authorization
en todas tus solicitudes. Un ejemplo con cURL sería:
curl -u <API_KEY_PUBLICA>:<API_KEY_PRIVADA> https://b2b.analysat.com/api_v3/...
Reemplaza <API_KEY_PUBLICA>
y <API_KEY_PRIVADA>
por tus propias credenciales. Si necesitas generar o consultar tus llaves, haz clic aquí.
Endpoints
Empresas
Obtener empresas
Para obtener la lista de empresas (RFCs) asociadas a tu usuario:
GET /companies/get_companies
URL de ejemplo:
https://b2b.analysat.com/api_v3/companies/get_companies
cURL de ejemplo:
curl -X GET -u username:password "https://b2b.analysat.com/api_v3/companies/get_companies"
Respuesta (JSON)
[
{
"id": 1234,
"razon_social": "EMPRESA EJEMPLO SA DE CV",
"rfc": "ABC121212ABC",
"vencimiento_ciec": "2025-01-01",
"vencimiento_fiel": "2025-02-10",
"error_304": false,
"fechas_descarga_pendientes": null,
"ultima_actualizacion": "2025-01-05 14:30:45"
},
{
"id": 5678,
"razon_social": "OTRA EMPRESA SA DE CV",
"rfc": "DEF131313DEF",
"vencimiento_ciec": "2025-03-15",
"vencimiento_fiel": "2025-04-20",
"error_304": false,
"fechas_descarga_pendientes": ["2025-01-01", "2025-01-02"],
"ultima_actualizacion": "2025-01-08 09:15:22"
}
]
Cuentas
Obtener cuentas
Este endpoint permite obtener la lista de cuentas bancarias que tiene una determinada empresa. Para ello, se requiere el RFC de la misma.
GET /accounts/get_accounts
URL de ejemplo:
https://b2b.analysat.com/api_v3/accounts/get_accounts
cURL de ejemplo:
curl -X GET -u username:password "https://b2b.analysat.com/api_v3/accounts/get_accounts?rfc=ABC121212ABC"
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
rfc | String | Sí | RFC de la empresa para la cual se desean las cuentas bancarias |
Respuesta (JSON)
[
{
"_id": 714,
"debito_credito": "Debito",
"moneda": "MXN",
"nombre_banco": "BBVA Personal",
"nombre_cuenta": "BBVA",
"numero_cuenta": "154742342",
"tipo_cuenta": "Banco",
"tipo_persona": "Personal",
"saldo_actual": 224848.44
},
{
"_id": 753,
"debito_credito": "Crédito",
"moneda": "MXN",
"nombre_banco": "American Express",
"nombre_cuenta": "The Gold Card®",
"numero_cuenta": "XXX-71001",
"tipo_cuenta": "Tarjeta de crédito",
"tipo_persona": "Personal",
"saldo_actual": -11330.99
}
]
Transacciones
Obtener transacciones
Este endpoint permite obtener una lista de transacciones (pagos) realizadas en una o varias cuentas bancarias. Además, se pueden aplicar diversos filtros para refinar los resultados.
GET /transactions/get_transactions
URL de ejemplo:
https://b2b.analysat.com/api_v3/transactions/get_transactions
cURL de ejemplo:
curl -X GET -u username:password "https://b2b.analysat.com/api_v3/transactions/get_transactions?rfc=ABC121212ABC&pagina=1&tipo_pago=Abono"
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
rfc | String | Sí | RFC del usuario (o la empresa) para el cual se desean obtener las transacciones |
pagina | Int | No | Número de página de resultados. Por defecto es 1 |
excel | String | No | Si se establece en 'si', retorna resultados en un archivo de Excel. Caso contrario, en formato JSON (por defecto: 'no') |
tipo_pago | String | No | 'Abono' o 'Cargo' |
forma_pago | String | No | Forma de pago. Por ejemplo: 'Transferencia electrónica de fondos' |
moneda | String | No | Moneda (por ejemplo 'MXN') |
documentos_relacionados | String | No | IDs de documentos relacionados, separados por comas |
id_banco | Int | No | ID del banco utilizado para la transacción |
status_conciliacion | String | No | Estado de la conciliación de la transacción ('Conciliados' o 'No conciliados') |
monto_inicial | Int | No | Monto mínimo de la transacción |
monto_final | Int | No | Monto máximo de la transacción |
descripcion | String | No | Descripción de la transacción |
cliente_proveedor_id | Int | No | ID del cliente o proveedor |
pago_id | Int | No | ID de la transacción |
filtro_etiqueta | String | No | Tipo de filtro de etiquetas ('Se encuentra en' o 'No se encuentra en') |
etiquetas_pagos | String | No | Etiquetas separadas por comas |
fecha_inicial | String | No | Fecha inicial de la transacción (formato 'YYYY-MM-DD') |
fecha_final | String | No | Fecha final de la transacción (formato 'YYYY-MM-DD') |
identificado | String | No | Indica si las transacciones están identificadas por la empresa ('Todos', 'Identificados', 'No identificados') |
order_by | String | No | Campo por el que se desea ordenar los resultados |
order_by_type | String | No | Tipo de ordenamiento ('asc' o 'desc') |
Respuesta (JSON)
{
"mas_paginas": false,
"resultados": [
{
"_id": 1212,
"cliente_proveedor": "XXXXXXXXXXXXX",
"cliente_proveedor_tipo": "cliente",
"descripcion": "SPEI RECIBIDOMIFE",
"movimiento_identificado": true,
"documentos_relacionados": [
{
"balance": 794.07,
"folio": "1",
"id": 9492,
"id_factura": "978BB19D-E642-41AF-A53D-8C738E55CB4D_FACTURAS EMITIDAS",
"monto": 794.07,
"parcialidad": 1,
"timbrado": true,
"tipo_cambio": 1
}
],
"etiquetas": null,
"fecha": "2023-02-17T06:00:00",
"folios": "1170",
"forma_pago": "Transferencia electrónica de fondos",
"id_banco": 714,
"moneda": "MXN",
"monto_conciliado": 794.07,
"monto_total": 794.07,
"nombre_cuenta": "BBVA 1",
"nombre_banco": "BBVA",
"nombrecompleto": "CLIENTE 1",
"saldo": 205541.2,
"tipo_cambio": 1,
"tipo_pago": "Abono",
"uuids": [
"978BB19D-E642-41AF-A53D-8C738E55CB4D_FACTURAS EMITIDAS"
]
}
],
"time_elapsed": 0.47510647773742676
}
Facturas
Obtener facturas
Este endpoint obtiene facturas emitidas o recibidas, aplicando distintos filtros como rango de fechas, tipo de comprobante, status, conciliación, entre otros.
GET /invoices/get_invoices
URL de ejemplo:
https://b2b.analysat.com/api_v3/invoices/get_invoices
cURL de ejemplo:
curl -X GET -u username:password "https://b2b.analysat.com/api_v3/invoices/get_invoices?rfc=ABC121212ABC&fechainicial=2023-01-01&fechafinal=2023-01-31&emitidas_recibidas=FACTURAS%20RECIBIDAS&tipo_de_comprobante=I"
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
rfc | String | Sí | RFC del contribuyente del que se quieren obtener las facturas. |
fechainicial | String | Sí | Fecha inicial en la que se quiere buscar facturas. |
fechafinal | String | Sí | Fecha final en la que se quiere buscar facturas. |
emitidas_recibidas | String | Sí | "FACTURAS EMITIDAS" o "FACTURAS RECIBIDAS". |
tipo_de_comprobante | String | Sí | Tipos de comprobante a retornar, puede ser "I", "E", "P", "N", "T". |
status | String | Sí | Status de los comprobantes ("Vigente" o "Cancelado"). |
status_aprobacion | String | No | Únicamente para FACTURAS RECIBIDAS de tipo I. Las opciones son "Aprobadas", "No aprobadas" y "Todas". |
status_conciliacion | String | No | Las opciones son "Conciliadas" o "No conciliadas". |
default_vencimiento | Int | No | Días de vencimiento para clientes o proveedores que no lo tienen definido. |
Respuesta (JSON)
{
"resultados": [
{
"_id": "200b36B191D9-8E11-4EF6-97A6-B4C8887FC5BA_FACTURAS EMITIDAS",
"fecha_convertida": "2021-05-12T14:00:59",
"vencimiento": 10,
"fecha_vencimiento": "2021-05-22T14:00:59",
"rfc": "XXXXXXXXXXXXX",
"nombre": "CLIENTE 1",
"folio": "167",
"moneda": "MXN",
"metodo_pago": "PUE",
"tipo_comprobante": "I",
"total": 8120.0,
"total_convertido": 8120.0,
"subtotal": 7000.0,
"subtotal_convertido": 7000.0,
"impuestos_trasladados": 1120.0,
"impuestos_trasladados_convertido": 1120.0,
"impuestos_retenidos": null,
"impuestos_retenidos_convertido": null,
"total_pagado": null,
"total_pagado_s_c": null,
"numero_pagos": null,
"total_complementos_s_c": null,
"total_complementos": null,
"total_ndc_s_c": null,
"total_ndc": null,
"etiquetas": null,
"aprobada_en": null,
"por_pagar_cobrar": 8120.0
}
],
"mas_paginas": false,
"time_elapsed": 0.557708740234375
}
Descargas
Solicitar descarga de facturas
Este endpoint crea una solicitud para descargar facturas en un periodo y con filtros determinados. El sistema validará la solicitud y retornará un id_solicitud.
POST /downloads/create_download
URL de ejemplo:
https://b2b.analysat.com/api_v3/downloads/create_download
cURL de ejemplo:
curl -X POST -u username:password "https://b2b.analysat.com/api_v3/downloads/create_download" \
-F "rfc=ABC121212ABC" \
-F "status=Vigentes" \
-F "fecha_inicial=2020-01-01" \
-F "fecha_final=2020-01-02" \
-F "emitidas_recibidas=FACTURAS RECIBIDAS"
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
rfc | string | Sí | RFC del contribuyente. |
status | string | No | Estado de la factura. Puede ser "Canceladas" o "Vigentes". |
formato | string | No | Formato de la factura. Puede ser "XML", "PDF". Por defecto, se utilizará "XML". |
fecha_inicial | date | Sí | Fecha inicial de las facturas a descargar (2020-01-01). |
fecha_final | date | Sí | Fecha final de las facturas a descargar (2020-01-02). |
emitidas_recibidas | string | No | Tipo de facturas a descargar. Puede ser "FACTURAS EMITIDAS", "FACTURAS RECIBIDAS" o "FACTURAS EMITIDAS Y RECIBIDAS". Por defecto, se utilizará "FACTURAS EMITIDAS Y RECIBIDAS". |
tipo_comprobante | string | No | Tipo de comprobante. Puede ser "Ingreso", "Egreso", "Pago", "Nomina", "Traslado". Por defecto, se utilizará "Todas". |
Respuesta (JSON)
{
"id_solicitud": "123456789"
}
Posibles errores:
{
"message": "Falta fecha_inicial"
}
{
"message": "Sin permiso para el rfc solicitado"
}
Obtener descarga
Este endpoint permite consultar el estado de una solicitud de descarga previamente creada y, si ya está lista, obtener la URL de descarga.
GET /downloads/get_download
URL de ejemplo:
https://b2b.analysat.com/api_v3/downloads/get_download
cURL de ejemplo:
curl -X GET -u username:password "https://b2b.analysat.com/api_v3/downloads/get_download?id=123456789&rfc=ABC121212ABC"
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
id | string | Sí | ID de la solicitud de descarga de facturas. |
rfc | string | Sí | RFC de la empresa. |
Respuesta (JSON)
{
"download_url": "https://s3.amazonaws.com/sdzcbgfngfxngnvfanalysat/archivo.zip?AWSAccessKeyId=ffff&Expires=1648969529&Signature=dddd%2FPzqE4HJ",
"expiry_seconds": 30,
"id_solicitud": "123456789"
}
Posibles errores:
{
"message": "Esta solicitud se encuentra en proceso de descarga"
}
{
"message": "No se encontraron facturas que coincidan con estos filtros"
}
{
"message": "No se encontro la solicitud"
}