07-24-2025 12:14 PM
Hi all,
I’m developing a web app to track eBay sales with accurate transaction fees and order data using the eBay REST APIs and OAuth.
Here is what I’m doing to get the fees and credits data:
After eBay OAuth login via Authorization Code Grant, I request an access token, explicitly asking for scopes including:
https://api.ebay.com/oauth/api_scope
https://api.ebay.com/oauth/api_scope/sell.account
https://api.ebay.com/oauth/api_scope/sell.fulfillment
https://api.ebay.com/oauth/api_scope/sell.finances (added recently to get fees)
Once the user logs in, I store the access token in session and use it to call eBay’s Account API endpoint:
GET https://api.ebay.com/account/v1/ledger
with a date filter for the last 7, 14, or 30 days.
I build the OAuth consent URL by URL-encoding all scopes space-separated in the query string.
When inspecting the OAuth token JSON response, the scope field is missing (None in my logs), but the token works correctly for calls to the Sell Fulfillment API /sell/fulfillment/v1/order, so I know the token is valid and scoped.
However, when I call the Account API /account/v1/ledger to get fees, I consistently get 404 Not Found, which suggests the token lacks proper authorization for this endpoint or the endpoint is unavailable.
I’ve double-checked my app’s keysets on the eBay Developer dashboard to ensure the finance scope is granted, and I confirm the OAuth URL has the finance scope included.
Has anyone encountered this 404 calling the ledger endpoint despite having a working token? Is there something special required to correctly obtain or activate the finance-related permissions? Or a different endpoint or headers required for fees?
Any ideas or hints on what I might be missing or need to check would be greatly appreciated!
Thanks in advance.