Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.lapyme.com.ar/llms.txt

Use this file to discover all available pages before exploring further.

Cómo funciona

POST /api/v1/reports/query ejecuta una consulta analítica agrupada. Enviá JSON con:
  • source: qué datos consultar (sales, purchases, payments, inventory).
  • dimensions: cómo agrupar resultados (producto, fecha, proveedor, etc.). Máximo 4.
  • measures: qué calcular en cada grupo (total vendido, unidades, stock, etc.). Al menos 1.
  • period: rango de fechas (obligatorio para sales, purchases y payments; condicional para inventory).
  • dimension_filters: filtros opcionales que reducen el dataset antes de agrupar.
  • include_totals: cuando es true, la respuesta incluye totales de todas las filas en totals.
El scope siempre es la organización autenticada. No hay acceso a datos de otras organizaciones.

Forma de la respuesta

{
  "request_id": "req_abc",
  "data": {
    "rows": [
      {
        "id": "9c692e8b",
        "ids": ["9c692e8b-0f9a-4f7c-8b99-061a2eb188ae"],
        "labels": ["Microfiber Pillow 80x50"],
        "measures": { "total": 998300, "units": 12, "count": 8 }
      }
    ],
    "totals": { "total": 1448300, "units": 17, "count": 12 },
    "metadata": {
      "source": "sales",
      "dimensions": ["product"],
      "measures": ["total", "units", "count"],
      "period": { "start_date": "2026-01-01", "end_date": "2026-03-31" },
      "date_basis": "commercial"
    }
  }
}
Cada objeto en rows tiene:
CampoTipoDescripción
idstringClave compuesta a partir de los valores de dimensión. Sirve como identificador estable de fila.
idsstring[]IDs crudos de cada dimensión, en el mismo orden que labels.
labelsstring[]Etiquetas legibles para cada dimensión agrupada.
measuresRecord<string, number>Valores de las métricas solicitadas.
Las métricas currency son centavos enteros. Dividí por 100 para obtener pesos o dólares.

Fuente: sales

Consulta las ventas de la organización. period: obligatorio. Filtra por fecha de venta (commercial) o fecha contable (fiscal), según date_basis. date_basis: commercial (default) o fiscal.

Dimensiones disponibles (sales)

DimensiónDescripción
dateDía de venta
weekSemana (lunes a domingo)
week_of_yearNúmero de semana del año
monthMes (año-mes)
month_of_yearNúmero de mes (1-12)
day_of_weekDía de la semana (1=lunes, 7=domingo)
yearAño
quarterTrimestre
hour_of_dayHora del día (0-23)
customerCliente
customer_tax_categoryCódigo o etiqueta de categoría fiscal del cliente, según los datos fuente
person_typeTipo de persona (física / jurídica)
provinceProvincia del cliente
cityCiudad del cliente
productProducto
variantVariante del producto
categoryCategoría del producto
product_typeTipo de producto (producto, servicio, combo, kit)
salespersonVendedor
point_of_salePunto de venta
warehouseDepósito
registerCaja
integration_sourceCanal de integración (Mercado Libre, Tiendanube, etc.)
voucher_typeTipo de comprobante
currencyMoneda (ARS, USD)
payment_statusEstado de cobranza
cae_statusEstado de CAE (AFIP)
formatted_invoice_numberNúmero de comprobante formateado
payment_methodMétodo de pago
tax_rateAlícuota de IVA

Métricas disponibles (sales)

MétricaTipoUnidadDescripción
totalcurrencycentsTotal vendido
subtotalcurrencycentsSubtotal sin IVA
tax_amountcurrencycentsIVA
countcountintegerCantidad de ventas
unitsunitsintegerUnidades vendidas
costcurrencycentsCosto de mercadería vendida
margincurrencycentsMargen bruto (total - costo)
avg_ticketcurrencycentsTicket promedio (calculado: total / count)
margin_percentpercentage% (0-100)Porcentaje de margen (calculado: margin / total x 100)
discount_amountcurrencycentsDescuentos aplicados
balancecurrencycentsSaldo pendiente de cobro
unique_customerscountintegerClientes únicos
unique_productscountintegerProductos únicos

