Run everything you never had time to implement. Define your process once, and keep it running with Qore.

All reports
Amazon Seller Central
Fees & Finance

Amazon Financial Event Groups Report (Finances API)

Amazon's Financial Event Groups report lists the account's settlement periods: one row per financial event group, carrying its processing status, the status and date of the fund transfer to your bank, the period it covers, its beginning balance, and its original and converted totals with their currency codes. It comes from the Finances API's listFinancialEventGroups operation rather than a downloadable report, and it belongs to the account as a whole, not to a marketplace — a single North America response mixes USD and CAD groups.

Known upstream as
listFinancialEventGroups
One row is
One row per financial event group
Refreshed
Point-in-time snapshot
Columns
14
Marketplaces
All marketplaces
History
One request may span at most 180 days. Amazon's reference states that if `FinancialEventGroupStartedAfter` and `FinancialEventGroupStartedBefore` are more than 180 days apart, no financial event groups are returned. Whether the endpoint answers older windows walked backwards in 180-day steps, and how far back it goes before it stops, Amazon does not publish anywhere in the Finances API reference, and it has not been tested against a real pull.
Latency
Not established for a group's own timeline. Rows change in place after they first appear — a group closes, and later its transfer settles — so a row is not final until its fund transfer is. Amazon's reference for the operation publishes only two timing facts: orders from the last 48 hours might not be included in financial events, and both date parameters must be more than two minutes before the request. When Amazon first exposes a new group, or how quickly a status change lands, is not published and has not been measured.
Requires

What this report contains

A financial event group is one of Amazon's settlement periods: the window in which financial events accumulate before Amazon disburses the balance to your bank. This report is the list of those groups for the account — one row per group, identified by financial_event_group_id, bounded by financial_event_group_start and financial_event_group_end.

The columns fall into three sets. The status pair — processing_status and fund_transfer_status — say whether the group has closed and whether its money has moved; the second lags the first, because a group closes and only then does its transfer settle. The money columns are beginning_balance, original_total and converted_total, each a decimal sitting beside its own currency code. The transfer columns — fund_transfer_date, trace_id and account_tail — describe the payout itself: when it went, the reference Amazon attached, and the last digits of the account it landed in.

The file belongs to the account, not to a marketplace. The payload carries no marketplace at all, and a single North America response mixes USD and CAD groups, so the currency code is the file's only geography. The column set is established from 108 production groups.

It is a snapshot, not a date-ranged extract. Rows change in place as a group closes and then settles, and a response is the full current picture of the groups its window matches rather than a slice of new ones.

How to get it

There is no Reports API report type for this data. It comes from the Selling Partner API Finances API, version v0, through the listFinancialEventGroups operation — a synchronous, paginated endpoint. You call it with a marketplace and a date window, follow the pagination token until the last page, and combine the pages yourself.

Two things about the request catch people. First, the operation has no marketplace parameter at all — Amazon's reference lists only MaxResultsPerPage, FinancialEventGroupStartedBefore, FinancialEventGroupStartedAfter and NextToken — so the marketplace you pass selects the regional endpoint and nothing else; the groups that come back are the account's, whatever the marketplace. Pulling once per marketplace in the same region gets you the same groups several times over. Second, the date window is a retrieval filter with overlap semantics, not a data range: it matches groups whose period overlaps the window, and the rows it returns are their current state, not their state during the window. Re-pull the whole window; do not treat one pull as the delta since the last.

The trap that stops the call working at all is authorization vintage. An older refresh token, granted before the Finances operations existed for your app, answers 403 Access to requested resource is denied on listFinancialEventGroups even while the same credential's other Finances calls work — the grant is per operation. The fix is for the seller to re-authorize the app; there is nothing to change in the request.

Sample rows

Illustrative values, not data from a real account. Shown to give the shape of the file.

