comecerodocs

Get the items report

GET
/reports/items

Totals your sales per product for a date range: subtotal, tax, total, number of orders and units sold, one row per item_id. The list is offset-based, up to 100 rows a page.

With no dates, the report covers yesterday in the report time zone. A date_end later than today is cut back to the end of today, and a date_start later than today is refused. There is no maximum range.

Amounts are in your primary reporting currency, or your secondary one when you send it in currency. Needs a secret or trusted token with permission to read reports.

Authorization

headerAuthorizationBearer <token>

A secret, trusted or limited token. See Authentication.

Query Parameters

date_start?string

Only items on or after this date. Send ISO 8601 (2026-11-01T00:00:00Z or 2026-11-01T00:00:00-05:00) or a shorthand: 2026 means the start of 2026, 2026-11 the start of November, 2026-11-01 the start of that day. A date with no offset is read in timezone, or in the account's time zone when you send none. It must not be after date_end (400).

date_end?string

Only items on or before this date. Same formats as date_start, but a shorthand means the end of the period: 2026-11 is the last instant of November, 2026-11-30 the last instant of that day. A date with no offset is read in timezone, or in the account's time zone when you send none.

timezone?string

An IANA time zone name, such as America/New_York or UTC. It sets how date_start and date_end are read and the time zone of every date in the response. The default is the account's time zone (Settings, Technical), or UTC when it has none. A name that is not known is a 400.

limit?integer

How many items to return on one page, from 1 to 100. The default is 100. A value outside 1 to 100, or one that is not a whole number, is a 400.

Range1 <= value <= 100
Default100
offset?integer

For offset-based lists, how many items to skip before the page starts. Use next_page_offset or previous_page_offset from the page you have. A value that is not a whole number is a 400.

Range0 <= value
Default0
sort_by?string

The field to sort the rows by. Any other value sorts by subtotal.

Default"subtotal"
Value in"subtotal""name""item_id"
desc?boolean

Sort in descending order (newest, largest or last first) when true. The default is false. A value other than true or false is a 400.

Defaultfalse
formatted?boolean

When true, the object also has a formatted child with amounts and dates as display text in the shopper's language and currency (for example $19.99 or November 7, 2026). The default is false. See Localized formatting.

Defaultfalse
type?string

Which transactions to count: payments, refunds (as negative amounts) or combined (payments net of refunds on the items in this page).

Default"payments"
Value in"payments""refunds""combined"
currency?string

One of your two reporting currencies (Settings, General). Any other value is refused. Leave it out for the primary reporting currency.

Response Body

The items report.

application/json
  1. response

Sales totals per product for a date range, one row per item_id.

object?"report.items"

The object type. Always report.items.

Value in"report.items"
url?string

The URL that returns this report again, with the dates, filters and time zone it used.

Formaturi
account_id?string

The account the report is for.

date_created?string

When the report was run, in the report time zone.

Formatdate-time
date_start?|

The start of the range the report covers, in the report time zone.

Formatdate-time
date_end?|

The end of the range the report covers, in the report time zone.

Formatdate-time
timezone?string

The time zone used to read the dates.

test?boolean

True when the report covers test mode data.

type?string

Which transactions are counted. payments (the default) reads completed orders, refunds reads completed refunds (negative amounts), combined nets refunds against the items on this page.

Value in"payments""refunds""combined"
currency?string

The currency every amount is in: the account's primary reporting currency, or its secondary one when you asked for it with currency.

next_page_url?|

The URL of the next page, or null when this page has fewer rows than the page size.

Formaturi
next_page_offset?|

The offset of the next page, or null.

previous_page_url?|

The URL of the previous page, or null on the first page.

Formaturi
previous_page_offset?|

The offset of the previous page, or null.

data?array<>

One row per product.

formatted?

The report dates as display text in the shopper's language. Only present when formatted=true.

Example Request
curl -X GET 'https://api.comecero.com/api/v1/reports/items'
Example Response
{  "object": "report.items",  "url": "https://api.comecero.com/api/v1/reports/items?date_start=2026-11-01T00:00:00&date_end=2026-11-06T23:59:59&type=payments&timezone=UTC",  "account_id": "AB1234",  "date_created": "2026-11-07T14:12:44Z",  "date_start": "2026-11-01T00:00:00Z",  "date_end": "2026-11-06T23:59:59Z",  "timezone": "UTC",  "test": true,  "type": "payments",  "currency": "USD",  "next_page_url": null,  "next_page_offset": null,  "previous_page_url": null,  "previous_page_offset": null,  "data": [    {      "item_id": "prod-pro-1y.test",      "name": "Pro license, 1 year",      "subtotal": 299.85,      "tax": 0,      "total": 299.85,      "transaction_count": 3,      "item_count": 3    }  ]}

Get the fees report GET

Totals the fees Comecero charged your account, per currency, with one breakdown row per fee type. Fees the provider already took from the money (Comecero Express Payments) are shown apart as `collected_total` and are not in `total`. Send `accounting_id` to get the fees on one bill. With an `accounting_id` and no dates, every date is included. With no `accounting_id` and no dates, the report covers yesterday in the report time zone. A `date_start` later than today is refused. The range is read against the date each fee was created. Without `currency`, amounts stay in each fee's own currency, one group per currency. With one of your reporting currencies, every fee is converted into it and there is one group. Needs a secret or trusted token with permission to read reports.

Get the sales report GET

Totals your sales for a date range: subtotal, shipping, tax, total, transaction count and item count, with sum, average, min, max and median. Set `group_by` to get one row per hour, day, month or year. With no dates, the report covers yesterday in the report time zone. A `date_end` later than today is cut back to the end of today, and a `date_start` later than today is refused. The longest range is 31 days by hour, 2 years by day, 5 years by month and 10 years by year. The time zone is your account's, or the one you send in `timezone`. All amounts are in your primary reporting currency, or your secondary one when you send it in `currency`. Needs a secret or trusted token with permission to read reports.