> Note: This page is part of the DataDoe Docs. You can find the root of the documentation at `https://www.datadoe.com/hub/docs/basics/introduction-to-datadoe`.
> JSON Table of Contents: `https://www.datadoe.com/hub/docs/toc.json`.
> Data Scheme (Markdown index, one page per table): https://api.datadoe.com/api/v1/spec/data-scheme.md. Full JSON: https://api.datadoe.com/api/v1/spec/data-scheme.
> Actions (Markdown, every Action type with limits and group guides): https://api.datadoe.com/api/v1/spec/action-scheme.md. Full JSON with input schemas: https://api.datadoe.com/api/v1/spec/action-scheme.
> Other pages in the DataDoe Docs:
> - DataDoe Basics/Benefits: `https://www.datadoe.com/hub/docs/basics/benefits.md`
> - DataDoe Basics/Connecting Accounts: `https://www.datadoe.com/hub/docs/basics/connecting-accounts.md`
> - DataDoe Basics/External Invitation Links: `https://www.datadoe.com/hub/docs/basics/external-invitation-links.md`
> - DataDoe Basics/Groups: `https://www.datadoe.com/hub/docs/basics/groups.md`
> - DataDoe Basics/Integrations: `https://www.datadoe.com/hub/docs/basics/integration-customization.md`
> - DataDoe Basics/Introduction to DataDoe: `https://www.datadoe.com/hub/docs/basics/introduction-to-datadoe.md`
> - DataDoe Basics/Keys and service accounts: `https://www.datadoe.com/hub/docs/basics/keys-and-service-accounts.md`
> - DataDoe Basics/Roles and permissions: `https://www.datadoe.com/hub/docs/basics/roles-and-permissions.md`
> - DataDoe Basics/Subscription and pricing: `https://www.datadoe.com/hub/docs/basics/subscription-pricing.md`
> - DataDoe Basics/Users and access: `https://www.datadoe.com/hub/docs/basics/access-user-management.md`
> - DataDoe Data/Ads Product Catalog: `https://www.datadoe.com/hub/docs/datadoe-data/ads-product-catalog.md`
> - DataDoe Data/Amazon Ads Partner Opportunities: `https://www.datadoe.com/hub/docs/datadoe-data/amazon-ads-partner-opportunities.md`
> - DataDoe Data/Data Fetch Periods: `https://www.datadoe.com/hub/docs/datadoe-data/data-fetch-periods.md`
> - DataDoe Data/Data Sources: `https://www.datadoe.com/hub/docs/datadoe-data/data-sources.md`
> - DataDoe Data/Initial Loads: `https://www.datadoe.com/hub/docs/datadoe-data/initial-loads.md`
> - DataDoe Data/Managing Data Tables: `https://www.datadoe.com/hub/docs/datadoe-data/managing-data-tables.md`
> - DataDoe Data/Migrating from SellerBoard: `https://www.datadoe.com/hub/docs/datadoe-data/migrating-from-sellerboard.md`
> - DataDoe Data/SAT migration to profit tables: `https://www.datadoe.com/hub/docs/datadoe-data/sat-migration-to-profit-tables.md`
> - DataDoe Data/SQP Data: `https://www.datadoe.com/hub/docs/datadoe-data/search-query-performance.md`
> - DataDoe Data/Timezones: `https://www.datadoe.com/hub/docs/datadoe-data/orders-purchase-date-timezones.md`
> - DataDoe Data/Uploading COGS: `https://www.datadoe.com/hub/docs/datadoe-data/uploading-cogs.md`
> - DataDoe Data/Uploading KDP Royalty Parameters: `https://www.datadoe.com/hub/docs/datadoe-data/uploading-kdp-royalty-parameters.md`
> - DataDoe Data/Uploading Vendor Codes: `https://www.datadoe.com/hub/docs/datadoe-data/uploading-vendor-codes.md`
> - DataDoe Features/Actions: `https://www.datadoe.com/hub/docs/datadoe-features/actions.md`
> - DataDoe Features/Actions - Amazon Ads for KDP Authors: `https://www.datadoe.com/hub/docs/datadoe-features/actions-kdp-authors.md`
> - DataDoe Features/Actions - FBA eligibility and listing restrictions: `https://www.datadoe.com/hub/docs/datadoe-features/actions-amazon-eligibility.md`
> - DataDoe Features/Actions: Amazon Images: `https://www.datadoe.com/hub/docs/datadoe-features/actions-manage-images.md`
> - DataDoe Features/Amazon Marketing Cloud: `https://www.datadoe.com/hub/docs/datadoe-features/amc.md`
> - DataDoe Features/AMC query templates: `https://www.datadoe.com/hub/docs/datadoe-features/amc-query-templates.md`
> - DataDoe Features/Features Overview: `https://www.datadoe.com/hub/docs/datadoe-features/overview.md`
> - DataDoe Features/Files: `https://www.datadoe.com/hub/docs/datadoe-features/files.md`
> - DataDoe Features/Plugins: `https://www.datadoe.com/hub/docs/datadoe-features/plugins.md`
> - DataDoe Features/Usage Logs: `https://www.datadoe.com/hub/docs/datadoe-features/usage-logs.md`
> - DataDoe Features/Webhooks: `https://www.datadoe.com/hub/docs/datadoe-features/webhooks.md`
> - DataDoe MCP/Overview: `https://www.datadoe.com/hub/docs/datadoe-mcp/overview.md`
> - DataDoe MCP/Using Antigravity: `https://www.datadoe.com/hub/docs/datadoe-mcp/antigravity.md`
> - DataDoe MCP/Using ChatGPT: `https://www.datadoe.com/hub/docs/datadoe-mcp/chatgpt.md`
> - DataDoe MCP/Using Claude: `https://www.datadoe.com/hub/docs/datadoe-mcp/claude.md`
> - DataDoe MCP/Using Claude Agent SDK: `https://www.datadoe.com/hub/docs/datadoe-mcp/claude-agents-sdk.md`
> - DataDoe MCP/Using Claude Code: `https://www.datadoe.com/hub/docs/datadoe-mcp/claude-code.md`
> - DataDoe MCP/Using Codex: `https://www.datadoe.com/hub/docs/datadoe-mcp/codex.md`
> - DataDoe MCP/Using Codex Sites: `https://www.datadoe.com/hub/docs/datadoe-mcp/codex-sites.md`
> - DataDoe MCP/Using CrewAI: `https://www.datadoe.com/hub/docs/datadoe-mcp/crewai.md`
> - DataDoe MCP/Using Cursor: `https://www.datadoe.com/hub/docs/datadoe-mcp/cursor.md`
> - DataDoe MCP/Using Excel + Claude: `https://www.datadoe.com/hub/docs/datadoe-mcp/excel.md`
> - DataDoe MCP/Using Gemini CLI: `https://www.datadoe.com/hub/docs/datadoe-mcp/gemini-cli.md`
> - DataDoe MCP/Using Genspark: `https://www.datadoe.com/hub/docs/datadoe-mcp/genspark.md`
> - DataDoe MCP/Using Glama: `https://www.datadoe.com/hub/docs/datadoe-mcp/glama-chat.md`
> - DataDoe MCP/Using Glama MCP Inspector: `https://www.datadoe.com/hub/docs/datadoe-mcp/glama.md`
> - DataDoe MCP/Using Grok: `https://www.datadoe.com/hub/docs/datadoe-mcp/grok.md`
> - DataDoe MCP/Using GrokBot: `https://www.datadoe.com/hub/docs/datadoe-mcp/grokbot.md`
> - DataDoe MCP/Using Gumloop: `https://www.datadoe.com/hub/docs/datadoe-mcp/gumloop.md`
> - DataDoe MCP/Using Hermes Agent: `https://www.datadoe.com/hub/docs/datadoe-mcp/hermes.md`
> - DataDoe MCP/Using Littlebird: `https://www.datadoe.com/hub/docs/datadoe-mcp/littlebird.md`
> - DataDoe MCP/Using n8n: `https://www.datadoe.com/hub/docs/datadoe-mcp/n8n.md`
> - DataDoe MCP/Using NanoClaw: `https://www.datadoe.com/hub/docs/datadoe-mcp/nanoclaw.md`
> - DataDoe MCP/Using OpenAI Agents SDK: `https://www.datadoe.com/hub/docs/datadoe-mcp/openai-agents-sdk.md`
> - DataDoe MCP/Using OpenClaw: `https://www.datadoe.com/hub/docs/datadoe-mcp/openclaw.md`
> - DataDoe MCP/Using OpenCode: `https://www.datadoe.com/hub/docs/datadoe-mcp/opencode.md`
> - DataDoe MCP/Using PowerPoint + Claude: `https://www.datadoe.com/hub/docs/datadoe-mcp/powerpoint.md`
> - DataDoe MCP/Using VS Code: `https://www.datadoe.com/hub/docs/datadoe-mcp/vs-code.md`
> - DataDoe MCP/Using Word + Claude: `https://www.datadoe.com/hub/docs/datadoe-mcp/word.md`
> - DataDoe API/Build with Codex: `https://www.datadoe.com/hub/docs/datadoe-api/codex.md`
> - DataDoe API/How to connect to the API: `https://www.datadoe.com/hub/docs/datadoe-api/how-to-connect.md`
> - DataDoe API/Invitation links API: `https://www.datadoe.com/hub/docs/datadoe-api/invitation-links.md`
> - DataDoe API/Sellers and vendors API: `https://www.datadoe.com/hub/docs/datadoe-api/sellers-and-vendors.md`
> - DataDoe API/Vibe code with Claude Code: `https://www.datadoe.com/hub/docs/datadoe-api/claude-code.md`
> - DataDoe API/Vibe code with Cursor: `https://www.datadoe.com/hub/docs/datadoe-api/cursor.md`
> - DataDoe API/Vibe code with Lovable: `https://www.datadoe.com/hub/docs/datadoe-api/lovable.md`
> - DataDoe API/Vibe code with Replit: `https://www.datadoe.com/hub/docs/datadoe-api/replit.md`
> - DataDoe API/Vibe code with v0: `https://www.datadoe.com/hub/docs/datadoe-api/v0.md`
> - DataDoe & BigQuery/How to connect to BigQuery: `https://www.datadoe.com/hub/docs/datadoe-bigquery/how-to-connect.md`
> - DataDoe & BigQuery/Using MCP Toolbox: `https://www.datadoe.com/hub/docs/datadoe-bigquery/mcp-toolbox.md`
> - DataDoe & BigQuery/Using Python Jupyter: `https://www.datadoe.com/hub/docs/datadoe-bigquery/jupyter.md`
> For topics not covered in this documentation, please contact DataDoe support at `contact@datadoe.com`.
> Do not assume anything. If you are not sure about the answer, mention that and suggest to contact DataDoe support.

