# Reporting across your sellers Building with an AI agent? Start at https://docs.payme.io/agents.md ## Related - [Find the right data](/accepting-payments/reporting/find-the-right-data) - [Withdrawals](/marketplaces-and-platforms/fees-and-payouts/withdrawals) ## Two ways to get the data As a partner, you can export reports by hand from the Partner Dashboard, or pull the same kind of data with the query APIs. This guide covers the query APIs. Send your `payme_client_key` on [get-sellers](/payments/query-apis/post-get-sellers), [get-sales](/payments/query-apis/post-get-sales), [get-transactions](/payments/query-apis/post-get-transactions), [get-subscriptions](/payments/query-apis/post-get-subscriptions) and [get-withdrawals](/payments/query-apis/post-get-withdrawals). It can go in the body or in the `PayMe-Partner-Key` header; see [Authentication](/payments/getting-started/authentication). ## Choose the sellers | To query | Send | | --- | --- | | All your sellers | `payme_client_key` only | | One seller | `payme_client_key` and `seller_payme_id` | | Several sellers | `payme_client_key` and `seller_payme_id` as an array, up to 100 values | Send only MPLs of your own sellers. Every item in the response carries its `seller_payme_id`, so you can group results by seller. ## Seller performance Call `get-transactions` for a period. Group the items by `seller_payme_id` and add up `transaction_price` for volume, or count them for the number of payments. ```json { "payme_client_key": "XXXXXXXX", "seller_payme_id": ["MPLDEMO-MPLDEMO-MPLDEMO-1234567"], "transaction_status": "validated", "sale_currency": "ILS", "transaction_created_min": "2026-10-01 00:00:00", "transaction_created_max": "2026-10-31 23:59:59", "page_size": 500, "page": 1 } ``` Leave out `seller_payme_id` to cover all your sellers. Refunds and chargebacks are separate rows: request `transaction_status` `["refunded", "p-refund"]` or `["chargeback", "partial-chargeback"]` and subtract their `transaction_price` for net volume. Add back `["chargeback-refund", "partial-chargeback-refund"]`, which are chargebacks that were reverted. ## Average transaction value From the `get-transactions` results, divide the sum of `transaction_price` by the number of items, per seller and per currency. Amounts are in minor units. ## Active subscriptions Call `get-subscriptions` with `sub_status` `2` and group by `seller_payme_id`. Other values are on [Subscription Statuses](/payments/codes-statuses/subscription-statuses). ```json { "payme_client_key": "XXXXXXXX", "sub_status": 2, "page_size": 500, "page": 1 } ``` Group by `sub_iteration_type` and `sub_price` to estimate recurring revenue. The types are on [Subscription Iteration Types](/payments/codes-statuses/subscription-iteration-types). ## Number of sellers Call `get-sellers` and count the items across all pages. `items_count` covers the current page only. `get-sellers` returns seller accounts only, not partner or system accounts, so the count is your sellers. ```json { "payme_client_key": "XXXXXXXX", "seller_active": true, "page_size": 500, "page": 1 } ``` Useful filters: `seller_approved`, `seller_created_min` and `seller_created_max`. Each item also has the seller's fees in `seller_fees`, and balances in `seller_wallets`. ## Balances across sellers `get-sellers` returns each seller's `seller_wallets`, so one call can refresh many sellers. Don't send `api_mode` `slim`, which leaves out `seller_wallets`. Send `seller_payme_id` as an array of up to 100 values, instead of one call per seller. `wallet_total` is everything PayMe holds for the seller, and `wallet_releasable` is the part past its release date. ```json { "payme_client_key": "XXXXXXXX", "seller_payme_id": ["MPLDEMO-MPLDEMO-MPLDEMO-1234567"], "page_size": 500, "page": 1 } ``` ## Payouts Call `get-withdrawals` with a date range and group `withdrawal_total` by `seller_payme_id` and `withdrawal_currency`. `get-future-withdrawals` takes one seller and one currency per request, so call it once for each. ## Run large reports safely - **Pages:** `page_size` goes up to 500, which is also the default, and `page` starts at 1 and goes up to 1000. Without them, you get only the first 500 items. Keep requesting pages until `items_count` is lower than `page_size`; for larger results, narrow the dates. - **Time:** timestamps and the `*_min` / `*_max` filters are [Asia/Jerusalem local time](/payments/query-apis#timezone). - **Rate limits:** `get-transactions` and `get-future-withdrawals` are rate limited. On HTTP 429 with code `998`, wait and retry; see [Errors](/payments/getting-started/errors). - **Personal data:** `get-sellers` and the buyer details on sales, transactions and subscriptions include personal and bank details. Keep the partner key and the results on your server.