# Update Order — Monta

> Change an existing order by its ID, for example to correct a customer's delivery address before it is picked. Call this directly with the order ID and the fields to change. When changing the delivery address, first read the current address…

- Key: `monta-update-order`
- Type: Action (Write)
- Version: 0.0.2
- App: Monta (`monta`) — https://pipedream.com/apps/monta.md
- This page (HTML): https://pipedream.com/apps/monta/actions/update-order
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/monta/actions/update-order/update-order.mjs

## Description

Change an existing order by its ID, for example to correct a customer's delivery address before it is picked. Call this directly with the order ID and the fields to change. When changing the delivery address, first read the current address with **Get Order**, then call this with the full address plus your change, since Monta replaces the entire address (it needs at least Street, City, and Country Code). Monta rejects address changes once picking has started (error 17) or after the order has shipped (error 19). [See the documentation](https://api-v6.monta.nl/index.html#tag/Order/paths/~1order~1%7Bwebshoporderid%7D/put)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `orderId` | `string` | Yes | The ID of an order. Use the List Order ID Options action to discover order IDs. Options are loaded from the connected account. |
| `street` | `string` | No | The street name |
| `houseNumber` | `string` | No | The house number |
| `houseNumberAddition` | `string` | No | An addition to the house number |
| `postalCode` | `string` | No | The postal code |
| `city` | `string` | No | The city |
| `state` | `string` | No | The state or province |
| `countryCode` | `string` | No | The ISO 3166-1 alpha-2 country code (e.g. NL) |
| `company` | `string` | No | The company name |
| `firstName` | `string` | No | The recipient's first name |
| `middleName` | `string` | No | The recipient's middle name |
| `lastName` | `string` | No | The recipient's last name |
| `phoneNumber` | `string` | No | The recipient's phone number |
| `emailAddress` | `string` | No | The recipient's email address |
| `additionalFields` | `object` | No | Additional order properties to send in the request body, using Monta's request-body casing (e.g. { "Comment": "..." }) |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "monta",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "monta-update-order",
  arguments: {
    orderId: "Order ID",
    street: "Delivery Street",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "monta-update-order",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    monta: { authProvisionId: "apn_xxxxxxx" },
    orderId: "Order ID",
    street: "Delivery Street",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "monta-update-order",
    "configured_props": {
      "monta": { "authProvisionId": "apn_xxxxxxx" },
      "orderId": "Order ID",
      "street": "Delivery Street"
    }
  }'
```

---

- App: https://pipedream.com/apps/monta.md · All apps: https://pipedream.com/apps
