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

> Acknowledge (accept, backorder or reject) one or more purchase orders.

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

Blocks until the transaction reaches SUCCESS or FAILURE — no separate polling. Build one acknowledgement per purchaseOrderNumber from vendorOrders_getPurchaseOrder, one item per PO line. Amazon SP-API · submitAcknowledgement · POST /vendor/orders/v1/acknowledgements 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": "vendorOrders_submitAcknowledgement",
  "arguments": {
    "store": "myStore-US",
    "acknowledgement_payload": {}
  }
}
```

Tool API (early access — contact us):

```bash
curl -X POST https://api.sellersheetai.com/api/v1/tools/vendorOrders_submitAcknowledgement \
  -H "Authorization: Bearer $SELLERSHEET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"store":"myStore-US","acknowledgement_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. |
| `acknowledgement_payload` | object | yes | {"acknowledgements": [Acknowledgement, …]}. Per Acknowledgement, required: purchaseOrderNumber (8-char alphanumeric), acknowledgementDate (ISO-8601), sellingParty {partyId (the vendor or warehouse code) required; address: {name, addressLine1, countryCode (2 chars) required; addressLine2, addressLine3, city, county, district, stateOrRegion, postalCode, phone}; taxInfo: {taxRegistrationType VAT \| GST, taxRegistrationNumber}}, items: [{itemSequenceNumber (the PO line), amazonProductIdentifier (ASIN) or vendorProductIdentifier (one, so Amazon matches the line), orderedQuantity {amount (non-zero int), unitOfMeasure Cases \| Eaches, unitSize} required, netCost (Money {currencyCode ISO-4217, amount as a decimal string, unitOfMeasure POUNDS \| OUNCES \| GRAMS \| KILOGRAMS for items priced by weight}) required — Amazon rejects the file without it; acknowledge at a CORRECTED cost when the PO price is wrong; listPrice (Money), discountMultiplier (decimal string), itemAcknowledgements required: [{acknowledgementCode Accepted \| Backordered \| Rejected, acknowledgedQuantity {amount, unitOfMeasure, unitSize}, scheduledShipDate, scheduledDeliveryDate (ISO-8601), rejectionReason (required when Rejected: TemporarilyUnavailable \| InvalidProductIdentifier \| ObsoleteProduct)}]}]. Split a line across codes with several itemAcknowledgements whose amounts sum to orderedQuantity. Full tree: https://developer-docs.amazon.com/sp-api/docs/vendor-orders-api-v1-reference |

## Result

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

## Body (Amazon schema; submitAcknowledgement): {acknowledgements: [OrderAcknowledgement]}, each item

- purchaseOrderNumber*: string sellingParty*: {partyId*, address: {name*, addressLine1*, addressLine2, addressLine3, city, county, district, stateOrRegion, postalCode, countryCode*, phone}, taxInfo: {taxRegistrationType*, taxRegistrationNumber*}} sellingParty.taxInfo.taxRegistrationType: VAT | GST acknowledgementDate*: string (date-time) items*: [{itemSequenceNumber, amazonProductIdentifier, vendorProductIdentifier, orderedQuantity*: {amount, unitOfMeasure, unitSize}, netCost: {currencyCode, amount, unitOfMeasure}, listPrice: {currencyCode, amount, unitOfMeasure}, discountMultiplier, itemAcknowledgements*: [{acknowledgementCode*, acknowledgedQuantity*, scheduledShipDate, scheduledDeliveryDate, rejectionReason}]}] items.orderedQuantity.unitOfMeasure: Cases | Eaches items.netCost.unitOfMeasure: POUNDS | OUNCES | GRAMS | KILOGRAMS items.listPrice.unitOfMeasure: POUNDS | OUNCES | GRAMS | KILOGRAMS items.itemAcknowledgements.acknowledgementCode: Accepted | Backordered | Rejected items.itemAcknowledgements.acknowledgedQuantity.unitOfMeasure: Cases | Eaches items.itemAcknowledgements.rejectionReason: TemporarilyUnavailable | InvalidProductIdentifier | ObsoleteProduct

## Gotchas

- Backordered is accepted only on a PO line whose isBackOrderAllowed is true (vendorOrders_getPurchaseOrder). An HTTP 502 means Amazon was still Processing after 60 s — the error names the transactionId; check it with vendorTransactionStatus_getTransaction before acknowledging again.