Dimensiones filtrables (sales)

customer, customer_tax_category, person_type, province, city, product, category, product_type, salesperson, point_of_sale, warehouse, register, integration_source, voucher_type, currency, payment_status, cae_status, formatted_invoice_number, payment_method, tax_rate.

Fuente: purchases

Consulta las compras de la organización. period: obligatorio. Filtra por fecha de factura.

Dimensiones disponibles (purchases)

DimensiónDescripción
dateDía de factura
weekSemana
monthMes (año-mes)
quarterTrimestre
yearAño
supplierProveedor
supplier_tax_categoryCategoría fiscal del proveedor
supplier_person_typeTipo de persona del proveedor
supplier_provinceProvincia del proveedor
supplier_cityCiudad del proveedor
productProducto
variantVariante del producto
categoryCategoría del producto
product_typeTipo de producto
warehouseDepósito de recepción
voucher_typeTipo de comprobante
currencyMoneda
tax_rateAlícuota de IVA

Métricas disponibles (purchases)

MétricaTipoUnidadDescripción
purchase_totalcurrencycentsTotal comprado
purchase_subtotalcurrencycentsSubtotal sin IVA
purchase_tax_amountcurrencycentsIVA de compras
purchase_countcountintegerCantidad de compras
purchase_unitsunitsintegerUnidades compradas
purchase_costcurrencycentsTotal de costo unitario (unit_cost x quantity)
unique_supplierscountintegerProveedores únicos
avg_purchase_ticketcurrencycentsTicket promedio de compra (calculado: purchase_total / purchase_count)
avg_purchase_unit_costcurrencycentsCosto unitario promedio (calculado: purchase_cost / purchase_units)

Dimensiones filtrables (purchases)

supplier, supplier_tax_category, supplier_person_type, supplier_province, supplier_city, product, category, product_type, warehouse, voucher_type, currency, tax_rate.

Fuente: payments

Consulta cobranzas de clientes y pagos a proveedores. period: obligatorio. Filtra por fecha de pago/cobranza.

Dimensiones disponibles (payments)

DimensiónDescripción
dateDía de pago/cobranza
weekSemana
monthMes (año-mes)
quarterTrimestre
yearAño
payment_contactCliente o proveedor
payment_contact_nameNombre del contacto
payment_contact_tax_categoryCategoría fiscal del contacto
payment_contact_person_typeTipo de persona del contacto
payment_contact_provinceProvincia del contacto
payment_contact_cityCiudad del contacto
point_of_salePunto de venta
registerCaja
pos_sessionSesión POS
safeCaja fuerte
payment_typeTipo de movimiento (customer o supplier)
payment_record_statusEstado del recibo
currencyMoneda
settlement_currencyMoneda de liquidación
formatted_payment_numberNúmero de recibo formateado
payment_methodMétodo de pago
payment_method_typeTipo de método de pago

Métricas disponibles (payments)

MétricaTipoUnidadDescripción
payment_collected_totalcurrencycentsTotal cobrado a clientes
payment_paid_totalcurrencycentsTotal pagado a proveedores
payment_net_cashflowcurrencycentsTotal cobrado menos total pagado
payment_gross_movementcurrencycentsMovimiento bruto total
payment_net_amountcurrencycentsImporte neto liquidado
payment_fee_amountcurrencycentsComisiones
payment_balancecurrencycentsSaldo sin aplicar
payment_countcountintegerCantidad de recibos
payment_split_countcountintegerCantidad de líneas de pago
unique_payment_contactscountintegerContactos únicos
avg_payment_amountcurrencycentsImporte promedio de recibo

Dimensiones filtrables (payments)

payment_contact, payment_contact_name, payment_contact_tax_category, payment_contact_person_type, payment_contact_province, payment_contact_city, point_of_sale, register, pos_session, safe, payment_type, payment_record_status, currency, settlement_currency, formatted_payment_number, payment_method, payment_method_type.

Fuente: inventory

Consulta el estado de stock. Tiene dos modos según las métricas seleccionadas:

Métricas snapshot (sin period)