financial_event_group_idprocessing_statusfund_transfer_statusfinancial_event_group_startfinancial_event_group_endbeginning_balanceoriginal_totaloriginal_total_currency_codefund_transfer_dateaccount_tail
EXAMPLEGROUP0001ClosedSucceeded2026-07-15T00:00:00Z2026-07-29T00:00:00Z0.0012450.00USD2026-07-30T08:00:00Z1234
EXAMPLEGROUP0002ClosedSucceeded2026-07-29T00:00:00Z2026-08-12T00:00:00Z0.0011875.50USD2026-08-13T08:00:00Z1234
EXAMPLEGROUP0003ClosedSucceeded2026-08-12T00:00:00Z2026-08-26T00:00:00Z0.0013120.25USD2026-08-27T08:00:00Z1234
EXAMPLEGROUP0004ClosedSucceeded2026-08-12T00:00:00Z2026-08-26T00:00:00Z0.001980.00CAD2026-08-27T08:00:00Z5678
EXAMPLEGROUP0005Open2026-08-26T00:00:00Z0.009640.75USD

Field reference

ColumnTypeDescription
financial_event_group_idstringAmazon's identifier for the event group — the settlement period. This is the row's identity, and the key that joins the group to the financial events posted inside it.
processing_statusstringWhether the group is still accumulating events or has closed. Amazon documents two values, Open and Closed, and says the status indicates whether the group's balance is settled. A group closes first and its transfer settles afterwards, so this flips in place on a row that already exists in earlier pulls.
fund_transfer_statusstringThe state of the disbursement of this group's total to your bank account. It moves after processing_status does, which is why a closed group can still show an unsettled transfer. Amazon's reference describes it only as "the status of the fund transfer" and publishes no list of values, so the strings a real file carries are not confirmed here.
original_totaldecimalThe group's total in its original currency, as a decimal — Amazon describes it as the total amount of disbursement or charge in the currency of the Amazon store the transactions happened in. Read it beside original_total_currency_code — one file mixes currencies, so summing this column across rows adds Canadian dollars to US dollars.
original_total_currency_codestringThe currency original_total is in. The only geography this file has: the payload names no marketplace, so this column is what separates the USD groups from the CAD groups in a North America pull.
converted_totaldecimalThe group's total in its converted currency, as a decimal, beside converted_total_currency_code. Amazon describes original_total but gives this property no description at all in the reference — only the shared currency type — so how the two relate, and when they differ, is not documented.
converted_total_currency_codestringThe currency converted_total is in — the disbursement currency.
fund_transfer_datetimestamp_msWhen the funds for this group were transferred. Amazon's reference gives it only the shared date type and marks no property of a group as required, so whether it arrives empty before a transfer settles is not documented — read an empty value as unconfirmed, not as a signal.
trace_idstringThe trace identifier Amazon attaches to the fund transfer — the reference to match a payout against your bank statement.
account_tailstringThe trailing digits of the bank account the transfer went to. Enough to tell which account received a payout when more than one is on file, never the full account number.
beginning_balancedecimalThe balance the group opened with, as a decimal, beside beginning_balance_currency_code.
beginning_balance_currency_codestringThe currency beginning_balance is in.
financial_event_group_starttimestamp_msWhen the settlement period began. Together with financial_event_group_end this is the window the group's events fall in — and it is what the API's request window is matched against, by overlap rather than containment.
financial_event_group_endtimestamp_msWhen the settlement period closed. Whether it is absent on a group that is still open is not documented — the reference marks no property of a group as required and describes this one only as a date.

Use cases

Reconciling a bank deposit to an Amazon settlement. A deposit arrives and the question is which period it covers. Match the deposit to fund_transfer_date and account_tail, confirm the amount against converted_total in converted_total_currency_code, and use trace_id as the reference. financial_event_group_start and financial_event_group_end then tell you which sales the deposit is paying for.

Knowing what has been paid and what is still owed. Groups whose processing_status shows them closed but whose fund_transfer_status is not yet settled are money Amazon holds but has not sent. Their original_total, grouped by original_total_currency_code, is the receivable.

Splitting payouts by currency in a multi-country account. A North America account gets USD and CAD groups in the same response. Grouping on original_total_currency_code is the only way to separate them, because no marketplace column exists to do it.

