ecomone developers
Open Ecomone
Docs / API reference / Revenue

Revenue

Revenue, fees and profit report (summary plus time series).

Get a revenue report#

GET/api/public/v1/revenuerevenue:read

Revenue summary and time series for a period. Aggregates orders with status paid, shipped, delivered, refunded or partially_refunded created in [since, until] (max 10,000 orders). Uses booked Stripe fees from settlements where available (test orders: 0), otherwise an estimate. Requires the plan feature reports.

Query parameters

sincestring (ISO 8601)

Start (created_at >=). Not validated. Default: now - 30 days.

untilstring (ISO 8601)

End (created_at <=). Not validated. Default: now.

granularity"day" | "week" | "month"

Bucket size (case-insensitive; invalid values fall back to day). Buckets are UTC; week buckets are keyed by the Monday date (YYYY-MM-DD), month buckets by YYYY-MM. Default: day.

include_test"true" | "false"

Include test orders only when exactly "true". Default: false.

shop_iduuid

Only for OAuth tokens that cover several shops: the shop to query. Must be one of the token's shops (else 403 forbidden). Required when the token covers more than one shop (else 400 shop_required). Optional for API keys (a key belongs to exactly one shop; any other value returns 403).

Response fields

data.sincestring

Effective start.

data.untilstring

Effective end.

data.granularitystring

Effective granularity.

data.include_testboolean

Whether test orders were included.

data.summaryobject

Totals: currency, country, tax_rate_pct, orders_count, gross_cents, net_cents, tax_cents, transaction_fee_cents, platform_fee_cents, refunded_cents, refund_count, profit_cents, net_profit_cents. currency/country/tax_rate_pct come from the shop.

data.bucketsarray

Sorted ascending by bucket: {bucket, ...same fields as summary}. Each bucket repeats currency, country and tax_rate_pct.

Errors

402feature_not_in_plan

GET /orders/:id/journey (feature browser_tracking) and GET /revenue (feature reports). Checked BEFORE the scope check.

401unauthorized

Any endpoint. Response carries header WWW-Authenticate: Bearer resource_metadata="<origin>/.well-known/oauth-protected-resource".

403forbidden

Scope check per endpoint (and per body field on PATCH /orders/:id).

403forbidden

shop_id query parameter names a shop outside the credential's reach.

400shop_required

Multi-shop OAuth token without shop_id.

404not_found

Any endpoint when the resolved shop has active=false.

429rate_limited

Any endpoint. Header Retry-After (seconds until the next minute bucket).

500server_error

Any endpoint.

Try itNot authorized
Request
curl "https://api.ecomone.shop/api/public/v1/revenue" \
  -H "X-Api-Key: $ECOMONE_API_KEY" \
  -H "X-Api-Secret: $ECOMONE_API_SECRET"
200Response
{
  "data": {
    "since": "2026-07-30T00:00:00.000Z",
    "until": "2026-08-30T00:00:00.000Z",
    "granularity": "day",
    "include_test": false,
    "summary": {
      "currency": "CHF",
      "country": "CH",
      "tax_rate_pct": 8.1,
      "orders_count": 184,
      "gross_cents": 1648900,
      "net_cents": 1525347,
      "tax_cents": 123553,
      "transaction_fee_cents": 41220,
      "platform_fee_cents": 54100,
      "refunded_cents": 24900,
      "refund_count": 3,
      "profit_cents": 1430027,
      "net_profit_cents": 1405127
    },
    "buckets": [
      {
        "bucket": "2026-08-29",
        "currency": "CHF",
        "country": "CH",
        "tax_rate_pct": 8.1,
        "orders_count": 9,
        "gross_cents": 78900,
        "net_cents": 72988,
        "tax_cents": 5912,
        "transaction_fee_cents": 2310,
        "platform_fee_cents": 2590,
        "refunded_cents": 0,
        "refund_count": 0,
        "profit_cents": 68088,
        "net_profit_cents": 68088
      }
    ]
  }
}

Authorize requests

Requests go straight from your browser to https://api.ecomone.shop. Your credentials stay in this browser tab and are never sent to this documentation site.