Devuelven el estado actual del stock. No aceptan period ni date_basis.
MétricaTipoUnidadDescripción
stock_on_handunitsintegerStock físico total
stock_availableunitsintegerStock disponible (físico - reservado)
stock_reservedunitsintegerStock reservado
stock_incomingunitsintegerStock entrante
stock_value_costcurrencycentsValor del stock a costo
stock_value_retailcurrencycentsValor del stock a precio de venta

Métricas derivadas de ventas (requieren period)

Se calculan a partir de ventas del período. Requieren period y aceptan date_basis.
MétricaTipoUnidadDescripción
ending_inventory_unitsunitsintegerUnidades de inventario al cierre del período
inventory_units_soldunitsintegerUnidades vendidas en el período
inventory_units_sold_per_daynumberdecimalPromedio de unidades vendidas por día
days_of_inventory_remainingnumberdecimalDías estimados de inventario restante al ritmo de ventas
Las métricas snapshot no pueden mezclarse con métricas derivadas en la misma solicitud.
Cuando se usan métricas derivadas, solo son compatibles las dimensiones product, variant, category, product_type y warehouse.

Dimensiones disponibles (inventory)

DimensiónDescripción
productProducto
variantVariante del producto
categoryCategoría del producto
product_typeTipo de producto
warehouseDepósito
currencyMoneda del stock

Dimensiones filtrables (inventory)

product, category, product_type, warehouse, currency.

dimension_filters

Filtra datos antes de agrupar. Cada clave es una dimensión filtrable para la fuente; el valor es un array de IDs a incluir. La lógica es OR dentro de un filtro y AND entre filtros.
{
  "source": "sales",
  "period": { "start_date": "2026-01-01", "end_date": "2026-03-31" },
  "dimensions": ["product"],
  "measures": ["total", "units"],
  "dimension_filters": {
    "category": ["uuid-category-apparel", "uuid-category-footwear"],
    "warehouse": ["uuid-main-warehouse"]
  }
}

Ejemplos

Ventas por producto en Q1 2026

curl -X POST "https://api.lapyme.com.ar/api/v1/reports/query" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "sales",
    "period": { "start_date": "2026-01-01", "end_date": "2026-03-31" },
    "dimensions": ["product"],
    "measures": ["total", "units", "count", "margin"],
    "include_totals": true
  }'

Ventas por mes y categoría (fiscal)

curl -X POST "https://api.lapyme.com.ar/api/v1/reports/query" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "sales",
    "period": { "start_date": "2026-01-01", "end_date": "2026-03-31" },
    "dimensions": ["month", "category"],
    "measures": ["total", "subtotal", "tax_amount"],
    "date_basis": "fiscal"
  }'

Compras por proveedor en marzo de 2026

curl -X POST "https://api.lapyme.com.ar/api/v1/reports/query" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "purchases",
    "period": { "start_date": "2026-03-01", "end_date": "2026-03-31" },
    "dimensions": ["supplier"],
    "measures": ["purchase_total", "purchase_count", "purchase_units"],
    "include_totals": true
  }'

Cobranzas y pagos por método en marzo de 2026

curl -X POST "https://api.lapyme.com.ar/api/v1/reports/query" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "payments",
    "period": { "start_date": "2026-03-01", "end_date": "2026-03-31" },
    "dimensions": ["payment_method"],
    "measures": ["payment_net_cashflow", "payment_collected_total", "payment_paid_total"],
    "include_totals": true
  }'

Stock disponible por producto y depósito

curl -X POST "https://api.lapyme.com.ar/api/v1/reports/query" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "inventory",
    "dimensions": ["product", "warehouse"],
    "measures": ["stock_on_hand", "stock_available", "stock_reserved"]
  }'

Días de inventario restante por categoría

curl -X POST "https://api.lapyme.com.ar/api/v1/reports/query" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "inventory",
    "period": { "start_date": "2026-01-01", "end_date": "2026-03-31" },
    "dimensions": ["product"],
    "measures": ["stock_on_hand", "inventory_units_sold", "days_of_inventory_remaining"]
  }'

Scope requerido

reports:read