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_companiesURL de ejemplo:
https://b2b.analysat.com/api_v3/companies/get_companiescURL 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_accountsURL de ejemplo:
https://b2b.analysat.com/api_v3/accounts/get_accountscURL 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_transactionsURL de ejemplo:
https://b2b.analysat.com/api_v3/transactions/get_transactionscURL 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_invoicesURL de ejemplo:
https://b2b.analysat.com/api_v3/invoices/get_invoicescURL 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_downloadURL de ejemplo:
https://b2b.analysat.com/api_v3/downloads/create_downloadcURL 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_downloadURL de ejemplo:
https://b2b.analysat.com/api_v3/downloads/get_downloadcURL 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"
}