Skip to content
Select themeSelect language

`GET /api/marketplace/seller/ledger/board` — the #691 §E server-paginated seller-earnings board: filtered+paged ledger rows + total + (optional) facets + the whole-set KPI + the 30-day net series.

GET
/api/marketplace/seller/ledger/board
curl --request GET \
--url https://example.com/api/marketplace/seller/ledger/board
limit
integer format: int64
offset
integer format: int64
entry_type
string

Exact entry_type facet (sale | refund | payout | runner_usage | …).

status
string

Exact status facet (available | held | pending | paid | …).

q
string

Free-text search over the ledger entry description.

sort
string

Whitelisted sort key: created_at | entry_type | gross_minor | net_minor | platform_fee_minor | provider_fee_minor | status.

dir
string

Sort direction asc | desc (default desc).

include_facets
boolean

Recompute the seller-wide facets (default true).

Media typeapplication/json

One page of the earnings board: the page rows, the filtered total, optional facets and the whole-set KPI – one entry per currency, ordered by currency.

object
facets
One of:
null
items
required
Array<object>

A double-entry ledger row for seller earnings. Every sale, refund, chargeback, adjustment, and payout is recorded as a separate entry. net_minor = gross_minor - platform_fee_minor - provider_fee_minor.

object
created_at
required
string format: date-time
currency
required
string
description
string | null
entry_type
required
string
fee_policy_snapshot
required
gross_minor
required
integer format: int32
id
required
string format: uuid
net_minor
required
integer format: int32
payout_item_id
string | null format: uuid
platform_fee_minor
required
integer format: int32
provider_fee_minor
required
integer format: int32
purchase_id
string | null format: uuid
runner_usage_id
string | null format: uuid
seller_profile_id
required
string format: uuid
status
required
string
updated_at
required
string format: date-time
kpi
required
Array<object>

One currency’s headline earnings KPI, over the seller’s WHOLE ledger (facet-invariant), plus that currency’s 30-day net series (oldest -> newest, zero-filled, always 30 values).

#1086 find 14 – the board used to carry ONE currency-blind KPI object plus one currency-blind series, which the FE labelled “EUR” by hand. The page now carries one of these per currency the seller actually holds, so every figure is denominated and nothing is summed across denominations.

object
available_minor
required
integer format: int64
average_minor
required
integer format: int64
count
required
integer format: int64
currency
required
string
current_month_minor
required
integer format: int64
held_minor
required
integer format: int64
paid_minor
required
integer format: int64
series
required
Array<integer>
total
required
integer format: int64
Examplegenerated
{
"facets": {
"entry_types": [
{
"count": 1,
"value": "example"
}
],
"statuses": [
{
"count": 1,
"value": "example"
}
]
},
"items": [
{
"created_at": "2026-04-15T12:00:00Z",
"currency": "example",
"description": "example",
"entry_type": "example",
"fee_policy_snapshot": "example",
"gross_minor": 1,
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"net_minor": 1,
"payout_item_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"platform_fee_minor": 1,
"provider_fee_minor": 1,
"purchase_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"runner_usage_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"seller_profile_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"status": "example",
"updated_at": "2026-04-15T12:00:00Z"
}
],
"kpi": [
{
"available_minor": 1,
"average_minor": 1,
"count": 1,
"currency": "example",
"current_month_minor": 1,
"held_minor": 1,
"paid_minor": 1,
"series": [
1
]
}
],
"total": 1
}