SP-API deadlines
Amazon is removing three SP-API versions. Each migration is one week, $500 fixed.
Amazon removes the old settlement report types on 2026-11-11, Orders API v0 on 2027-03-27 and Finances v0 listFinancialEvents on 2027-08-27. The old calls keep working until each date, which is exactly why these get left late. Each sprint is one week at a fixed $500: the code change, a side-by-side parity check of old against new over a date range you choose, and the deploy.
For teams whose code downloads settlement reports, calls Orders API v0, or calls listFinancialEvents.
What each $500 sprint covers
- Settlement sprint (removal 2026-11-11), code change: your download moves from GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE or GET_V2_SETTLEMENT_REPORT_DATA_XML to GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2. That includes the getReports filter that finds it, since Amazon schedules settlement reports itself and they can't be requested
- Settlement sprint, parser: rewritten for the V2 layout, where price and fee columns collapse into amount-type, amount-description and amount, and for local number formats, where an EU amount arrives as 95,00 rather than 95.00
- Settlement sprint, roles: checked before any code. V2 needs the Finance and Accounting role, but the old flat file also worked with Inventory and Order Tracking or Amazon Fulfillment. An app without Finance and Accounting needs the role added and its sellers re-authorized
- Settlement sprint, parity and deploy: the settlement totals your current code produces compared with the V2 parse for the same settlement periods, with every difference explained. Then it's deployed, with the old report types gone from your code
- Orders sprint (removal 2027-03-27), code change: getOrders moves to searchOrders, and getOrder, getOrderItems, getOrderBuyerInfo, getOrderAddress and getOrderItemsBuyerInfo fold into getOrder on Orders API v2026-01-01, with includedData asking only for the blocks you use
- Orders sprint, buyer data: the Restricted Data Token step is removed, since v2026-01-01 doesn't use one, and every PII field is re-checked against the restricted role that now decides whether it comes back
- Orders sprint, paging and pacing: NextToken becomes paginationToken, which expires 24 hours after it's issued. searchOrders defaults to 0.0056 requests per second (burst 20), against 0.0167 for getOrders, so the sync loop is re-paced
- Orders sprint, values that change quietly: Canceled becomes CANCELLED, MFN and AFN become MERCHANT and AMAZON, and IsPrime and IsBusinessOrder move into programs[]. OrderTotal becomes proceeds.grandTotal, which only comes back if you request PROCEEDS
- Orders sprint, parity and deploy: the same date range pulled through v0 and v2026-01-01, compared order by order on status, totals, items and fulfillment channel. Then it's deployed behind a switch, so v0 stays your fallback until the removal date
- Finances sprint (removal 2027-08-27), code change: listFinancialEvents, listFinancialEventsByGroupId and listFinancialEventsByOrderId replaced by listTransactions on Finances v2024-06-19, filtered on ORDER_ID or FINANCIAL_EVENT_GROUP_ID where you used the ByOrderId and ByGroupId calls
- Finances sprint, parser: typed event lists rewritten as transactions with breakdowns and contexts, with DEFERRED, RELEASED and DEFERRED_RELEASED kept apart so deferred money is never reported as released
- Finances sprint, backfills: windows kept inside 180 days, because a wider one returns an empty response rather than an error. Pages are fetched until nextToken is null, because empty pages can occur, and pacing fits the 0.5 requests per second default
- Finances sprint, parity and deploy: the same event groups and orders pulled through v0 and listTransactions, with totals reconciled per group and per order, then deployed. listFinancialEventGroups stays, because it isn't on the removal list
- Every sprint: I read your code path before you pay, the change lands as a reviewable diff in your repo, and you keep a written parity report showing what matched, what differed, and why
What it does not
- Other deprecated APIs and operations, which are quoted separately
- Fixing the rest of your integration while I'm in there. I list what I notice and change only what the migration touches
- A parity check without a live account. It needs read access to a seller account through your existing app, and if there isn't one, I say so before you pay
- Hosting, infrastructure or data warehouse changes
- Ongoing maintenance after the deploy (that's a normal project — see Work with us)
- Amazon's schedule. If Amazon moves a date or changes a replacement after we agree scope, I tell you before doing anything different
A sprint is one code path for one API. If yours is bigger, I'll say so before you pay, and quote it as a project.
How it works
Four steps, priced before you pay.
Pick the deadline
Tell me which sprint, and send the file or function that calls the old API. A short snippet is enough to start.
I confirm it's one week
I read the code path before you pay. If it's bigger, like several services calling Orders or no account to test against, I say so and quote it properly.
Pay and book the week
$500 per sprint by PayPal, Wise or bank transfer. More than one sprint gets booked in deadline order, settlement first.
Change, check, deploy
The change on a branch, the parity report for a date range you pick, then the deploy. You keep the diff and the report.
Want to plan it yourself first?
Every removal date and replacement is written up, free, with the traps in each one.
Questions
What breaks on 2026-11-11?
Amazon removes the Flat File and XML settlement reports, GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE and GET_V2_SETTLEMENT_REPORT_DATA_XML, for sellers in all marketplaces. Both have been deprecated since 2025-03-17, and the removal was first set for 2026-03-25 before Amazon moved it. The replacement, GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2, is available now, and there is no XML replacement. Settlement reports can't be requested: Amazon schedules them and you find them with getReports. So code still looking for the old type names can fail in the worst way, with settlements that quietly stop arriving. That's Amazon's deprecation schedule as of October 2026.
Isn't the settlement change just a report-type rename?
No, and that's the trap. V2 collapses the price and fee columns into amount-type, amount-description and amount, and Amazon's own field mapping says related amounts may be combined. Amounts also come in local formats, so an EU marketplace sends 95,00 where you expected 95.00. V2 needs the Finance and Accounting role too, where the old flat file also worked with Inventory and Order Tracking or Amazon Fulfillment. Swap the type name alone and you get a report your parser doesn't understand. That's why this sprint ends in a parity check rather than a find-and-replace.
Why do the settlement sprint before the date rather than after?
Because until 2026-11-11 your current code still has the old report to run on, and the V2 parse can be checked against it. From that date Amazon makes the old types unavailable for sellers, so if you switch afterwards, the only baseline left is whatever your pipeline already stored. As of 9 October 2026, the date is about a month away.
What changes in Orders API v2026-01-01?
Fewer calls, with different shapes. getOrders becomes searchOrders, and getOrder, getOrderItems and the buyer-info and address calls fold into getOrder, with includedData choosing which blocks come back (BUYER, RECIPIENT, PROCEEDS, FULFILLMENT, PACKAGES and others). NextToken becomes paginationToken and expires after 24 hours, and searchOrders takes exactly one of createdAfter or lastUpdatedAfter. Values change too: Canceled is CANCELLED, MFN is MERCHANT, AFN is AMAZON, and money moves into proceeds breakdowns. Only six v0 operations are on the removal list. confirmShipment, updateShipmentStatus, getOrderRegulatedInfo and updateVerificationStatus aren't on it.
Do I still need a Restricted Data Token for buyer names and addresses?
Not on v2026-01-01. Amazon's words: “Accessing PII with the Orders API v2026-01-01 does not require a Restricted Data Token (RDT).” Your restricted role still decides what comes back. Buyer email and the recipient's phone need Direct-to-Consumer Shipping. Buyer name and the restricted parts of the address can also come through Tax Invoicing or Tax Remittance, depending on fulfillment channel, but in Japan and Singapore the tax roles don't get the buyer's name. Dropping the RDT layer is the easy half of the sprint. Re-checking every field against your roles is the half that matters.
Will my order sync get slower?
The list call might. searchOrders defaults to 0.0056 requests per second with a burst of 20, about one call every three minutes once the burst is spent, where v0 getOrders allowed 0.0167. includedData makes up for it: items, buyer and recipient data can come back with the search results instead of one getOrder call per order, and getOrder itself stays at 0.5 per second with a burst of 30. The sprint re-paces your loop for your real volume.
What changes in Finances v2024-06-19?
You get one ledger instead of typed event lists. listTransactions returns transactions with breakdowns, contexts and related identifiers, and it replaces all three listFinancialEvents calls. Where you used the ByOrderId or ByGroupId versions, filter with relatedIdentifierName set to ORDER_ID or FINANCIAL_EVENT_GROUP_ID. The traps are in the reference. If postedAfter and postedBefore are more than 180 days apart, “the response is empty”. The operation “can return empty pages”, so you page until nextToken is null. And events “might not include orders from the last 48 hours”. It defaults to 0.5 requests per second with a burst of 10, and it needs the Finance and Accounting role.
Is listFinancialEventGroups being removed too?
No. Only listFinancialEvents, listFinancialEventsByGroupId and listFinancialEventsByOrderId are on Amazon's removal list for 2027-08-27. listFinancialEventGroups stays, and its group IDs are what you pass to listTransactions to see which transactions make up a payout.
What exactly is the parity check?
The old and new versions run against the same seller account over a date range you choose, and I compare them record by record and in total: orders and statuses, settlement and payout totals, fee lines. Every difference either gets a named reason, such as a renamed value, a combined amount or an order inside Finances' 48-hour window, or it gets fixed. You get the report, so switching over is a decision made on evidence.
Why one week, and what if mine is bigger?
One week covers one code path per API: the change, the parity check and the deploy. If Orders is called from several services, or there's no account I can test against, I'll say so before you pay and quote it as a project instead.
Can you do all three?
Yes, as three sprints at $500 each, booked in deadline order: settlement first, then Orders, then Finances. Doing Orders and Finances well ahead of their dates leaves room if Amazon moves a date again. It has already moved the settlement removal once.
Do you need my Seller Central login?
No. The parity check runs through your existing app credentials against an account you choose. I never ask for a Seller Central password.
Send me what you have.
Tell me what you run today. If it's bigger than a week, or not a fit, I'll say so before you pay.