Selling Partner API for Amazon External Fulfillment Shipments Processing (2021-01-06,2024-09-11)

Download OpenAPI specification:Download

This section provides APIs for selling partners to work with Amazon External Fulfillment shipments management/processing services.

shipmentRetrieval

getShipments

Get a list of shipments dropped for the seller in the specified status. Shipments can be further filtered based on the fulfillment node and/or shipments' last updated date and time.

query Parameters
locationId
string <= 36 characters
Example: locationId=ABCD

The Amazon location identifier for which shipments are to be retrieved

marketplaceId
string
Example: marketplaceId=A21TJRUUN4KGV

The marketplace name associated with the location.

channelName
string <= 10 characters
Example: channelName=FBA

The channel name associated with the location.

status
required
string
Enum: "CREATED" "ACCEPTED" "CONFIRMED" "PACKAGE_CREATED" "PICKUP_SLOT_RETRIEVED" "INVOICE_GENERATED" "SHIPLABEL_GENERATED" "CANCELLED" "SHIPPED" "DELIVERED"
Example: status=CONFIRMED

Retrieves only those shipments which are in the specified status. The most common use-case would be to fetch all new shipments which would be in the ACCEPTED status. Valid values are ACCEPTED, CONFIRMED, PACKAGE_CREATED, PICKUP_SLOT_RETRIEVED, INVOICE_GENERATED, SHIPLABEL_GENERATED, SHIPPED, DELIVERED and CANCELLED.

lastUpdatedAfter
string <date-time>
Example: lastUpdatedAfter=2020-06-08T17:23:58Z

Shipments whose latest update is after the specified date/time are included in the response. This field should be in the ISO8601 date/time format.

lastUpdatedBefore
string <date-time>
Example: lastUpdatedBefore=2020-06-08T17:23:58Z

Shipments whose latest update is before the specified date/time are included in the response. This field should be in the ISO8601 date/time format.

maxResults
integer [ 1 .. 100 ]
Example: maxResults=10

Specify the maximum number of shipments to be included in the response.

paginationToken
string
Example: paginationToken=eyJsYXN0VXBkYXRlZFRpbWVzdGFtcCI6eyJzIjpLL

The nextToken value returned from a previous call to get shipments. Use this to retrieve the next page of shipments.

Responses

Response samples

Content type
application/json
{
  • "pagination": {
    },
  • "shipments": [
    ]
}

getShipment

Get a single shipment with the specified id.

path Parameters
shipmentId
required
string
Example: D1px1063T

The id of the shipment to be retrieved.

Responses

Response samples

Content type
application/json
{
  • "id": "D1px1063T",
  • "locationId": "ABCD",
  • "marketplaceAttributes": {
    },
  • "shipmentInfo": {
    },
  • "shipmentRequirements": {
    },
  • "invoiceInfo": {
    },
  • "partyInfoList": [
    ],
  • "charges": [
    ],
  • "status": "ACCEPTED",
  • "lineItems": [
    ],
  • "shippingInfo": {
    },
  • "packages": [
    ],
  • "creationDateTime": "2020-06-08T11:13:58Z",
  • "lastUpdatedDateTime": "2020-06-08T12:00:15Z"
}

shipmentProcessing

processShipment

Confirms/Rejects that a seller will be fulfilling or cancelling the specified shipment.

path Parameters
shipmentId
required
string

The id of the shipment which is to be confirmed for fulfillment.

query Parameters
operation
required
string
Enum: "CONFIRM" "REJECT"

The status in which shipment should be moved.

Request Body schema: application/json

The body of the request.

referenceId
string

A unique identifier for every shipment rejection raised by the caller.

required
Array of objects >= 0 items

Details about the line items from the shipment that are being confirmed/rejected by the seller.

Responses

Request samples

Content type
application/json
{
  • "referenceId": "string",
  • "lineItems": [
    ]
}

Response samples

Content type
application/json
{ }

createPackages

Provides details about the packages that will be used to fulfill the specified shipment.

path Parameters
shipmentId
required
string

The id of the shipment for which package information is being provided.

Request Body schema: application/json

The body of the request.

required
Array of objects (Package) non-empty

An array containing the description of the packages for shipment fulfillment.

Responses

Request samples

Content type
application/json
{
  • "packages": [
    ]
}

Response samples

Content type
application/json
{ }

updatePackage

Updates the details about the packages that will be used to fulfill the specified shipment.

path Parameters
shipmentId
required
string

The id of the shipment for which package information is being updated.

packageId
required
string

The id of the shipment for which package information is being updated.

Request Body schema: application/json

The body of the request.

id
required
string

An id provided by callers of the API that uniquely identifies a package within the scope a shipment.