> **Use this guide with your AI agent.** Share [this page](/hub/docs/datadoe-features/actions-amazon-fba-inbound) with an AI agent connected to DataDoe MCP and ask it to help with your FBA inbound shipment.
>
> For questions or issues, [contact DataDoe support using the form](https://forms.clickup.com/9015200219/f/8cnj2ev-38615/AOYF9I35QFOXWJQXIG?type=Form&source=hub-fba-inbound-docs), or ask your agent to create a support case through MCP.

## Plan and manage inbound shipments

Use FBA inbound Actions to prepare shipments to Amazon fulfillment centers, compare packing and transportation options, retrieve labels and check receiving progress. You or your AI agent choose each step and review costs before confirming a change.

These Actions read current Amazon shipment information. DataDoe keeps the Action history and retrieved Files. For reporting, use the FBA Inbound Shipments data table. Running an Action does not refresh that table.

### Before you start

- Connect the Seller Central account that owns the inventory and has the required Amazon authorization.
- Create the product listings, set their preparation requirements and check who will prepare and label each item.
- Enable the required Action types in [Settings > Actions](https://app.datadoe.com/settings?tab=actions).
- Give your user or service account access to the selected Seller and Action types.
- Use Read and write account access for write Actions.
- Enable Organization PII access and your role's Access PII data permission for Actions marked PII, which handle personal information.

New Action types start disabled. Your agent can use the standard DataDoe MCP connection or the REST API. The readonly MCP connection does not provide these Actions. See [Actions permissions and billing](/hub/docs/datadoe-features/actions).

### Choose a starting point

- For an existing plan, ask your agent to find it and read its current status before making changes.
- For a new plan, provide the destination marketplace, source address, SKUs, quantities and preparation and labeling choices.
- Use Pack First when you already know the carton contents and dimensions.
- Use Pack Later for supported freight shipments whose carton details will be added later.
- Follow the India workflow for shipments to Amazon fulfillment centers in India.

Your agent should check the available options for your account and marketplace. Arrange carrier pickup and fulfillment-center appointments separately when required.

## Submit one Amazon operation

Each Action performs one shipment task, such as creating a plan or confirming a placement option. Your agent can find the available Actions, permissions, input fields and results in the [FBA inbound section of the Actions explorer](/hub/actions#group-fba-inbound).

One Action counts as one execution item, including requests with several items or shipments. DataDoe's checks and automatic progress updates do not create additional Action charges. Starting another Action to read a page or check an operation follows normal billing.

### Validate without calling Amazon

Ask your agent to validate the request with `dryRun: true` before running it. A successful check returns `VALIDATED` without creating or charging for an Action. It checks permissions and request fields. Amazon availability, eligibility, fees and acceptance are checked when the Action runs.

## Read results and resume safely

Keep the Action ID returned when you start a request. Ask your agent to read that Action with `actions_get` to see progress, results and any errors.

Some Amazon changes take time. `WAITING_EXTERNAL_PROCESSING` means Amazon is still processing the request. Wait for completion before continuing. DataDoe checks the same operation automatically for up to 24 hours. Reaching that limit does not mean Amazon rejected the change.

If a request fails or its outcome is uncertain, read the error and current Amazon state before trying again. Creating a new request can repeat a change Amazon already accepted.

### Recover an uncertain request

There are two recovery paths:

1. If an Amazon operation ID was returned, ask your agent to run `AMAZON_FBA_INBOUND_OPERATIONS_GET` on the same Seller connection and inspect the Amazon status. Wait while it is `IN_PROGRESS`. A final `SUCCESS` or `FAILED` result releases the stopped operation so later changes can proceed.
2. If no operation ID was returned and the Action stopped with `AMAZON_SUBMISSION_UNKNOWN`, check the plan in Amazon through read Actions or Seller Central. Once you understand what happened, ask your agent to acknowledge the original Action with `actions_acknowledge` and explain what you checked.

Acknowledgment allows later changes to proceed. It does not establish that the original request succeeded, repeat it or charge for another Action. It requires the original account and Action permissions. It is only available for stopped uncertain requests without an operation ID.

The Action that checks an operation can complete even when Amazon reports that the original operation is still running or failed. Your agent must inspect Amazon's result before continuing. Contact support if you cannot determine the outcome.

## Follow the appropriate workflow

Your agent should create options, wait until Amazon finishes, then list and compare them. In the steps below, shortened Action names such as `PLANS_ADD` use the full prefix `AMAZON_FBA_INBOUND_`.

### Pack First

```mermaid
flowchart TD
  A[Create plan] --> B[Generate and list packing options]
  B --> C[Inspect groups and confirm packing]
  C --> D[Set group-level packing]
  D --> E[Generate and list placement]
  E --> F[Compare transport choices]
  F --> G[Confirm selected placement]
  G --> H[Confirm required delivery window]
  H --> I[Confirm selected transport]
  I --> J[Documents and tracking]
```

1. Create the plan with the source address, destination marketplace, SKUs, quantities and preparation and labeling choices.
2. Generate packing options, wait for them, then compare the packing groups, fees and discounts.
3. Confirm the chosen packing option and provide carton contents, dimensions and weights for each packing group.
4. Generate placement options and compare the shipment splits and available transportation choices.
5. Confirm the placement you choose and save the resulting shipment IDs.
6. Confirm any required delivery windows, then confirm transportation for each shipment.
7. Retrieve the required documents, arrange pickup and appointments, and provide tracking information.

Before creating a plan, your agent can use PREP_DETAILS_FIND to check preparation requirements. Missing setup must be configured through PREP_DETAILS_SET or Seller Central before the plan can proceed.

A box quantity represents identical cartons. Four units per carton with a box quantity of three means 12 units. If you choose barcode-based or manual box-content information, follow Amazon's requirements for that method. Manual processing can incur fees.

### Pack Later

| Step             | Action and information to retain                                                                                     |
| ---------------- | -------------------------------------------------------------------------------------------------------------------- |
| Create           | PLANS_ADD, save plan and operation IDs                                                                               |
| Choose placement | PLACEMENT_OPTIONS_GENERATE, wait, FIND and inspect the offered freight flow, then CONFIRM the selected option        |
| Provide cartons  | PACKING_INFORMATION_SET using the modern shipmentId for each shipment                                                |
| Select transport | TRANSPORTATION_OPTIONS_GENERATE, wait and FIND, confirm required delivery windows, then confirm the chosen transport |
| Finish           | Applicable documents, tracking and external logistics                                                                |

Use this sequence only for the supported unknown-carton freight flow. Do not promise small parcel support or silently select manual box processing.

### India

| Step              | Partnered carrier and self-ship steps                                                                             |
| ----------------- | ----------------------------------------------------------------------------------------------------------------- |
| Prepare           | Inspect/set the required item compliance and prep information                                                     |
| Create            | PLANS_ADD with the India marketplace and approved source address and items                                        |
| Place             | Generate placement options, including customPlacement for eligible FCs when required, then list the options       |
| Pack              | Provide shipment-level carton information before placement confirmation, as required by the India guide           |
| Confirm           | Confirm the chosen placement, then generate/list and choose the applicable transportation options                 |
| Partnered carrier | Complete the supported partnered flow and retrieve the delivery challan when available                            |
| Self-ship         | Generate slots, wait, GET slots, select a slot and schedule it, or cancel an appointment with its required reason |

Do not call PACKING_OPTIONS_GENERATE for India. Do not apply India self-ship scheduling to partnered carriers or other marketplaces. Amazon determines fulfillment-center eligibility and program requirements.

### Carrier choices

For partnered parcel shipping, compare the carrier, shipping method, program, fee, currency and expiry before selecting an option. Confirm the choice and retrieve shipment labels. Check whether pickup must be arranged externally.

Partnered freight can require pallets, stackability, declared value, freight class, contact information and ready-to-ship windows. Preserve the supplied units and amounts. Retrieve a bill of lading only when Amazon makes it available for the selected shipment.

Non-partnered parcel or freight can require delivery-window confirmation before transportation confirmation. Provide a tracking number for each parcel, or the freight tracking and bill-of-lading details required by the carrier. A delivery window does not book a fulfillment-center appointment. Confirm who will arrange pickup and appointments.

Mixed shipments and recommended packing use the shipping modes and programs Amazon actually offers. An option listed in a request form does not mean it is available for your account. Preserve packing discounts and all returned currencies.

### Modify, cancel or resume

To change shipment contents after choosing transport, ask your agent to preview the full replacement contents. Review changes to costs and transportation before confirming. Supply the complete intended list of items and boxes. Read the updated shipment and retrieve new documents when needed.

Use the dedicated name, source-address, tracking, prep and compliance operations for other supported changes. Amazon can restrict post-confirmation edits. Source or packing changes can invalidate earlier options; inspect and explicitly regenerate them instead of assuming old choices still apply.

To cancel a plan, inspect all its shipments and Amazon's cancellation terms before confirming PLANS_CANCEL. Cancellation applies to the plan. An active plan can still contain shipments that have already shipped or closed. DataDoe refuses cancellation when any shipment has shipped or entered transit, delivery, receiving or closed status. Check Amazon's cancellation and charge-voiding options for those shipments. Never batch-cancel old plans automatically.

Resume with current reads and the original operation ID. Use the legacy shipment reads to check quantities shipped and received when current shipment reads do not provide them. Reading an old shipment does not make it editable.

## Review costs before choosing

Review the shipment split, destinations, carrier, shipping method, fees, discounts, currency and option expiry before confirming. A missing fee does not mean the option is free.

Packing, manual processing, placement, transportation, content changes and cancellation can affect costs. Your agent should ask for your decision before making these commitments. Check Amazon's current cancellation terms and the expiry shown on each option.

## Retrieve and reprint documents

Ask your agent for the document you need, such as item labels, box or pallet labels, a bill of lading or an India delivery challan. Generating shipment labels can advance the shipment to `READY_TO_SHIP`, so that Action requires write access.

DataDoe retains generated Files for one week. Download links last at most 5 minutes. To get a fresh link, read the original Action again with `actions_get`. This checks your current access and does not regenerate the document or charge for another Action. The general Files tools do not retrieve these shipment documents.

Keep the package selection and label format appropriate for your shipment. If document retrieval fails, retain the plan and shipment IDs and read the Action's error. Do not repeat a shipment creation or confirmation just to recover a document.

## Pagination and large payloads

List Actions return one page at a time. If Amazon returns a continuation token, your agent should repeat the same filters with that token to read the next page. An empty page can still have a next-page token.

Use the current Action schema for item and carton limits. Keep a shipment request together. If your MCP client cannot send a large request, use the REST API rather than silently dropping items or splitting it into several plans.

## Troubleshoot a request

| Problem                           | Recovery                                                                                                          |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Incorrect shipment ID             | Use the shipment ID returned for the operation; labels and bills of lading need the FBA confirmation ID           |
| Packing total mismatch            | Multiply item quantities by identical-box quantity and compare with current group/shipment contents               |
| Missing prep or owner constraints | Read preparation requirements and configure missing setup before creating the plan                                |
| Generation already running        | Inspect the returned Action and operation ID, wait for completion and do not submit another generation            |
| Expired option still OFFERED      | Regenerate explicitly, wait, list again and obtain a new seller choice                                            |
| No compatible transport           | Inspect Amazon's offered modes/programs and account requirements, then use supported external logistics if needed |
| Missing delivery window           | Generate/list and confirm an available window for the required shipment before confirming transport               |
| Authorization or role error       | Verify seller authorization, application roles, Organization enablement and your account and PII permissions      |
| Content update rejected           | Re-read current contents and restrictions, generate a valid full replacement preview and inspect its impact       |
| Unknown submission                | Reconcile live resources and the original Action before another write                                             |
| Still pending after 24 hours      | Keep the operation ID, run OPERATIONS_GET and inspect Amazon's status before continuing                           |
| Document download failed          | Preserve successful upstream identifiers and recover the document without repeating a business commitment         |
| Inaccessible Seller Central draft | Use supported API reads and the Amazon guidance on when a plan becomes available in Send to Amazon                |

## Limitations and sources

These Actions support Seller Central FBA inbound shipments. Vendor Central, Amazon Warehousing and Distribution, Global Logistics, Multi-Channel Fulfillment and removal orders use other features.

DataDoe does not support creating inbound plans in Brazil. Custom placement is available only in India.

Available carriers, shipment methods and fulfillment centers depend on the marketplace and account. Different expiration dates for the same SKU require separate plans. DataDoe does not split plans automatically.

Some steps still require Seller Central or your carrier, including pickup, many appointments and receiving disputes. These Actions do not force a shipment to shipped or received, close it, or request reimbursement.

Check Amazon's guidance before switching between an API-created plan and Send to Amazon. Switching too early can change or discard options, and some plans are not yet available for editing in Seller Central.

Use Amazon's guides for marketplace requirements and the steps available for your shipment:

- [Amazon Fulfillment Inbound overview](https://developer-docs.amazon.com/sp-api/docs/fulfillment-inbound-api).
- [Create an inbound shipment](https://developer-docs.amazon.com/sp-api/docs/create-an-inbound-shipment).
- [Partnered carrier workflows](https://developer-docs.amazon.com/sp-api/docs/create-amazon-partnered-carrier-shipment).
- [Non-partnered carrier workflows](https://developer-docs.amazon.com/sp-api/docs/create-non-partnered-carrier-shipment).
- [India inbound workflow](https://developer-docs.amazon.com/sp-api/docs/ship-inventory-to-india-fc).
- [Additional inbound functionality](https://developer-docs.amazon.com/sp-api/docs/additional-functionality-fulfillment-inbound).
- [Migration and retained legacy workflows](https://developer-docs.amazon.com/sp-api/docs/migrating-fulfillment-inbound-workflows).
- [Pinned Amazon API models](https://github.com/amzn/selling-partner-api-models/tree/8e429486005c4ebdce5099e48cc48515a65359bb/models/fulfillment-inbound-api-model).

## Keep identifiers distinct

| Identifier               | Source and use                                                                                        |
| ------------------------ | ----------------------------------------------------------------------------------------------------- |
| `sellerOrVendorId`       | The selected Seller account returned by DataDoe                                                       |
| `inboundPlanId`          | PLANS_ADD response or a PLANS_FIND record, the plan ID returned by Amazon                             |
| `shipmentId`             | PLANS_GET, placement options or SHIPMENTS_GET, the modern `sh...` identifier                          |
| `shipmentConfirmationId` | SHIPMENTS_GET after placement confirmation, the `FBA...` ID used by legacy labels and bills of lading |
| `amazonReferenceId`      | SHIPMENTS_GET, an Amazon reference for the applicable freight/appointment process                     |
| `packingGroupId`         | PACKING_OPTIONS_FIND, a group from the selected packing option                                        |
| `packingOptionId`        | PACKING_OPTIONS_FIND, the packing choice to confirm                                                   |
| `placementOptionId`      | PLACEMENT_OPTIONS_FIND, the selected split and destinations                                           |
| `transportationOptionId` | TRANSPORTATION_OPTIONS_FIND, an option for its specific shipment                                      |
| `deliveryWindowOptionId` | DELIVERY_WINDOWS_FIND, an available window for its specific shipment                                  |
| `contentUpdatePreviewId` | Content update preview generation and reads, the full replacement preview to inspect and confirm      |
| `slotId`                 | SELF_SHIP_APPOINTMENT_SLOTS_GET, an applicable India self-ship slot                                   |
| `boxId`                  | Shipment box reads, used for box tracking and applicable label selection                              |
| `packageId`              | Box responses, preserved separately from the box identifier                                           |
| `operationId`            | The ID returned for a change that Amazon processes in the background                                  |

Use `shipmentConfirmationId`, the ID beginning with `FBA`, for shipment labels and bills of lading. Use the current `shipmentId` for other shipment operations. Copy IDs from the response that created or listed the resource.

## Request examples

This reference is for AI agents and API users. You can skip it when asking your agent to manage a shipment. The [Actions explorer](/hub/actions#group-fba-inbound) lists all 50 operations, their required permissions, input fields and results.

Start with the examples for [creating a plan](#request-plans-add), [providing packing information](#request-packing-information-set) or [confirming transportation](#request-transportation-options-confirm).

Use `actions_details_schema_get` to load the current schema before composing a request. MCP starts requests with `actions_start`; the REST endpoint is `POST /api/v1/actions`. Keep the parameter names and capitalization shown in the schema. Supply raw SKU values, including any percent signs, plus signs or commas; DataDoe handles their encoding.

For REST users, read progress and refresh document links with `GET /api/v1/actions/{actionId}`. Acknowledge a stopped uncertain request without an operation ID through `POST /api/v1/actions/{actionId}/acknowledge`, with an `explanation` of what you checked. MCP uses `actions_acknowledge` for the same recovery step.

To contact DataDoe support from MCP, ask your agent to use `datadoe_support_ticket_create`. It can read replies with `datadoe_support_ticket_check` and add information with `datadoe_support_ticket_update`. Include the Action ID and error when reporting a shipment issue.

The examples use fictional account and shipment IDs and keep `dryRun: true`. Replace them with values for your account, actual quantities and approved addresses. Replace dates in 2099 with appropriate future dates. A valid example does not establish Amazon eligibility or approval.

When retrying the same DataDoe request, reuse its `idempotencyKey` if one was supplied. Use a new key for a new intended operation. After an uncertain result, follow the recovery steps above before submitting another change.

### Request plans-find

`AMAZON_FBA_INBOUND_PLANS_FIND` calls listInboundPlans. The Amazon response includes `inboundPlans`, `pagination`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PLANS_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {}
}
```

### Request plans-add

`AMAZON_FBA_INBOUND_PLANS_ADD` uses createInboundPlan. The Amazon response includes `inboundPlanId`, `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PLANS_ADD",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "body": {
            "destinationMarketplaces": ["ATVPDKIKX0DER"],
            "items": [
                {
                    "labelOwner": "SELLER",
                    "msku": "EXAMPLE-SKU",
                    "prepOwner": "SELLER",
                    "quantity": 1
                }
            ],
            "sourceAddress": {
                "addressLine1": "Example",
                "city": "Example",
                "countryCode": "US",
                "name": "Example",
                "phoneNumber": "+12025550123",
                "postalCode": "98101"
            }
        }
    }
}
```

### Request plans-get

`AMAZON_FBA_INBOUND_PLANS_GET` uses getInboundPlan. The Amazon response includes `createdAt`, `inboundPlanId`, `lastUpdatedAt`, `marketplaceIds`, `name`, `packingOptions`, `placementOptions`, `shipments`, `sourceAddress`, `status`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PLANS_GET",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request plan-boxes-find

`AMAZON_FBA_INBOUND_PLAN_BOXES_FIND` calls listInboundPlanBoxes. The Amazon response includes `boxes`, `pagination`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PLAN_BOXES_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request plans-cancel

`AMAZON_FBA_INBOUND_PLANS_CANCEL` uses cancelInboundPlan. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PLANS_CANCEL",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request plan-items-find

`AMAZON_FBA_INBOUND_PLAN_ITEMS_FIND` calls listInboundPlanItems. The Amazon response includes `items`, `pagination`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PLAN_ITEMS_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request plan-name-update

`AMAZON_FBA_INBOUND_PLAN_NAME_UPDATE` uses updateInboundPlanName. The Amazon response includes no response body.

```json
{
    "type": "AMAZON_FBA_INBOUND_PLAN_NAME_UPDATE",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        },
        "body": {
            "name": "Example"
        }
    }
}
```

### Request packing-group-boxes-find

`AMAZON_FBA_INBOUND_PACKING_GROUP_BOXES_FIND` calls listPackingGroupBoxes. The Amazon response includes `boxes`, `pagination`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PACKING_GROUP_BOXES_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "packingGroupId": "pg00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request packing-group-items-find

`AMAZON_FBA_INBOUND_PACKING_GROUP_ITEMS_FIND` calls listPackingGroupItems. The Amazon response includes `items`, `pagination`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PACKING_GROUP_ITEMS_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "packingGroupId": "pg00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request packing-information-set

`AMAZON_FBA_INBOUND_PACKING_INFORMATION_SET` uses setPackingInformation. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PACKING_INFORMATION_SET",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        },
        "body": {
            "packageGroupings": [
                {
                    "boxes": [
                        {
                            "contentInformationSource": "BOX_CONTENT_PROVIDED",
                            "dimensions": {
                                "height": 1,
                                "length": 1,
                                "unitOfMeasurement": "IN",
                                "width": 1
                            },
                            "quantity": 1,
                            "weight": {
                                "unit": "LB",
                                "value": 1
                            },
                            "items": [
                                {
                                    "msku": "EXAMPLE-SKU",
                                    "quantity": 1,
                                    "prepOwner": "SELLER",
                                    "labelOwner": "SELLER"
                                }
                            ]
                        }
                    ],
                    "packingGroupId": "pg00000000-0000-4000-8000-000000000001"
                }
            ]
        }
    }
}
```

### Request packing-options-find

`AMAZON_FBA_INBOUND_PACKING_OPTIONS_FIND` calls listPackingOptions. The Amazon response includes `packingOptions`, `pagination`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PACKING_OPTIONS_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request packing-options-generate

`AMAZON_FBA_INBOUND_PACKING_OPTIONS_GENERATE` uses generatePackingOptions. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PACKING_OPTIONS_GENERATE",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request packing-options-confirm

`AMAZON_FBA_INBOUND_PACKING_OPTIONS_CONFIRM` uses confirmPackingOption. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PACKING_OPTIONS_CONFIRM",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "packingOptionId": "pk00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request plan-pallets-find

`AMAZON_FBA_INBOUND_PLAN_PALLETS_FIND` calls listInboundPlanPallets. The Amazon response includes `pagination`, `pallets`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PLAN_PALLETS_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request placement-options-find

`AMAZON_FBA_INBOUND_PLACEMENT_OPTIONS_FIND` calls listPlacementOptions. The Amazon response includes `pagination`, `placementOptions`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PLACEMENT_OPTIONS_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request placement-options-generate

`AMAZON_FBA_INBOUND_PLACEMENT_OPTIONS_GENERATE` uses generatePlacementOptions. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PLACEMENT_OPTIONS_GENERATE",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        },
        "body": {}
    }
}
```

### Request placement-options-confirm

`AMAZON_FBA_INBOUND_PLACEMENT_OPTIONS_CONFIRM` uses confirmPlacementOption. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PLACEMENT_OPTIONS_CONFIRM",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "placementOptionId": "pl00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request shipments-get

`AMAZON_FBA_INBOUND_SHIPMENTS_GET` uses getShipment. The Amazon response includes `amazonReferenceId`, `contactInformation`, `dates`, `destination`, `freightInformation`, `name`, `placementOptionId`, `selectedDeliveryWindow`, `selectedTransportationOptionId`, `selfShipAppointmentDetails`, `shipmentConfirmationId`, `shipmentId`, `source`, `status`, `trackingDetails`.

```json
{
    "type": "AMAZON_FBA_INBOUND_SHIPMENTS_GET",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request shipment-boxes-find

`AMAZON_FBA_INBOUND_SHIPMENT_BOXES_FIND` calls listShipmentBoxes. The Amazon response includes `boxes`, `pagination`.

```json
{
    "type": "AMAZON_FBA_INBOUND_SHIPMENT_BOXES_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request shipment-content-update-previews-find

`AMAZON_FBA_INBOUND_SHIPMENT_CONTENT_UPDATE_PREVIEWS_FIND` calls listShipmentContentUpdatePreviews. The Amazon response includes `contentUpdatePreviews`, `pagination`.

```json
{
    "type": "AMAZON_FBA_INBOUND_SHIPMENT_CONTENT_UPDATE_PREVIEWS_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request shipment-content-update-previews-generate

`AMAZON_FBA_INBOUND_SHIPMENT_CONTENT_UPDATE_PREVIEWS_GENERATE` uses generateShipmentContentUpdatePreviews. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_SHIPMENT_CONTENT_UPDATE_PREVIEWS_GENERATE",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001"
        },
        "body": {
            "boxes": [
                {
                    "contentInformationSource": "BOX_CONTENT_PROVIDED",
                    "dimensions": {
                        "height": 1,
                        "length": 1,
                        "unitOfMeasurement": "IN",
                        "width": 1
                    },
                    "quantity": 1,
                    "weight": {
                        "unit": "LB",
                        "value": 1
                    },
                    "items": [
                        {
                            "msku": "EXAMPLE-SKU",
                            "quantity": 1,
                            "prepOwner": "SELLER",
                            "labelOwner": "SELLER"
                        }
                    ]
                }
            ],
            "items": [
                {
                    "labelOwner": "SELLER",
                    "msku": "EXAMPLE-SKU",
                    "prepOwner": "SELLER",
                    "quantity": 1
                }
            ]
        }
    }
}
```

### Request shipment-content-update-previews-get

`AMAZON_FBA_INBOUND_SHIPMENT_CONTENT_UPDATE_PREVIEWS_GET` uses getShipmentContentUpdatePreview. The Amazon response includes `contentUpdatePreviewId`, `expiration`, `requestedUpdates`, `transportationOption`.

```json
{
    "type": "AMAZON_FBA_INBOUND_SHIPMENT_CONTENT_UPDATE_PREVIEWS_GET",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001",
            "contentUpdatePreviewId": "ex00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request shipment-content-update-previews-confirm

`AMAZON_FBA_INBOUND_SHIPMENT_CONTENT_UPDATE_PREVIEWS_CONFIRM` uses confirmShipmentContentUpdatePreview. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_SHIPMENT_CONTENT_UPDATE_PREVIEWS_CONFIRM",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001",
            "contentUpdatePreviewId": "ex00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request delivery-challan-get

`AMAZON_FBA_INBOUND_DELIVERY_CHALLAN_GET` uses getDeliveryChallanDocument. The Amazon response includes `documentDownload`.

```json
{
    "type": "AMAZON_FBA_INBOUND_DELIVERY_CHALLAN_GET",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request delivery-windows-find

`AMAZON_FBA_INBOUND_DELIVERY_WINDOWS_FIND` calls listDeliveryWindowOptions. The Amazon response includes `deliveryWindowOptions`, `pagination`.

```json
{
    "type": "AMAZON_FBA_INBOUND_DELIVERY_WINDOWS_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request delivery-windows-generate

`AMAZON_FBA_INBOUND_DELIVERY_WINDOWS_GENERATE` uses generateDeliveryWindowOptions. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_DELIVERY_WINDOWS_GENERATE",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request delivery-windows-confirm

`AMAZON_FBA_INBOUND_DELIVERY_WINDOWS_CONFIRM` uses confirmDeliveryWindowOptions. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_DELIVERY_WINDOWS_CONFIRM",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001",
            "deliveryWindowOptionId": "Examplexxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
        }
    }
}
```

### Request shipment-items-find

`AMAZON_FBA_INBOUND_SHIPMENT_ITEMS_FIND` calls listShipmentItems. The Amazon response includes `items`, `pagination`.

```json
{
    "type": "AMAZON_FBA_INBOUND_SHIPMENT_ITEMS_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request shipment-name-update

`AMAZON_FBA_INBOUND_SHIPMENT_NAME_UPDATE` uses updateShipmentName. The Amazon response includes no response body.

```json
{
    "type": "AMAZON_FBA_INBOUND_SHIPMENT_NAME_UPDATE",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001"
        },
        "body": {
            "name": "Example"
        }
    }
}
```

### Request shipment-pallets-find

`AMAZON_FBA_INBOUND_SHIPMENT_PALLETS_FIND` calls listShipmentPallets. The Amazon response includes `pagination`, `pallets`.

```json
{
    "type": "AMAZON_FBA_INBOUND_SHIPMENT_PALLETS_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request self-ship-appointments-cancel

`AMAZON_FBA_INBOUND_SELF_SHIP_APPOINTMENTS_CANCEL` uses cancelSelfShipAppointment. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_SELF_SHIP_APPOINTMENTS_CANCEL",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001"
        },
        "body": {}
    }
}
```

### Request self-ship-appointment-slots-get

`AMAZON_FBA_INBOUND_SELF_SHIP_APPOINTMENT_SLOTS_GET` uses getSelfShipAppointmentSlots. The Amazon response includes `pagination`, `selfShipAppointmentSlotsAvailability`.

```json
{
    "type": "AMAZON_FBA_INBOUND_SELF_SHIP_APPOINTMENT_SLOTS_GET",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request self-ship-appointment-slots-generate

`AMAZON_FBA_INBOUND_SELF_SHIP_APPOINTMENT_SLOTS_GENERATE` uses generateSelfShipAppointmentSlots. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_SELF_SHIP_APPOINTMENT_SLOTS_GENERATE",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001"
        },
        "body": {}
    }
}
```

### Request self-ship-appointments-schedule

`AMAZON_FBA_INBOUND_SELF_SHIP_APPOINTMENTS_SCHEDULE` uses scheduleSelfShipAppointment. The Amazon response includes `selfShipAppointmentDetails`.

```json
{
    "type": "AMAZON_FBA_INBOUND_SELF_SHIP_APPOINTMENTS_SCHEDULE",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001",
            "slotId": "sl00000000-0000-4000-8000-000000000001"
        },
        "body": {}
    }
}
```

### Request shipment-source-address-update

`AMAZON_FBA_INBOUND_SHIPMENT_SOURCE_ADDRESS_UPDATE` uses updateShipmentSourceAddress. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_SHIPMENT_SOURCE_ADDRESS_UPDATE",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001"
        },
        "body": {
            "address": {
                "addressLine1": "Example",
                "city": "Example",
                "countryCode": "US",
                "name": "Example",
                "phoneNumber": "+12025550123",
                "postalCode": "98101"
            }
        }
    }
}
```

### Request shipment-tracking-update

`AMAZON_FBA_INBOUND_SHIPMENT_TRACKING_UPDATE` uses updateShipmentTrackingDetails. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_SHIPMENT_TRACKING_UPDATE",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001"
        },
        "body": {
            "trackingDetails": {
                "spdTrackingDetail": {
                    "spdTrackingItems": [
                        {
                            "boxId": "box-1",
                            "trackingId": "EXAMPLE-TRACKING"
                        }
                    ]
                }
            }
        }
    }
}
```

### Request transportation-options-find

`AMAZON_FBA_INBOUND_TRANSPORTATION_OPTIONS_FIND` calls listTransportationOptions. The Amazon response includes `pagination`, `transportationOptions`.

```json
{
    "type": "AMAZON_FBA_INBOUND_TRANSPORTATION_OPTIONS_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        },
        "query": {
            "shipmentId": "sh00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request transportation-options-generate

`AMAZON_FBA_INBOUND_TRANSPORTATION_OPTIONS_GENERATE` uses generateTransportationOptions. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_TRANSPORTATION_OPTIONS_GENERATE",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        },
        "body": {
            "placementOptionId": "pl00000000-0000-4000-8000-000000000001",
            "shipmentTransportationConfigurations": [
                {
                    "readyToShipWindow": {
                        "start": "2099-01-01T00:00:00Z"
                    },
                    "shipmentId": "sh00000000-0000-4000-8000-000000000001"
                }
            ]
        }
    }
}
```

### Request transportation-options-confirm

`AMAZON_FBA_INBOUND_TRANSPORTATION_OPTIONS_CONFIRM` uses confirmTransportationOptions. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_TRANSPORTATION_OPTIONS_CONFIRM",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        },
        "body": {
            "transportationSelections": [
                {
                    "shipmentId": "sh00000000-0000-4000-8000-000000000001",
                    "transportationOptionId": "to00000000-0000-4000-8000-000000000001"
                }
            ]
        }
    }
}
```

### Request item-compliance-details-find

`AMAZON_FBA_INBOUND_ITEM_COMPLIANCE_DETAILS_FIND` calls listItemComplianceDetails. The Amazon response includes `complianceDetails`.

```json
{
    "type": "AMAZON_FBA_INBOUND_ITEM_COMPLIANCE_DETAILS_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "query": {
            "mskus": ["EXAMPLE-SKU"],
            "marketplaceId": "ATVPDKIKX0DER"
        }
    }
}
```

### Request item-compliance-details-update

`AMAZON_FBA_INBOUND_ITEM_COMPLIANCE_DETAILS_UPDATE` uses updateItemComplianceDetails. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_ITEM_COMPLIANCE_DETAILS_UPDATE",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "query": {
            "marketplaceId": "ATVPDKIKX0DER"
        },
        "body": {
            "msku": "EXAMPLE-SKU",
            "taxDetails": {}
        }
    }
}
```

