Ir al contenido

Ventas por día

GET
/reports/daily-sales
curl --request GET \
--url 'https://api.posdata.so/public/v1/reports/daily-sales?from=2026-04-15&to=2026-04-15' \
--header 'Authorization: Bearer <token>'

Solo ventas con estado completed. Rango inclusivo de hasta 92 días.

Permiso requerido: reports:read.

from
obligatorio
string formato: date

Primer día (YYYY-MM-DD), inclusive.

to
obligatorio
string formato: date

Último día (YYYY-MM-DD), inclusive.

OK

Tipo de contenidoapplication/json

Ventas completadas por día calendario de Bogotá. Una venta cuenta en el día en que se registró en la caja (occurred_at); las sincronizadas antes del 28-sep-2026 cuentan en el día en que llegaron al servidor.

object
object
obligatorio
Valor permitido: daily_sales_report
timezone
obligatorio
Valor permitido: America/Bogota
currency
obligatorio
Valor permitido: COP
from
obligatorio
string formato: date
to
obligatorio
string formato: date
days
obligatorio

Un elemento por día del rango, incluidos los días sin ventas (en cero).

Array<object>

Totales de un día (hora de Bogotá).

object
date
obligatorio
string formato: date
sales_count
obligatorio

Número de ventas completadas.

integer
subtotal
obligatorio

Pesos colombianos (COP), entero sin decimales.

integer
discount
obligatorio

Pesos colombianos (COP), entero sin decimales.

integer
tax
obligatorio

Pesos colombianos (COP), entero sin decimales.

integer
tip_amount
obligatorio

Pesos colombianos (COP), entero sin decimales.

integer
total
obligatorio

Pesos colombianos (COP), entero sin decimales.

integer
totals
obligatorio
object
sales_count
obligatorio

Número de ventas completadas.

integer
subtotal
obligatorio

Pesos colombianos (COP), entero sin decimales.

integer
discount
obligatorio

Pesos colombianos (COP), entero sin decimales.

integer
tax
obligatorio

Pesos colombianos (COP), entero sin decimales.

integer
tip_amount
obligatorio

Pesos colombianos (COP), entero sin decimales.

integer
total
obligatorio

Pesos colombianos (COP), entero sin decimales.

integer
Ejemplo
{
"object": "daily_sales_report",
"timezone": "America/Bogota",
"currency": "COP"
}

Petición inválida (VALIDATION_ERROR, INVALID_JSON, INVALID_CURSOR).

Tipo de contenidoapplication/json
object
error
obligatorio
object
code
obligatorio
string
Valores permitidos: UNAUTHENTICATED INVALID_API_KEY API_KEY_REVOKED API_KEY_EXPIRED API_KEY_WRONG_ENVIRONMENT ACCOUNT_INACTIVE PLAN_REQUIRED INSUFFICIENT_SCOPE BROWSER_REQUESTS_NOT_ALLOWED VALIDATION_ERROR INVALID_JSON PAYLOAD_TOO_LARGE INVALID_CURSOR NOT_FOUND ROUTE_NOT_FOUND IDEMPOTENCY_KEY_REQUIRED IDEMPOTENCY_KEY_REUSED IDEMPOTENCY_IN_PROGRESS CONFLICT SKU_ALREADY_EXISTS VARIANT_STOCK_UNSUPPORTED COMPOSITE_STOCK_UNSUPPORTED NO_WAREHOUSE DEVICES_OUTDATED RATE_LIMITED INTERNAL_ERROR
message
obligatorio

Explicación en español, con el siguiente paso.

string
param

Campo que causó el error, si aplica.

string
request_id
obligatorio
string
key
propiedades adicionales
any
Ejemplo
{
"error": {
"code": "UNAUTHENTICATED"
}
}

Sin API key válida (UNAUTHENTICATED, INVALID_API_KEY, API_KEY_REVOKED, API_KEY_EXPIRED, API_KEY_WRONG_ENVIRONMENT, ACCOUNT_INACTIVE).

Tipo de contenidoapplication/json
object
error
obligatorio
object
code
obligatorio
string
Valores permitidos: UNAUTHENTICATED INVALID_API_KEY API_KEY_REVOKED API_KEY_EXPIRED API_KEY_WRONG_ENVIRONMENT ACCOUNT_INACTIVE PLAN_REQUIRED INSUFFICIENT_SCOPE BROWSER_REQUESTS_NOT_ALLOWED VALIDATION_ERROR INVALID_JSON PAYLOAD_TOO_LARGE INVALID_CURSOR NOT_FOUND ROUTE_NOT_FOUND IDEMPOTENCY_KEY_REQUIRED IDEMPOTENCY_KEY_REUSED IDEMPOTENCY_IN_PROGRESS CONFLICT SKU_ALREADY_EXISTS VARIANT_STOCK_UNSUPPORTED COMPOSITE_STOCK_UNSUPPORTED NO_WAREHOUSE DEVICES_OUTDATED RATE_LIMITED INTERNAL_ERROR
message
obligatorio

