# fbaOutbound_createFulfillmentOrder (https://sellersheetai.com/docs/mcp-api/tools/fbaOutbound_createFulfillmentOrder)

> Create a Multi-Channel Fulfillment order — ships FBA inventory to a non-Amazon customer address.

Access: **WRITE** · toolset amazon_sp · family 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

MCP tool call:

```json
{
  "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": []
  }
}
```

Tool API (early access — contact us):

```bash
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":[]}'
```

## Arguments

| Name | Type | Required | Description |
|---|---|---|---|
| `store` | string | yes | the store ref `<store>-<CC>` (name-country, e.g. 'myStore-US') — one of get_user_context's store_refs, verbatim. |
| `seller_fulfillment_order_id` | string | yes | your unique order id (≤40 chars). |
| `displayable_order_id` | string | yes | the customer-facing order id on the packing slip (≤40). |
| `displayable_order_date` | string · date-time | yes | ISO-8601 timestamp shown to the customer. |
| `displayable_order_comment` | string | yes | text on the recipient materials (≤750). |
| `shipping_speed_category` | string | yes | required — the speed to ship at; ScheduledDelivery also needs delivery_window. Allowed: Standard \| Expedited \| Priority \| ScheduledDelivery. Allowed: Standard \| Expedited \| Priority \| ScheduledDelivery. |
| `destination_address` | object | yes | {name, addressLine1, postalCode, countryCode (ISO alpha-2)} required, plus the usual address fields. |
| `items` | object[] | yes | [{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. Allowed: Ship \| Hold. |
| `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. Allowed: FillOrKill \| FillAll \| FillAllAvailable. |
| `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

- `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*}]