### Request item-labels-create

`AMAZON_FBA_INBOUND_ITEM_LABELS_CREATE` uses createMarketplaceItemLabels. The Amazon response includes `documentDownloads`.

```json
{
    "type": "AMAZON_FBA_INBOUND_ITEM_LABELS_CREATE",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "body": {
            "labelType": "STANDARD_FORMAT",
            "marketplaceId": "ATVPDKIKX0DER",
            "mskuQuantities": [
                {
                    "msku": "EXAMPLE-SKU",
                    "quantity": 1
                }
            ],
            "pageType": "A4_21"
        }
    }
}
```

### Request prep-details-find

`AMAZON_FBA_INBOUND_PREP_DETAILS_FIND` calls listPrepDetails. The Amazon response includes `mskuPrepDetails`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PREP_DETAILS_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "query": {
            "marketplaceId": "ATVPDKIKX0DER",
            "mskus": ["EXAMPLE-SKU"]
        }
    }
}
```

### Request prep-details-set

`AMAZON_FBA_INBOUND_PREP_DETAILS_SET` uses setPrepDetails. The Amazon response includes `operationId`.

```json
{
    "type": "AMAZON_FBA_INBOUND_PREP_DETAILS_SET",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "body": {
            "marketplaceId": "ATVPDKIKX0DER",
            "mskuPrepDetails": [
                {
                    "msku": "EXAMPLE-SKU",
                    "prepCategory": "ADULT",
                    "prepTypes": ["ITEM_BLACK_SHRINKWRAP"]
                }
            ]
        }
    }
}
```

### Request operations-get

`AMAZON_FBA_INBOUND_OPERATIONS_GET` uses getInboundOperationStatus. The Amazon response includes `operation`, `operationId`, `operationProblems`, `operationStatus`.

```json
{
    "type": "AMAZON_FBA_INBOUND_OPERATIONS_GET",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "operationId": "00000000-0000-4000-8000-000000000001"
        }
    }
}
```

### Request shipment-labels-get

`AMAZON_FBA_INBOUND_SHIPMENT_LABELS_GET` uses getLabels. The Amazon response includes `payload`, `errors`.

```json
{
    "type": "AMAZON_FBA_INBOUND_SHIPMENT_LABELS_GET",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "shipmentId": "FBA0000000001"
        },
        "query": {
            "PageType": "PackageLabel_Letter_2",
            "LabelType": "BARCODE_2D"
        }
    }
}
```

### Request bill-of-lading-get

`AMAZON_FBA_INBOUND_BILL_OF_LADING_GET` uses getBillOfLading. The Amazon response includes `payload`, `errors`.

```json
{
    "type": "AMAZON_FBA_INBOUND_BILL_OF_LADING_GET",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "shipmentId": "FBA0000000001"
        }
    }
}
```

### Request legacy-shipments-find

`AMAZON_FBA_INBOUND_LEGACY_SHIPMENTS_FIND` uses getShipments. The Amazon response includes `payload`, `errors`.

```json
{
    "type": "AMAZON_FBA_INBOUND_LEGACY_SHIPMENTS_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "query": {
            "QueryType": "SHIPMENT",
            "MarketplaceId": "ATVPDKIKX0DER",
            "ShipmentStatusList": ["WORKING"]
        }
    }
}
```

### Request legacy-shipment-items-get

`AMAZON_FBA_INBOUND_LEGACY_SHIPMENT_ITEMS_GET` uses getShipmentItemsByShipmentId. The Amazon response includes `payload`, `errors`.

```json
{
    "type": "AMAZON_FBA_INBOUND_LEGACY_SHIPMENT_ITEMS_GET",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "shipmentId": "FBA0000000001"
        }
    }
}
```

### Request legacy-shipment-items-find

`AMAZON_FBA_INBOUND_LEGACY_SHIPMENT_ITEMS_FIND` uses getShipmentItems. The Amazon response includes `payload`, `errors`.

```json
{
    "type": "AMAZON_FBA_INBOUND_LEGACY_SHIPMENT_ITEMS_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "query": {
            "QueryType": "DATE_RANGE",
            "MarketplaceId": "ATVPDKIKX0DER",
            "LastUpdatedAfter": "2098-12-01T00:00:00Z",
            "LastUpdatedBefore": "2099-01-01T00:00:00Z"
        }
    }
}
```

## Additional workflow examples

These examples cover common combinations of shipment inputs. Validate the request after replacing the example values.

### Continue a plans page

Repeat your original filters and replace the example token with the exact token Amazon returned. A regional plans page can contain multiple marketplaces.

```json
{
    "type": "AMAZON_FBA_INBOUND_PLANS_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "query": {
            "pageSize": 30,
            "status": "ACTIVE",
            "paginationToken": "example+/token==%2F"
        }
    }
}
```

### Continue an items page

The same rule applies to item pages. A returned token remains useful even when the current items array is empty.

```json
{
    "type": "AMAZON_FBA_INBOUND_PLAN_ITEMS_FIND",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        },
        "query": {
            "pageSize": 100,
            "paginationToken": "example+/token==%2F"
        }
    }
}
```

### Supply shipment-level cartons

Use this form after placement confirmation in Pack Later, or at the documented pre-confirmation packing step in India.

```json
{
    "type": "AMAZON_FBA_INBOUND_PACKING_INFORMATION_SET",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        },
        "body": {
            "packageGroupings": [
                {
                    "boxes": [
                        {
                            "contentInformationSource": "BOX_CONTENT_PROVIDED",
                            "dimensions": {
                                "height": 1,
                                "length": 1,
                                "unitOfMeasurement": "IN",
                                "width": 1
                            },
                            "quantity": 1,
                            "weight": {
                                "unit": "LB",
                                "value": 1
                            },
                            "items": [
                                {
                                    "msku": "EXAMPLE-SKU",
                                    "quantity": 1,
                                    "prepOwner": "SELLER",
                                    "labelOwner": "SELLER"
                                }
                            ]
                        }
                    ],
                    "shipmentId": "sh00000000-0000-4000-8000-000000000001"
                }
            ]
        }
    }
}
```

### Supply non-partnered freight tracking

Provide the carrier freight number and bill of lading for freight. Use the earlier parcel example to map a separate tracking number to each box.

```json
{
    "type": "AMAZON_FBA_INBOUND_SHIPMENT_TRACKING_UPDATE",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001",
            "shipmentId": "sh00000000-0000-4000-8000-000000000001"
        },
        "body": {
            "trackingDetails": {
                "ltlTrackingDetail": {
                    "billOfLadingNumber": "EXAMPLE-BOL",
                    "freightBillNumber": ["EXAMPLE-PRO"]
                }
            }
        }
    }
}
```

### Compare freight options for multiple shipments

This native request keeps both shipments together. Replace every example identifier, contact and future ready-to-ship date. The declared value is not a carrier quote. Keep each returned quote and currency separately, and confirm only the seller-selected options.

```json
{
    "type": "AMAZON_FBA_INBOUND_TRANSPORTATION_OPTIONS_GENERATE",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        },
        "body": {
            "placementOptionId": "pl00000000-0000-4000-8000-000000000001",
            "shipmentTransportationConfigurations": [
                {
                    "readyToShipWindow": {
                        "start": "2099-01-01T00:00:00Z"
                    },
                    "shipmentId": "sh00000000-0000-4000-8000-000000000001",
                    "contactInformation": {
                        "name": "Example contact",
                        "phoneNumber": "+12025550123",
                        "email": "warehouse@example.com"
                    },
                    "freightInformation": {
                        "declaredValue": {
                            "amount": 250,
                            "code": "EUR"
                        },
                        "freightClass": "FC_100"
                    },
                    "pallets": [
                        {
                            "quantity": 1,
                            "dimensions": {
                                "height": 100,
                                "length": 120,
                                "width": 80,
                                "unitOfMeasurement": "CM"
                            },
                            "weight": {
                                "unit": "KG",
                                "value": 90
                            },
                            "stackability": "NON_STACKABLE"
                        }
                    ]
                },
                {
                    "readyToShipWindow": {
                        "start": "2099-01-01T00:00:00Z"
                    },
                    "shipmentId": "sh00000000-0000-4000-8000-000000000002",
                    "contactInformation": {
                        "name": "Example contact",
                        "phoneNumber": "+12025550123",
                        "email": "warehouse@example.com"
                    },
                    "freightInformation": {
                        "declaredValue": {
                            "amount": 250,
                            "code": "EUR"
                        },
                        "freightClass": "FC_100"
                    },
                    "pallets": [
                        {
                            "quantity": 1,
                            "dimensions": {
                                "height": 100,
                                "length": 120,
                                "width": 80,
                                "unitOfMeasurement": "CM"
                            },
                            "weight": {
                                "unit": "KG",
                                "value": 90
                            },
                            "stackability": "NON_STACKABLE"
                        }
                    ]
                }
            ]
        }
    }
}
```

### Request India custom placement

Use warehouse IDs available to the India seller and the intended items. This does not generate packing options or confirm placement.

```json
{
    "type": "AMAZON_FBA_INBOUND_PLACEMENT_OPTIONS_GENERATE",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "path": {
            "inboundPlanId": "wf00000000-0000-4000-8000-000000000001"
        },
        "body": {
            "customPlacement": [
                {
                    "warehouseId": "EXAMPLE-FC",
                    "items": [
                        {
                            "msku": "EXAMPLE-SKU",
                            "quantity": 1,
                            "prepOwner": "SELLER",
                            "labelOwner": "SELLER"
                        }
                    ]
                }
            ]
        }
    }
}
```

### Provide India compliance details

Use the India Seller connection and the actual product tax details. This example is a dry run, not tax advice or proof of Amazon acceptance.

```json
{
    "type": "AMAZON_FBA_INBOUND_ITEM_COMPLIANCE_DETAILS_UPDATE",
    "sellerOrVendorId": "11111111-1111-4111-8111-111111111111",
    "dryRun": true,
    "details": {
        "query": {
            "marketplaceId": "A21TJRUUN4KGV"
        },
        "body": {
            "msku": "EXAMPLE-SKU",
            "taxDetails": {
                "declaredValue": {
                    "amount": 100,
                    "code": "INR"
                },
                "hsnCode": "EXAMPLE-HSN"
            }
        }
    }
}
```
