External Fulfillment APIs FAQ¶
Authentication
Can I use the existing SP-API authorization for a seller to call External Fulfillment APIs?
Yes, if your existing authorization has access to all three below roles then you will be able to access external fulfillment APIs :
- Inventory & Order Tracking
- Amazon Fulfillment
- Direct to Consumer Shipping (Restricted)
Onboarding
What programs are currently supported by External Fulfillment?
External Fulfillment APIs currently supports following programs :
- Warehouse Integration (Seller Flex, Multi Seller Flex)
- Store Integration (Seller Flex)
- Easy Ship (Single/Multi Location)
- Self Ship (Single/Multi Location)
- Local Shops
- Pharmacy
What is the onboarding process for Easy Ship program?
You are required to share the seller details in the onboarding form and we will communicate you the onboarding status on your Seller Central registered email address within 24 working hours.
What is the onboarding process for Seller Flex Program?
Seller Flex is a invite only program, please reach out to respective marketplace Seller Flex business team for onboarding request. If the seller has an account manager assigned by Amazon, they can coordinate with them for this.
Configuration
What are the formats External Fulfillment APIs supporting for ship-label?
External Fulfillment currently support ZPL and PNG as Ship Label formats. If you have to update ship label format, then please reach out to your integration POC.
What are the formats External Fulfillment APIs supporting for Invoice?
External Fulfillment currently support PDF as Invoice format. Currently, Invoice is only required for IN marketplace. For remaining marketplaces, this operation is not supported.
Inventory
What is the recommended format of sequenceNumber in batch Inventory API call?
You can use any incremental absolute number as a sequence number. We recommend you to use epoch timestamp to avoid any duplication or stale sequence number update.
Can I send inventory update for multiple locations in a single batch API?
Yes, you can send inventory updates for multiple locations for a given seller in single batch Inventory API request. These updates are limited to 10 batch in single request.
How do I update inventory for multiple sellers on a Multi-Seller Flex (MSF) Node?
To update inventory for multiple sellers on an MSF Node, you must use the unique access token associated with each individual seller while calling batchInventory API. This process ensures that inventory updates are correctly applied to the specific seller's account.
Can I combine inventory updates for multiple sellers on a Multi-Seller Flex (MSF) Node?
No, you cannot combine multiple sellers inventory updates into a single batchInventory API request. Each seller's inventory update must be processed separately.
What is the throttling limits for Inventory APIs ?
API | Rate (TPS) |
---|---|
updateInventory | 50 |
getInventory | 50 |
batchInventory | 50 |
Orders
Can I pull orders from past? Is there any time period restriction for fetching such order details?
You can fetch all orders which were created/placed post your onboarding to External Fulfillment APIs. You will not able to fetch orders prior to your onboarding to External Fulfillment APIs. However, you can use existing other SP APIs (Orders API/Reports API) to fetch older orders.
How do I identify the Easy Ship, Self Ship and Seller Flex orders?
You can use combination of
shippingInfo.channelName
and shippingInfo.shippingType
to identify specific fulfillment program. For more details refer to table in the shipments use case guide.
Does ‘shipToAddress’ field gives customer information for all fulfilment programs?
No. The complete customer details are shared only for self-ship program. For remaining programs like seller Flex, Easy Ship; we do not provide customer details (except for TR marketplace).
Do sellers need to provide rejection reason for calling processShipment API for cancelling an order ?
Yes, rejection reason is required. The valid values are -
- OUT_OF_STOCK (Note - For Seller Flex/Easy Ship/Self Ship)
- CUSTOMER_REQUESTED (Note - For Self Ship only)
Why some of the attributes in the getShipments API metadata are missing in API response but present in API Documentation?
Some of the attributes are specific to programs (Easy Ship/Self Ship/Seller Flex). These attributes will only get populated in API response in applicable cases.
How are we required to handle special characters in shippingOptionId ?
You are required to do url encoding (UTF-8) before passing the shippingOptionId in the generateShipLabels API request.
How do I retrieve Ship Label from the API call?
The generateShiplabels API which is an idempotent API, returns ship label in either PNG or ZPL. The API response includes a presigned s3 URL (valid for 5 minutes) along with carrier name, slot information and tracking Id. You can download the file directly from this URL. In case the authorization expires, you can call generateShiplabels API again to retrieve the previously generated ship label with a new presigned URL.
How do we handle orders with Hazmat/Serial Number requirements?
You can identify such orders with attribute "serialNumberRequirement": "ALLOWED" or "hazmatLabelRequirement": "ALLOWED" in the getShipments/getShipment API. Such orders require hazmat labels or serial numbers (or both) as inputs during createPackage API operation. For more details refer to shipments use case guide.
Can I use Orders API to fetch orders metadata and EF API to process Easy Ship Orders?
No, if the seller is onboarded on External Fulfillment APIs (EF API), then they are required to use getShipment(s) API to fetch order metadata and also use EF APIs for order processing.
How do I retrieve shipments for multiple sellers on a Multi-Seller Flex (MSF) Node?
You need to make separate getShipments API requests for each seller using their unique access token. This ensures the orders are returned for only provided seller.
What is the throttling limits for Shipments APIs ?
For all shipments API operations, there is a limit of 1 TPS. To optimize the usage, we recommend using event notification for fetching the shipments and its status change.
Returns
Can we pull returns for all channels/Programs via External Fulfillment APIs?
Yes, you will be able to pull return details if the seller is onboarded on External Fulfillment APIs and seller returns are applicable for respective marketplace.
Sandbox
Do we have sandbox environment available for External Fulfillment APIs ?
External Fulfillment APIs currently only supports static sandbox with response based on IN marketplace. However you will be able to use it to understand API schema and behaviour.