required
object (PackageDimensions)

This type describes dimensions for a packages.

required
object (Weight)

Represents the weight of a package.

hazmatLabels
Array of strings >= 0 items

The optional list of Hazmat labels applied on the package.

required
Array of objects (PackageLineItems)

List of line items in a package.

status
string
Enum: "CREATED" "PICKUP_SLOT_RETRIEVED" "INVOICE_GENERATED" "SHIPLABEL_GENERATED" "SHIPPED" "DELIVERED" "CANCELLED"

The current status of the package.

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "dimensions": {
    },
  • "weight": {
    },
  • "hazmatLabels": [
    ],
  • "packageLineItems": [
    ],
  • "status": "CREATED"
}

Response samples

Content type
application/json
{ }

updatePackageStatus

Updates the status of the packages.

path Parameters
shipmentId
required
string

The id of the shipment for which package information is being updated.

packageId
required
string

The id of the shipment for which package information is being updated.

query Parameters
status
string
Value: "SHIPPED"

This field is deprecated. All the package status details should be defined in the body parameter.

Request Body schema: application/json

The body of the request.

status
string (PackageStatus)
Enum: "CREATED" "PICKUP_SLOT_RETRIEVED" "INVOICE_GENERATED" "SHIPLABEL_GENERATED" "SHIPPED" "DELIVERED"

Possible values of package status

subStatus
string (PackageSubStatus)
Enum: "OUT_FOR_DELIVERY" "DELIVERED" "NOT_DELIVERED" "UNDELIVERABLE"

Possible values of package status

reason
string <= 128 characters

The reason for the sub-status. Self Delivery, valid values are: OutForDelivery (when status=SHIPPED & subStatus=OUT_FOR_DELIVERY), DeliveredToCustomer/DeliveredToHouseholdMember/DeliveredToReception/DeliveredToSecurityGuard (when status=DELIVERED & subStatus=DELIVERED), CustomerNotAvailable/MissedDelivery/CustomerContactIssue (when status=SHIPPED & subStatus=NOT_DELIVERED), RejectedByCustomer/RejectedOrderDamaged (when status=SHIPPED & subStatus=UNDELIVERABLE)

Responses

Request samples

Content type
application/json
{
  • "status": "CREATED",
  • "subStatus": "OUT_FOR_DELIVERY",
  • "reason": "string"
}

Response samples

Content type
application/json
{ }

generateInvoice

Generates and retrieves invoices for the specified shipment.

path Parameters
shipmentId
required
string

The id of the shipment whose invoice is to be generated and retrieved.

Responses

Response samples

Content type
application/json
{
  • "document": {
    }
}

retrieveInvoice

Retrieves invoices for the specified shipment.

path Parameters
shipmentId
required
string

The id of the shipment whose invoice is to be retrieved.

Responses

Response samples

Content type
application/json
{
  • "document": {
    }
}

retrieveShippingOptions

An API for a client to retrieve an optional list of shippingOptions that marketplace/channel provides for the pickup of the packages of an shipment. This API will return a list of shippingOptions if the marketplace/channel provides transportation and allows the seller to choose a shippingOption. If the marketplace/channel does not allow for a shippingOption to be selected, but has a pre-determined shippingOption, then this API will return an empty response.

query Parameters
shipmentId
required
string

The id of the shipment for which available shipping option needs to be fetched.

packageId
required
string

The id of the package for which available shipping option needs to be fetched.

Responses

Response samples

Content type
application/json
{
  • "shippingOptions": [
    ],
  • "recommendedShippingOption": {
    }
}

generateShipLabels

Generates and retrieves all ship-labels for one or more packages in the specified shipment.

path Parameters
shipmentId
required
string

The id of the shipment whose ship-labels are to be generated and retrieved.

query Parameters
shippingOptionId
string

The id of the shippingOption for which the ship-labels are to be generated and retrieved.

operation
required
string
Enum: "GENERATE" "REGENERATE"

The operation which says it is generation or regeneration of label.

Request Body schema: application/json

Contains shipping details for the case where shipping is not done by marketplace channel.

packageIds
required
Array of strings <= 50 items

The subset of package-ids to generate label for in the current request. This field is mandatory and need to be supplied with every request.

object

The request entity provided by a client with the tracking details of the package if shipped by 3P courier. NOTE: This attribute should only be provided when the value of ShipBy Enum is THIRD_PARTY_CARRIER.

Responses

Request samples

Content type
application/json
{
  • "packageIds": [
    ],
  • "courierSupportedAttributes": {
    }
}

Response samples

Content type
application/json
{
  • "packageShipLabelList": [
    ]
}