Amazon SP API Get Product fees
Version | Date | Created / Updated | Notes |
---|---|---|---|
v1.0 | Hristiyan Georgiev | First publish |
The Selling Partner API for Product Fees lets us retrieve estimated fees for a product via API. We want to introduce this as it is helpful for sellers as they can account these fees in their pricing.
The fees need to be kept on Listing level, so we want to introduce new field in Listing Amazon
> Amazon Total Fee
. Please note that since the fees are based on the price of the product, which can change, so we need to be able to overwrite the record in the new field if there is a change in the number.
We want to perform this call after each price update sent from MC Pro. This means we need to cover both single product update and feeds updates so we need to incorporate a logic for that.
We want to control this via a flag in in Channel Amazon
> Get Product Fees
. This flag should be under the Feed Control Flags tab and it should be a checkbox.
API Call : POST /products/fees/v0/feesEstimate
API Docs : https://developer-docs.amazon.com/sp-api/reference/getmyfeesestimates
Please note that we can include up to 20 SKUs per single call.
As mentioned above we want to perform this call after we have sent a price update to Amazon, so our trigger will be a successful price update. We can incorporate this into the price update call or it can be a separate call it is up to the devs to decide what is the best path to handle this.
Usage Plan:
Rate (requests per second) | Burst |
---|---|
0.5 | 1 |
Example call body :
[
{
"FeesEstimateRequest": {
"PriceToEstimateFees": {
"ListingPrice": {
"CurrencyCode": "USD",
"Amount": 31.84
}
},
"MarketplaceId": "ATVPDKIKX0DER",
"Identifier": "234basdsa2342"
},
"IdType": "SellerSKU",
"IdValue": "EMP-98-2060-0"
},
{
"FeesEstimateRequest": {
"PriceToEstimateFees": {
"ListingPrice": {
"CurrencyCode": "USD",
"Amount": 57.52
}
},
"MarketplaceId": "ATVPDKIKX0DER",
"Identifier": "54654ERD21222FDS"
},
"IdType": "SellerSKU",
"IdValue": "EMP-00-8779-0"
}
]
Mapping :
Amazon Field | MC Pro Field | Notes | |||
---|---|---|---|---|---|
FeesEstimateRequest |
|||||
PriceToEstimateFees |
|||||
ListingPrice |
|||||
CurrencyCode |
Channel > Exchange Rate Calculator Currency |
||||
Amount |
Listing > Price |
||||
MarketplaceId |
Hardcoded per account region | ||||
Identifier |
A unique identifier to track this request. We can use just random generated identifier. | ||||
IdType |
Hardcoded as “SellerSKU” | ||||
IdValue |
Product > SKU |
Example success response :
[
{
"Status": "Success",
"FeesEstimateIdentifier": {
"MarketplaceId": "ATVPDKIKX0DER",
"IdType": "SellerSKU",
"SellerId": "A60JVTL6HMWG0",
"SellerInputIdentifier": "54654ERD21222FDS",
"IsAmazonFulfilled": false,
"IdValue": "EMP-98-2060-0",
"PriceToEstimateFees": {
"ListingPrice": {
"CurrencyCode": "USD",
"Amount": 31.84
}
}
},
"FeesEstimate": {
"TimeOfFeesEstimation": "2025-06-24T08:46:55.000Z",
"TotalFeesEstimate": {
"CurrencyCode": "USD",
"Amount": 3.82
},
"FeeDetailList": [
{
"FeeType": "ReferralFee",
"FeeAmount": {
"CurrencyCode": "USD",
"Amount": 3.82
},
"FinalFee": {
"CurrencyCode": "USD",
"Amount": 3.82
},
"FeePromotion": {
"CurrencyCode": "USD",
"Amount": 0.0
}
},
{
"FeeType": "VariableClosingFee",
"FeeAmount": {
"CurrencyCode": "USD",
"Amount": 0.0
},
"FinalFee": {
"CurrencyCode": "USD",
"Amount": 0.0
},
"FeePromotion": {
"CurrencyCode": "USD",
"Amount": 0.0
}
},
{
"FeeType": "PerItemFee",
"FeeAmount": {
"CurrencyCode": "USD",
"Amount": 0.0
},
"FinalFee": {
"CurrencyCode": "USD",
"Amount": 0.0
},
"FeePromotion": {
"CurrencyCode": "USD",
"Amount": 0.0
}
}
]
}
},
{
"Status": "Success",
"FeesEstimateIdentifier": {
"MarketplaceId": "ATVPDKIKX0DER",
"IdType": "SellerSKU",
"SellerId": "A60JVTL6HMWG0",
"SellerInputIdentifier": "54654ERD21222FDS",
"IsAmazonFulfilled": false,
"IdValue": "EMP-00-8779-0",
"PriceToEstimateFees": {
"ListingPrice": {
"CurrencyCode": "USD",
"Amount": 57.52
}
}
},
"FeesEstimate": {
"TimeOfFeesEstimation": "2025-06-24T08:46:55.000Z",
"TotalFeesEstimate": {
"CurrencyCode": "USD",
"Amount": 6.9
},
"FeeDetailList": [
{
"FeeType": "ReferralFee",
"FeeAmount": {
"CurrencyCode": "USD",
"Amount": 6.9
},
"FinalFee": {
"CurrencyCode": "USD",
"Amount": 6.9
},
"FeePromotion": {
"CurrencyCode": "USD",
"Amount": 0.0
}
},
{
"FeeType": "VariableClosingFee",
"FeeAmount": {
"CurrencyCode": "USD",
"Amount": 0.0
},
"FinalFee": {
"CurrencyCode": "USD",
"Amount": 0.0
},
"FeePromotion": {
"CurrencyCode": "USD",
"Amount": 0.0
}
},
{
"FeeType": "PerItemFee",
"FeeAmount": {
"CurrencyCode": "USD",
"Amount": 0.0
},
"FinalFee": {
"CurrencyCode": "USD",
"Amount": 0.0
},
"FeePromotion": {
"CurrencyCode": "USD",
"Amount": 0.0
}
}
]
}
}
]
Example Error response :
[
{
"Status": "ClientError",
"FeesEstimateIdentifier": {
"MarketplaceId": "ATVPDKIKX0DER",
"IdType": "SellerSKU",
"SellerId": "A60JVTL6HMWG0",
"SellerInputIdentifier": "54654ERD21222FDS",
"IsAmazonFulfilled": false,
"IdValue": "EMP-98-5670",
"PriceToEstimateFees": {
"ListingPrice": {
"CurrencyCode": "USD",
"Amount": 31.84
}
}
},
"Error": {
"Type": "Sender",
"Code": "InvalidParameterValue",
"Message": "No ASIN found for SKU: EMP-98-5670. Please make sure the SKU is valid.",
"Detail": []
}
}
]
From the success response we want to store only the FeesEstimate
> TotalFeesEstimate
> Amount
into Listing Amazon
> Amazon Total Fee
. From the error response we want to store Error
> Message
into Listing Amazon
> Amazon Fee Error
(new field!).