fbaOutbound_createFulfillmentOrder
Create a Multi-Channel Fulfillment order — ships FBA inventory to a non-Amazon customer address.
writeAmazon Seller (SP-API)sp.fulfillmentOutbound_2020-07-01
IRREVERSIBLE spend: run fbaOutbound_getFulfillmentPreview first for the fees and isFulfillable, and confirm with the human before submitting. Amazon SP-API · createFulfillmentOrder · POST /fba/outbound/2020-07-01/fulfillmentOrders Gate: commit, fee-bearing — interactive: restate the amount, wait for a typed CONFIRM; autopilot: only within the seller's instruction and stated limits; otherwise ask.
Call it
In an AI client (MCP)
{
"name": "fbaOutbound_createFulfillmentOrder",
"arguments": {
"store": "myStore-US",
"seller_fulfillment_order_id": "<seller_fulfillment_order_id>",
"displayable_order_id": "<displayable_order_id>",
"displayable_order_date": "<displayable_order_date>",
"displayable_order_comment": "<displayable_order_comment>",
"shipping_speed_category": "Standard",
"destination_address": {},
"items": []
}
}From code (Tool API)
curl -X POST https://api.sellersheetai.com/api/v1/tools/fbaOutbound_createFulfillmentOrder \
-H "Authorization: Bearer $SELLERSHEET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"store":"myStore-US","seller_fulfillment_order_id":"<seller_fulfillment_order_id>","displayable_order_id":"<displayable_order_id>","displayable_order_date":"<displayable_order_date>","displayable_order_comment":"<displayable_order_comment>","shipping_speed_category":"Standard","destination_address":{},"items":[]}'Early access — the Tool API is open on request, contact us.
Arguments
| Name | Type | Description |
|---|---|---|
storerequired | string | the store ref `<store>-<CC>` (name-country, e.g. 'myStore-US') — one of get_user_context's store_refs, verbatim. |
seller_fulfillment_order_idrequired | string | your unique order id (≤40 chars). |
displayable_order_idrequired | string | the customer-facing order id on the packing slip (≤40). |
displayable_order_daterequired | string · date-time | ISO-8601 timestamp shown to the customer. |
displayable_order_commentrequired | string | text on the recipient materials (≤750). |
shipping_speed_categoryrequired | string | required — the speed to ship at; ScheduledDelivery also needs delivery_window. Allowed: Standard | Expedited | Priority | ScheduledDelivery.StandardExpeditedPriorityScheduledDelivery |
destination_addressrequired | object | {name, addressLine1, postalCode, countryCode (ISO alpha-2)} required, plus the usual address fields. |
itemsrequired | object[] | [{sellerSku (≤50), sellerFulfillmentOrderItemId (≤50, your own item id), quantity (int)} required; giftMessage (≤512), displayableComment (≤250), fulfillmentNetworkSku, perUnitDeclaredValue, perUnitPrice, perUnitTax (each a Money {currencyCode, value as a decimal string}) optional]. |
fulfillment_action | string | ship now or hold — Hold places an order hold, released later with fbaOutbound_updateFulfillmentOrder fulfillment_action Ship; Amazon cancels a held order after 14 days. Default: Ship.ShipHold |
fulfillment_policy | string | what happens to unfulfillable items — FillOrKill cancels the order if any item is unfulfillable; FillAll ships every fulfillable item and keeps the order open until the rest ship or are cancelled (on Ship it turns Unfulfillable or CompletePartialled after 24 h); FillAllAvailable ships what is available now. Default: FillOrKill.FillOrKillFillAllFillAllAvailable |
cod_settings | object | {isCodRequired (bool, required), codCharge, codChargeTax, shippingCharge, shippingChargeTax (each a Money)}. |
ship_from_country_code | string | ISO alpha-2 origin country. |
notification_emails | string[] | addresses to notify (each ≤64). |
feature_constraints | object[] | [{featureName, featureFulfillmentPolicy}] — featureName: BLOCK_AMZL (no Amazon Logistics; surcharge) | BLANK_BOX | OVERBOX | PACKING_SLIP | SIGNATURE_CONFIRMATION (US only; fee) | DELIVER_TOGETHER; featureFulfillmentPolicy: Required (reject the order if unavailable) | NotRequired. |
delivery_window | object | {startDate, endDate} for ScheduledDelivery. |
delivery_preferences | object | {deliveryInstructions (≤250), dropOffLocation: {type, attributes}} — JP marketplace only, applied best-effort. |
payment_information | object[] | [{paymentTransactionId, paymentMode, paymentDate (ISO-8601)}], all three required per record; required for India orders (as is items[].perUnitDeclaredValue). |
Result
Every tool answers {notification, data, human_action}; data carries:
data.sellerFulfillmentOrderId— the order to poll with fbaOutbound_getFulfillmentOrder — Amazon returns no other payload.
Body (Amazon schema)
marketplaceId: string
sellerFulfillmentOrderId*: string (max 40 chars)
displayableOrderId*: string (max 40 chars)
displayableOrderDate*: string (date-time)
displayableOrderComment*: string (max 750 chars)
shippingSpeedCategory*: Standard | Expedited | Priority | ScheduledDelivery
deliveryWindow: {startDate*, endDate*}
destinationAddress*: {name*, addressLine1*, addressLine2, addressLine3, city, districtOrCounty, stateOrRegion, postalCode*, countryCode*, phone}
deliveryPreferences: {deliveryInstructions (max 250 chars), dropOffLocation: {type*, attributes}}
deliveryPreferences.dropOffLocation.type: FRONT_DOOR | DELIVERY_BOX | GAS_METER_BOX | BICYCLE_BASKET | GARAGE | RECEPTIONIST | FALLBACK_NEIGHBOR_DELIVERY | DO_NOT_LEAVE_UNATTENDED
fulfillmentAction: Ship | Hold
fulfillmentPolicy: FillOrKill | FillAll | FillAllAvailable
codSettings: {isCodRequired*, codCharge: {currencyCode*, value*}, codChargeTax: {currencyCode*, value*},
shippingCharge: {currencyCode*, value*}, shippingChargeTax: {currencyCode*, value*}}
shipFromCountryCode: string
notificationEmails: [string] (max 64 chars)
featureConstraints: [{featureName, featureFulfillmentPolicy: Required | NotRequired}]
items*: [{sellerSku* (max 50 chars), sellerFulfillmentOrderItemId* (max 50 chars), quantity*, giftMessage (max 512 chars), displayableComment (max 250 chars), fulfillmentNetworkSku,
perUnitDeclaredValue: {currencyCode*, value*}, perUnitPrice: {currencyCode*, value*}, perUnitTax:
{currencyCode*, value*}}]
paymentInformation: [{paymentTransactionId*, paymentMode*, paymentDate*}]