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

> Create an FBA inbound plan on Amazon (single-step).

Access: **WRITE** · toolset amazon_sp · family sp.fulfillmentInbound_2024-03-20

Amazon SP-API · createInboundPlan · POST /inbound/fba/2024-03-20/inboundPlans Gate: approve — interactive: show the change (Amazon's preview first where one exists), wait for an explicit approve; autopilot: only when the seller's own words asked for this change; otherwise ask. Use it to run the steps one by one — Split First, an India (IN) plan (fbaInbound_orchestrate_packing fails there because IN has no packing options), or a re-plan; for an ordinary Box First plan prefer fbaInbound_orchestrate_packing. Box First and Split First create the plan the same way; they differ only in the next call (Box First: fbaInbound_generatePackingOptions; Split First: fbaInbound_generatePlacementOptions). The store ref sets destinationMarketplaces.

## Call it

MCP tool call:

```json
{
  "name": "fbaInbound_createInboundPlan",
  "arguments": {
    "store": "myStore-US",
    "plan_name": "<plan_name>",
    "source_address": {},
    "items": []
  }
}
```

Tool API (early access — contact us):

```bash
curl -X POST https://api.sellersheetai.com/api/v1/tools/fbaInbound_createInboundPlan \
  -H "Authorization: Bearer $SELLERSHEET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"store":"myStore-US","plan_name":"<plan_name>","source_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. |
| `plan_name` | string | yes | the plan's name, 1–40 characters. |
| `source_address` | object | yes | AddressInput. Required: name, addressLine1, city, countryCode (2-char ISO 3166-1 alpha-2), postalCode, phoneNumber. Optional: addressLine2, companyName, districtOrCounty, email, stateOrProvinceCode. |
| `items` | object[] | yes | list of item dicts, 1-2000 items. Each: msku (required, maxLength 255), quantity (required, 1-500000), labelOwner (required), prepOwner (required). Optional per item: expiration (YYYY-MM-DD), manufacturingLotCode. labelOwner (who applies FNSKU labels). Allowed: AMAZON \| SELLER \| NONE. prepOwner (who performs unit prep). Allowed: AMAZON \| SELLER \| NONE. prepOwner is region- and SKU-dependent live: AMAZON is refused in MENA (FBA_INB_0237 "Amazon does not provide prep service in the current region" — use SELLER), and a SKU that requires no prep refuses SELLER ("does not require prepOwner but SELLER was assigned" — use NONE). |

## Result

- `data.inboundPlanId` — write this to STA sheet immediately (38-char id).
- `data.operationId` — poll with fbaInbound_getInboundOperationStatus — creation is ASYNC (HTTP 202), so the plan is not usable until that operation reports SUCCESS.

## Body (Amazon schema)

- destinationMarketplaces*: [string] (exactly 1) (max 20 chars) items*: [{expiration, labelOwner*: AMAZON | SELLER | NONE, manufacturingLotCode (max 256 chars), msku* (max 255 chars), prepOwner*: AMAZON | SELLER | NONE, quantity* (1–500000)}] (1–2000) name: string (max 40 chars) sourceAddress*: {addressLine1* (max 180 chars), addressLine2 (max 60 chars), city* (max 30 chars), companyName (max 50 chars), countryCode* (2–2 chars), districtOrCounty (max 50 chars), email (max 1024 chars), name* (max 50 chars), phoneNumber* (max 20 chars), postalCode* (max 32 chars), stateOrProvinceCode (max 64 chars)}