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ámetroTipoRequeridoDescripción
rfcStringRFC 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ámetroTipoRequeridoDescripción
rfcStringRFC del usuario (o la empresa) para el cual se desean obtener las transacciones
paginaIntNoNúmero de página de resultados. Por defecto es 1
excelStringNoSi se establece en 'si', retorna resultados en un archivo de Excel. Caso contrario, en formato JSON (por defecto: 'no')
tipo_pagoStringNo'Abono' o 'Cargo'
forma_pagoStringNoForma de pago. Por ejemplo: 'Transferencia electrónica de fondos'
monedaStringNoMoneda (por ejemplo 'MXN')
documentos_relacionadosStringNoIDs de documentos relacionados, separados por comas
id_bancoIntNoID del banco utilizado para la transacción
status_conciliacionStringNoEstado de la conciliación de la transacción ('Conciliados' o 'No conciliados')
monto_inicialIntNoMonto mínimo de la transacción
monto_finalIntNoMonto máximo de la transacción
descripcionStringNoDescripción de la transacción
cliente_proveedor_idIntNoID del cliente o proveedor
pago_idIntNoID de la transacción
filtro_etiquetaStringNoTipo de filtro de etiquetas ('Se encuentra en' o 'No se encuentra en')
etiquetas_pagosStringNoEtiquetas separadas por comas
fecha_inicialStringNoFecha inicial de la transacción (formato 'YYYY-MM-DD')
fecha_finalStringNoFecha final de la transacción (formato 'YYYY-MM-DD')
identificadoStringNoIndica si las transacciones están identificadas por la empresa ('Todos', 'Identificados', 'No identificados')
order_byStringNoCampo por el que se desea ordenar los resultados
order_by_typeStringNoTipo 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ámetroTipoRequeridoDescripción
rfcStringRFC del contribuyente del que se quieren obtener las facturas.
fechainicialStringFecha inicial en la que se quiere buscar facturas.
fechafinalStringFecha final en la que se quiere buscar facturas.
emitidas_recibidasString"FACTURAS EMITIDAS" o "FACTURAS RECIBIDAS".
tipo_de_comprobanteStringTipos de comprobante a retornar, puede ser "I", "E", "P", "N", "T".
statusStringStatus de los comprobantes ("Vigente" o "Cancelado").
status_aprobacionStringNoÚnicamente para FACTURAS RECIBIDAS de tipo I. Las opciones son "Aprobadas", "No aprobadas" y "Todas".
status_conciliacionStringNoLas opciones son "Conciliadas" o "No conciliadas".
default_vencimientoIntNoDí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ámetroTipoRequeridoDescripción
rfcstringRFC del contribuyente.
statusstringNoEstado de la factura. Puede ser "Canceladas" o "Vigentes".
formatostringNoFormato de la factura. Puede ser "XML", "PDF". Por defecto, se utilizará "XML".
fecha_inicialdateFecha inicial de las facturas a descargar (2020-01-01).
fecha_finaldateFecha final de las facturas a descargar (2020-01-02).
emitidas_recibidasstringNoTipo de facturas a descargar. Puede ser "FACTURAS EMITIDAS", "FACTURAS RECIBIDAS" o "FACTURAS EMITIDAS Y RECIBIDAS". Por defecto, se utilizará "FACTURAS EMITIDAS Y RECIBIDAS".
tipo_comprobantestringNoTipo 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ámetroTipoRequeridoDescripción
idstringID de la solicitud de descarga de facturas.
rfcstringRFC 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"
}