Merchant Fulfillment API

Learn how to use the Merchant Fulfillment API.

You use the Merchant Fulfillment API to build applications for sellers to use Amazon Buy Shipping services to purchase shipping for non-Prime and Prime orders.

Current versionLegacy versionsAvailable to sellersAvailable to vendors
v0 (Reference | Model)NoneYesNo
Release notes

To learn more about the terms that are used in this guide, refer to Terminology.

Use cases

The following use case examples are available for the Merchant Fulfillment API v0:

Roles

cancelShipment
AttributeValue
RegionsNA, EU, FE
Required roles (need at least one)Direct to Consumer Shipping (Restricted)
createShipment
AttributeValue
RegionsNA, EU, FE
Required roles (need at least one)Direct to Consumer Shipping (Restricted)
getAdditionalSellerInputs
AttributeValue
RegionsNA, EU, FE except where noted
Required roles (need at least one)Buyer Communication (NA, FE only)
Direct to Consumer Shipping (Restricted)
getEligibleShipmentServices
AttributeValue
RegionsNA, EU, FE
Required roles (need at least one)Direct to Consumer Shipping (Restricted)
getShipment
AttributeValue
RegionsNA, EU, FE
Required roles (need at least one)Direct to Consumer Shipping (Restricted)

Error codes

The following table describes the Merchant Fulfillment error codes.

Error codeHTTP status codeDescription
InsufficientFunds400The requested shipping label purchase was rejected because of insufficient funds in the seller's account.
InvalidRequest400Request has missing or invalid parameters and cannot be parsed.
InvalidShipFromAddress400The specified ShipFromAddress value is invalid. Specify a valid address.
InvalidShippingServiceOfferId400The specified ShippingServiceOfferId value is invalid. Specify a ShippingServiceOfferId value returned by a previous call to the getEligibleShipmentServices operation.
LabelCancelWindowExpired400The cancellation window for requesting a label refund has expired. Cancellation policies vary by carrier. For more information about carrier cancellation policies, refer to the Seller Central Help Hub for your marketplace.
LabelFormatNotSupported400The requested LabelFormat does not match the available formats.
ShipmentAlreadyExists400One or more items specified in a call to the createShipment operation have already shipped. Specify only unshipped items. A ShipmentId is returned in the Message element of the error message for each specified item that has already shipped.
ShipmentRequestDetailsTooRestrictive400The specified ShipmentRequestDetails and ShippingServiceI values are so restrictive that no shipping service offer is available that can fulfill the request. Try calling the createShipment operation again with less restrictive values, or first call the getEligibleShipmentServices operation to check if there are any shipping service offers available that match the ShipmentRequestDetails and ShippingServiceId values that you specify.
ShippingServiceOfferNotAvailable400The specified ShippingServiceOfferId value is no longer valid. This could be because the shipping rate changed since you received the ShippingServiceOfferId value with a previous call to the getEligibleShipmentServices operation. Call the getEligibleShipmentServices operation again to get a new ShippingServiceOfferId value.
InvalidState404The request cannot be applied to the shipment in its current state. For example, a shipment in the RefundApplied state cannot be canceled.
ItemsNotInOrder404Items specified in a call to the createShipment operation are not part of the order specified in the same call.
RegionNotSupported404The specified order is from a marketplace where the Merchant Fulfillment service is not supported.
ResourceNotFound404The specified resource (such as ShipmentId or AmazonOrderId) does not exist.
ShippingServiceNotAvailable404The specified shipping service does not exist or is not available for the specified parameters (for example, Weight).