Explicación en español, con el siguiente paso.

string
param

Campo que causó el error, si aplica.

string
request_id
obligatorio
string
key
propiedades adicionales
any
Ejemplo
{
"error": {
"code": "UNAUTHENTICATED"
}
}

Sin permiso (PLAN_REQUIRED, INSUFFICIENT_SCOPE, BROWSER_REQUESTS_NOT_ALLOWED).

Tipo de contenidoapplication/json
object
error
obligatorio
object
code
obligatorio
string
Valores permitidos: UNAUTHENTICATED INVALID_API_KEY API_KEY_REVOKED API_KEY_EXPIRED API_KEY_WRONG_ENVIRONMENT ACCOUNT_INACTIVE PLAN_REQUIRED INSUFFICIENT_SCOPE BROWSER_REQUESTS_NOT_ALLOWED VALIDATION_ERROR INVALID_JSON PAYLOAD_TOO_LARGE INVALID_CURSOR NOT_FOUND ROUTE_NOT_FOUND IDEMPOTENCY_KEY_REQUIRED IDEMPOTENCY_KEY_REUSED IDEMPOTENCY_IN_PROGRESS CONFLICT SKU_ALREADY_EXISTS VARIANT_STOCK_UNSUPPORTED COMPOSITE_STOCK_UNSUPPORTED NO_WAREHOUSE DEVICES_OUTDATED RATE_LIMITED INTERNAL_ERROR
message
obligatorio

Explicación en español, con el siguiente paso.

string
param

Campo que causó el error, si aplica.

string
request_id
obligatorio
string
key
propiedades adicionales
any
Ejemplo
{
"error": {
"code": "UNAUTHENTICATED"
}
}

Límite de peticiones (RATE_LIMITED). Respeta Retry-After.

Tipo de contenidoapplication/json
object
error
obligatorio
object
code
obligatorio
string
Valores permitidos: UNAUTHENTICATED INVALID_API_KEY API_KEY_REVOKED API_KEY_EXPIRED API_KEY_WRONG_ENVIRONMENT ACCOUNT_INACTIVE PLAN_REQUIRED INSUFFICIENT_SCOPE BROWSER_REQUESTS_NOT_ALLOWED VALIDATION_ERROR INVALID_JSON PAYLOAD_TOO_LARGE INVALID_CURSOR NOT_FOUND ROUTE_NOT_FOUND IDEMPOTENCY_KEY_REQUIRED IDEMPOTENCY_KEY_REUSED IDEMPOTENCY_IN_PROGRESS CONFLICT SKU_ALREADY_EXISTS VARIANT_STOCK_UNSUPPORTED COMPOSITE_STOCK_UNSUPPORTED NO_WAREHOUSE DEVICES_OUTDATED RATE_LIMITED INTERNAL_ERROR
message
obligatorio

Explicación en español, con el siguiente paso.

string
param

Campo que causó el error, si aplica.

string
request_id
obligatorio
string
key
propiedades adicionales
any
Ejemplo
{
"error": {
"code": "UNAUTHENTICATED"
}
}

Error interno (INTERNAL_ERROR). Reintenta y comparte el request_id si persiste.

Tipo de contenidoapplication/json
object
error
obligatorio
object
code
obligatorio
string
Valores permitidos: UNAUTHENTICATED INVALID_API_KEY API_KEY_REVOKED API_KEY_EXPIRED API_KEY_WRONG_ENVIRONMENT ACCOUNT_INACTIVE PLAN_REQUIRED INSUFFICIENT_SCOPE BROWSER_REQUESTS_NOT_ALLOWED VALIDATION_ERROR INVALID_JSON PAYLOAD_TOO_LARGE INVALID_CURSOR NOT_FOUND ROUTE_NOT_FOUND IDEMPOTENCY_KEY_REQUIRED IDEMPOTENCY_KEY_REUSED IDEMPOTENCY_IN_PROGRESS CONFLICT SKU_ALREADY_EXISTS VARIANT_STOCK_UNSUPPORTED COMPOSITE_STOCK_UNSUPPORTED NO_WAREHOUSE DEVICES_OUTDATED RATE_LIMITED INTERNAL_ERROR
message
obligatorio

Explicación en español, con el siguiente paso.

string
param

Campo que causó el error, si aplica.

string
request_id
obligatorio
string
key
propiedades adicionales
any
Ejemplo
{
"error": {
"code": "UNAUTHENTICATED"
}
}