vendorShipments_SubmitShipmentConfirmations
Confirm vendor shipments AFTER dispatch (the advance notice before dispatch is vendorShipments_SubmitShipments).
destructiveAmazon Seller (SP-API)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
In an AI client (MCP)
{
"name": "vendorShipments_SubmitShipmentConfirmations",
"arguments": {
"store": "myStore-US",
"confirmations_payload": {}
}
}From code (Tool API)
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 | Description |
|---|---|---|
storerequired | string | the store ref `<store>-<CC>` (name-country, e.g. 'myStore-US') — one of get_user_context's store_refs, verbatim. |
confirmations_payloadrequired | object | {"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
Every tool answers {notification, data, human_action}; data carries:
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.