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

> Confirm vendor shipments AFTER dispatch (the advance notice before dispatch is vendorShipments_SubmitShipments).

Access: **DESTRUCTIVE** · toolset amazon_sp · family sp.vendorShipments

One or many confirmations per call. Amazon write; blocks until the transaction reaches Success or Failure. Amazon SP-API · SubmitShipmentConfirmations · POST /vendor/shipping/v1/shipmentConfirmations Amazon SP-API · getTransaction · GET /vendor/transactions/v1/transactions/{transactionId} 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.

## Call it

MCP tool call:

```json
{
  "name": "vendorShipments_SubmitShipmentConfirmations",
  "arguments": {
    "store": "myStore-US",
    "confirmations_payload": {}
  }
}
```

Tool API (early access — contact us):

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

## 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. |
| `confirmations_payload` | object | yes | {"shipmentConfirmations": [Confirmation, …]}. Per Confirmation, required: shipmentIdentifier (unique, unused in the last 365 days), shipmentConfirmationType (Original \| Replace), shipmentConfirmationDate (ISO-8601), sellingParty, shipFromParty and shipToParty (each {partyId, address}), shippedItems: [{itemSequenceNumber ('001', '002', …), amazonProductIdentifier (ASIN) or vendorProductIdentifier, shippedQuantity {amount, unitOfMeasure Cases \| Eaches, unitSize, totalWeight {unitOfMeasure POUNDS \| OUNCES \| GRAMS \| KILOGRAMS, amount}}, itemDetails {purchaseOrderNumber, lotNumber, lotNumberSourceReference, lotNumberSourceType GLN \| FFRN \| USDA_E \| URL, countryOfOrigin (2-letter), regulationReferences (EUDR: dueDiligenceReference, dueDiligenceVerification, dueDiligenceInformation, dueDiligenceExemptionCode), expiry {manufacturerDate, expiryDate, expiryAfterDuration}, maximumRetailPrice {currencyCode, amount}, handlingCode Oversized \| Fragile \| Food \| HandleWithCare}}]. Optional: shippedDate and estimatedDeliveryDate (ISO-8601); shipmentType and shipmentStructure (values in the Body block); transportationDetails {carrierScac, carrierShipmentReferenceNumber, transportationMode Road \| Air \| Ocean, billOfLadingNumber}; shipmentMeasurements {grossShipmentWeight {unitOfMeasure G \| Kg \| Oz \| Lb, value}, shipmentVolume {unitOfMeasure CuFt \| CuIn \| CuM \| CuY, value}, cartonCount, palletCount}; importDetails {methodOfPayment PaidByBuyer \| CollectOnDelivery \| DefinedByBuyerAndSeller \| FOBPortOfCall \| PrepaidBySeller \| PaidBySeller, handlingInstructions Oversized \| Fragile \| Food \| HandleWithCare, route, billableWeight}; cartons (a SmallParcel shipment, one entry per carton): [{cartonSequenceNumber ('001', … — pallets reference cartons by it), cartonIdentifiers: [{containerIdentificationType SSCC \| AMZNCC \| GTIN \| BPS \| CID, containerIdentificationNumber}], trackingNumber (Amazon requires one per carton), dimensions {length, width, height, unitOfMeasure In \| Ft \| Meter \| Yard}, weight {unitOfMeasure G \| Kg \| Oz \| Lb, value}, items: [{itemReference (the itemSequenceNumber from shippedItems), shippedQuantity {amount, unitOfMeasure, unitSize}, itemDetails}] required}]; pallets (a palletized shipment): [{palletIdentifiers: [{containerIdentificationType, containerIdentificationNumber}] required, tier (layers per pallet), block (cartons per layer), dimensions, weight, cartonReferenceDetails {cartonCount (mandatory for a single-item pallet), cartonReferenceNumbers — the cartonSequenceNumbers on this pallet}, items}]. Full tree: https://developer-docs.amazon.com/sp-api/docs/vendor-shipments-api-v1-reference |

## Result

- `data.transactionId` — the transaction, already final when this returns.
- `data.status` — SUCCESS, or Failure with data.errors [{code, message, details}].

## Body (Amazon schema; SubmitShipmentConfirmations): {shipmentConfirmations: [ShipmentConfirmation]}, each item

- shipmentIdentifier*: string shipmentConfirmationType*: Original | Replace shipmentConfirmationDate*: string (date-time) sellingParty*: {address: {name*, addressLine1*, addressLine2, addressLine3, city, county, district, stateOrRegion, postalCode, countryCode*, phone}, partyId*, taxRegistrationDetails: [{taxRegistrationType*, taxRegistrationNumber*}]} shipFromParty*: {address: {name*, addressLine1*, addressLine2, addressLine3, city, county, district, stateOrRegion, postalCode, countryCode*, phone}, partyId*, taxRegistrationDetails: [{taxRegistrationType*, taxRegistrationNumber*}]} shipToParty*: {address: {name*, addressLine1*, addressLine2, addressLine3, city, county, district, stateOrRegion, postalCode, countryCode*, phone}, partyId*, taxRegistrationDetails: [{taxRegistrationType*, taxRegistrationNumber*}]} shippedItems*: [{itemSequenceNumber*, amazonProductIdentifier, vendorProductIdentifier, shippedQuantity*: {amount*, unitOfMeasure*, unitSize, totalWeight}, itemDetails: {purchaseOrderNumber, lotNumber, lotNumberSourceReference, lotNumberSourceType, countryOfOrigin, regulationReferences, expiry, maximumRetailPrice, handlingCode}}] shipmentType: TruckLoad | LessThanTruckLoad | SmallParcel shipmentStructure: PalletizedAssortmentCase | LooseAssortmentCase | PalletOfItems | PalletizedStandardCase | LooseStandardCase | MasterPallet | MasterCase + 8 more: transportationDetails, amazonReferenceNumber, shippedDate, estimatedDeliveryDate, shipmentMeasurements, importDetails, cartons, pallets Full schema: the Docs link above.

## Gotchas

- HTTP 502 = still Processing after 60 s; the error names the transactionId — check it with vendorTransactionStatus_getTransaction before resubmitting.