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

> The transportation options + delivery windows for ONE placement option: the cheapest `limit` partnered options per shipping mode and, when named, one carrier type.

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

Nothing is selected — the HUMAN picks ONE transportationOptionId per shipment (+ ONE deliveryWindowOptionId for own carrier); then fbaInbound_confirm_plan_options with those ids. 30–60 s. Amazon SP-API · listPlacementOptions · GET /inbound/fba/2024-03-20/inboundPlans/{inboundPlanId}/placementOptions Amazon SP-API · generateTransportationOptions · POST /inbound/fba/2024-03-20/inboundPlans/{inboundPlanId}/transportationOptions Amazon SP-API · getInboundOperationStatus · GET /inbound/fba/2024-03-20/operations/{operationId} Amazon SP-API · listTransportationOptions · GET /inbound/fba/2024-03-20/inboundPlans/{inboundPlanId}/transportationOptions Amazon SP-API · getShipment · GET /inbound/fba/2024-03-20/inboundPlans/{inboundPlanId}/shipments/{shipmentId} Amazon SP-API · listShipmentBoxes · GET /inbound/fba/2024-03-20/inboundPlans/{inboundPlanId}/shipments/{shipmentId}/boxes Amazon SP-API · generateDeliveryWindowOptions · POST /inbound/fba/2024-03-20/inboundPlans/{inboundPlanId}/shipments/{shipmentId}/deliveryWindowOptions Amazon SP-API · listDeliveryWindowOptions · GET /inbound/fba/2024-03-20/inboundPlans/{inboundPlanId}/shipments/{shipmentId}/deliveryWindowOptions 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. Mode A: pass sta_spreadsheet_id and the server fills the picked STA-Options block; mode B: omit it. The answer is a view of Amazon's list (duplicates collapsed, constant fields dropped); data.counts carries Amazon's totals.

## Call it

MCP tool call:

```json
{
  "name": "fbaInbound_generate_shipment_options",
  "arguments": {
    "store": "myStore-US",
    "plan_id": "<plan_id>",
    "placement_option_id": "<placement_option_id>"
  }
}
```

Tool API (early access — contact us):

```bash
curl -X POST https://api.sellersheetai.com/api/v1/tools/fbaInbound_generate_shipment_options \
  -H "Authorization: Bearer $SELLERSHEET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"store":"myStore-US","plan_id":"<plan_id>","placement_option_id":"<placement_option_id>"}'
```

## 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_id` | string | yes | the inboundPlanId (from fbaInbound_createInboundPlan or fbaInbound_listInboundPlans). |
| `placement_option_id` | string | yes | the placementOptionId (from fbaInbound_listPlacementOptions). |
| `ship_date` | string |  | REQUIRED, YYYY-MM-DD — the ready-to-ship date (sent as readyToShipWindow.start). Amazon marks windows that start before it AVAILABLE: offer only windows starting on or after it (and the delivery-window start date, when given). |
| `pallet_info` | object |  | freight config for FREIGHT_* modes, sent on every shipment: {freightInformation: {declaredValue: {amount: N, code: 'USD'}, freightClass: 'FC_50'}, pallets: [{dimensions: {length, width, height, unitOfMeasurement: 'IN'\|'CM'}, weight: {value, unit: 'LB'\|'KG'}, quantity: N, stackability: 'STACKABLE'\|'NON_STACKABLE'}]}. freightClass. Allowed: NONE \| FC_50 \| FC_55 \| FC_60 \| FC_65 \| FC_70 \| FC_77_5 \| FC_85 \| FC_92_5 \| FC_100 \| FC_110 \| FC_125 \| FC_150 \| FC_175 \| FC_200 \| FC_250 \| FC_300 \| FC_400 \| FC_500. |
| `limit` | integer |  | the cheapest partnered options per shipping mode per shipment (default 3; 0 = all); own-carrier options are never capped. For a carrier not shown, read fbaInbound_listTransportationOptions. |
| `shipping_solution` | string |  | ONE carrier type, or empty for both; partnered-only skips the delivery windows unless a quote requires one. Allowed: AMAZON_PARTNERED_CARRIER \| USE_YOUR_OWN_CARRIER. |
| `shipping_mode` | string |  | the Shipping Mode GROUP (the plan's row 9), or empty for every mode; no match → that shipment's full list, and the notification says so. Allowed: SPD \| LTL / FTL. |
| `sta_spreadsheet_id` | string |  | the plan workbook's spreadsheet id (mode A); omit for mode B. |

## Result

- `data.placementFee / data.currency` — the picked placement's fee.
- `data.shipments` — [{shipmentId, warehouseId, destination, status, totals,
- `data.shipments.partnered` — [{transportationOptionId, shippingMode, carrierName, carrierCode, cost, currency, preconditions}] cheapest first; ownCarrier: [same, no cost]; deliveryWindows: [{deliveryWindowOptionId, startDate, endDate, availabilityType}] earliest first; deliveryWindowsValidUntil}].
- `data.counts` — {partnered, ownCarrier, deliveryWindows} — Amazon's totals.

## Params (Amazon schema; listPlacementOptions)

- inboundPlanId*: string (max 38 chars) pageSize: integer (1–20) paginationToken: string (max 1024 chars)

## Params (Amazon schema; generateTransportationOptions)

- inboundPlanId*: string (max 38 chars)

## Params (Amazon schema; getInboundOperationStatus)

- operationId*: string (max 38 chars)

## Params (Amazon schema; listTransportationOptions)

- inboundPlanId*: string (max 38 chars) pageSize: integer (1–20) paginationToken: string (max 1024 chars) placementOptionId: string (max 38 chars) shipmentId: string (max 38 chars)

## Params (Amazon schema; getShipment)

- inboundPlanId*: string (max 38 chars) shipmentId*: string (max 38 chars)

## Params (Amazon schema; listShipmentBoxes)

- inboundPlanId*: string (max 38 chars) … (11 more lines; the Docs link above)

## Body (Amazon schema; generateTransportationOptions)

- placementOptionId*: string (38–38 chars) shipmentTransportationConfigurations*: [{contactInformation: {email, name*, phoneNumber*}, freightInformation: {declaredValue, freightClass}, pallets: [{dimensions, quantity*, stackability, weight}], readyToShipWindow*: {start*}, shipmentId* (38–38 chars)}] (min 1) shipmentTransportationConfigurations.pallets.dimensions.unitOfMeasurement: IN | CM shipmentTransportationConfigurations.pallets.stackability: STACKABLE | NON_STACKABLE shipmentTransportationConfigurations.pallets.weight.unit: LB | KG