Anchoring transaction-level analysis to a settlement period. financial_event_group_id is the key that the individual financial events post against. Pull the groups first to find the period you care about, then fetch its events, rather than guessing at date boundaries.

Spotting a payout that did not happen. If a closed group comes back with no fund_transfer_date long after its financial_event_group_end, that is worth a look at your bank details on file — a failed transfer sits here before it shows anywhere else you will notice.

Limitations and gotchas

Rows mutate. The same financial_event_group_id returns with a different processing_status, fund_transfer_status, fund_transfer_date and totals as the group moves from open to closed to disbursed. Anything that stores the first version of a row and never revisits it will hold stale statuses and provisional totals. Overwrite by id on every pull.

The date window is not a data range. It filters which groups come back by overlap with their period; it does not filter or restate the values inside them. A window covering last month returns groups that touched last month, in their current state.

One response is one account, not one marketplace. There is no marketplace column, and the marketplace parameter only chooses the regional endpoint. Pulling per marketplace duplicates the groups; summing money across rows without grouping on the currency code mixes currencies. In Europe the disbursement currency does not even identify a country — EUR spans too many marketplaces to place.

Old authorizations get 403. A seller who authorized your app before the Finances operations were part of its grant is denied on listFinancialEventGroups until they re-authorize, even when other Finances calls succeed for them. This looks like a permissions bug in your code and is not one.

Status values are half documented. Amazon gives processing_status two values, Open and Closed, and its use-case guides filter on exactly that pair. It gives fund_transfer_status no value list at all, and its own sandbox example returns strings matching neither field's documented vocabulary. Which columns are empty while a group is open is also unstated — the response schema marks no property required and says nothing about when one is absent — so the blank transfer columns on the open group in the sample read the column meanings, not a documented rule.

One request spans at most 180 days. Amazon states that if the window's two dates are more than 180 days apart, no financial event groups are returned — not an error, just an empty list. Whether the endpoint answers older windows walked backwards in 180-day steps, and how far back it holds groups at all, Amazon does not publish, and it has not been tested against a real pull.

FAQ

What is a financial event group on Amazon?

It is a settlement period: the window during which Amazon accumulates your financial events before disbursing the balance to your bank. Each group has a start, an end once it closes, a total, and a fund transfer that settles after the group closes.

Is this the same as the Settlement Report?

No. The Settlement Report is a downloadable file listing every line inside a settlement. This is the list of the settlements themselves, one row per period, with its status and payout details, served live by the Finances API rather than as a report file.

Why does listFinancialEventGroups return 403 for one seller and work for another?

Because access follows the vintage of the authorization. A refresh token granted before the operation was part of your app's grant is denied on it even though other Finances calls work. The seller has to re-authorize your app; nothing in the request is wrong.

Which marketplace does a row belong to?

None in particular. A group belongs to the account, and the payload carries no marketplace. The currency code on the totals is the only geography in the file, and a North America response mixes USD and CAD groups.

Why did a group's total or status change between pulls?

Because rows change in place. A group closes, then its transfer settles, and the same group id comes back with updated status columns and totals. Treat every pull as the current state and overwrite by id.

Does the date window give me only new groups?

No. It matches groups whose period overlaps the window and returns their current state. It is a retrieval filter, not a change feed, so re-pull the full window each time rather than treating one call as the delta since the last.

Sources

Every researched claim on this page, and the Amazon or Walmart page it came from.

  • marketplaces — developer-docs.amazon.com/finances-api — the Finances API page gives `listFinancialEventGroups` Regions `NA, EU, FE` and the API's availability as `Sellers only`; developer-docs.amazon.com/listfinancialeventgroups — the operation's OpenAPI definition has no marketplace parameter of any kind, so there is no marketplace dimension to restrict. Every region, no marketplace filter, hence `all`
  • cadence — developer-docs.amazon.com/listfinancialeventgroups — the data is a synchronous `GET /finances/v0/financialEventGroups` returning the groups' current values, with no report request, no generation step and no published schedule, which is `snapshot` in _taxonomy.yaml rather than `daily`. It matches the production files, in which the rows mutate in place
  • history_window — developer-docs.amazon.com/listfinancialeventgroups — `If FinancialEventGroupStartedAfter and FinancialEventGroupStartedBefore are more than 180 days apart, no financial event groups are returned.` No retention statement appears anywhere in the Finances API documentation
  • latency — developer-docs.amazon.com/listfinancialeventgroups — `Returns financial event groups for a given date range. Orders from the last 48 hours might not be included in financial events.`, and both date parameters `must be more than two minutes before` the request
  • fields (processing_status) — developer-docs.amazon.com/listfinancialeventgroups — `The processing status of the financial event group indicates whether the balance of the financial event group is settled. Possible values: Open, Closed`. Amazon's use-case guides use the same pair: developer-docs.amazon.com/retrieve-amount-status-payment (`select the financial event groups where ProcessingStatus is equal to Closed`) and developer-docs.amazon.com/retrieve-your-current-balance (`Select the financial event groups where ProcessingStatus is equal to Open`)
  • fields (fund_transfer_status) — developer-docs.amazon.com/listfinancialeventgroups — the property's whole description is `The status of the fund transfer.` with no enumerated values
  • fields (original_total) — developer-docs.amazon.com/retrieve-your-current-balance — `The OriginalTotal property provides the total amount of disbursement or charge in the currency of the Amazon store in which the transactions occurred.`
  • how-to-get-it (request parameters) — developer-docs.amazon.com/listfinancialeventgroups — the operation takes `MaxResultsPerPage` (1-100, default 10), `FinancialEventGroupStartedBefore`, `FinancialEventGroupStartedAfter` and `NextToken`, and nothing else
  • fields (converted_total) — developer-docs.amazon.com/listfinancialeventgroups — `ConvertedTotal` is a bare `$ref` to the shared `Currency` schema with no description of its own, and none of the Finances v0 use-case guides mention it (checked developer-docs.amazon.com/retrieve-your-current-balance, developer-docs.amazon.com/retrieve-amount-status-payment and developer-docs.amazon.com/retrieve-financial-events-in-group). How it relates to `original_total` is not published, so the page does not say
  • fields (empty columns on an open group) — developer-docs.amazon.com/listfinancialeventgroups — the `FinancialEventGroup` schema carries no `required` list and no nullability statement. `FundTransferDate` and `FinancialEventGroupEnd` are `$ref`s to the shared `Date` type (`A date in ISO 8601 date-time format`), `TraceId` is `The trace identifier used by sellers to look up transactions externally` and `AccountTail` is `The account tail of the payment instrument`. Nothing states which are absent while a group is open, and the production files do not settle it either, so the page no longer asserts it
  • doc vs doc — status values — developer-docs.amazon.com/listfinancialeventgroups — the same page whose schema enumerates `ProcessingStatus` as `Open`/`Closed` carries an `x-amzn-api-sandbox` 200 example returning `"ProcessingStatus": "PROCESSED"` and `"FundTransferStatus": "TRANSFERED"`, matching neither field's documented vocabulary. The page follows the schema description and treats fund_transfer_status as unenumerated
  • doc vs evidence — what the date window filters on — developer-docs.amazon.com/listfinancialeventgroups — the reference defines `FinancialEventGroupStartedBefore` / `FinancialEventGroupStartedAfter` as selecting groups that *opened* before (but not at) / after (or at) the date, which is a filter on the group's start alone. The production files describe the same window as an overlap filter over the group's whole period. The page follows what the files show; only the parameter names come from the reference
  • report_type — developer-docs.amazon.com/listfinancialeventgroups — Amazon names the operation `listFinancialEventGroups`, and there is no Reports API report type for this data
  • how-to-get-it (Seller Central path) — sellercentral.amazon.com/200141680 — the "Payments Statement View" help article returns a login shell with no article text, and no public Amazon page describes the Payments dashboard's layout, so the page names no console analogue