CONNECT APP
Build with Monta
The logistics service for your webshop!
Commerce
- API key
MCP
Give your agent Monta tools
Every Monta action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's Monta account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{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()
// e.g. run Add Order Colli:
const result = await mcp.callTool({
name: "monta-add-order-colli",
arguments: {
orderId: "Order ID",
number: 10,
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{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",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Add Order Colli:
result = await session.call_tool("monta-add-order-colli", {
"orderId": "Order ID",
"number": 10,
})API PROXY
Call the Monta API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the Monta API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api-v6.monta.nl/health",
})
// Any allowed Monta endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api-v6.monta.nl/health
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGktdjYubW9udGEubmwvaGVhbHRo?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run Monta actions from your backend
Connect a user's Monta account once, then run Add Order Colli on their behalf from your own code — TypeScript, Python, or plain HTTP.
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-add-order-colli",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
monta: { authProvisionId: "apn_xxxxxxx" },
orderId: "Order ID",
number: 10,
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="monta-add-order-colli",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"monta": {"authProvisionId": "apn_xxxxxxx"},
"orderId": "Order ID",
"number": 10,
},
)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-add-order-colli",
"configured_props": {
"monta": { "authProvisionId": "apn_xxxxxxx" },
"orderId": "Order ID",
"number": 10
}
}'TOOLS
Monta actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Add Order Colli
actionRegister a collo (parcel) on an order, including its dimensions and tracking details. Use this to record how an order was packed; inspect the result with List Order Colli. See the documentationWritev0.0.2 -
Approve Inbound Forecasts
actionApprove multiple inbound forecasts at once by their IDs. See the documentationWritev0.0.2 -
Cancel Order
actionCancel (delete) an order. Monta rejects this once picking has started (error 18), after the order has shipped (error 19), or when returns exist (error 25). See the documentationWritev0.0.2 -
Create Inbound Forecast Group
actionCreate a new inbound forecast group describing stock expected at the warehouse. Manage the group afterwards with Update Inbound Forecast Group, Get Inbound Forecast Group, or Delete Inbound Forecast Group. See the documentationWritev0.0.2 -
Create Order
actionCreate a new order in Monta for fulfillment. Provide the recipient's delivery address (which needs a Company or Last Name) and at least one order line; validate the address first with Validate Address if needed. See the documentationWritev0.0.2 -
Create RMA Link
actionCreate an RMA (return merchandise authorization) link for an order, so a customer can start a return. Review existing returns for the order with List Order Returns. See the documentationWritev0.0.2 -
Create Shipping Label
actionGenerate a shipping label for an order in a supported output format (pdforzpl). Use this when an order is ready to ship and needs a carrier label. See the documentationWritev0.0.2 -
Delete Inbound Forecast Group
actionDelete an inbound forecast group, or a single SKU within it when a SKU is provided. See the documentationWritev0.0.2 -
Download Shipping Label
actionDownload a single shipping label file for an order and save it to the/tmpdirectory. See the documentationWritev0.0.2 -
Forget Order
actionAnonymize an order for GDPR erasure. This permanently removes personal data and cannot be undone. See the documentationWritev0.0.2 -
Get Inbound Forecast
actionRetrieve a single inbound forecast from a group by reference and SKU. See the documentationRead-onlyv0.0.2 -
Get Inbound Forecast Group
actionRetrieve an inbound forecast group and its forecasts by reference. See the documentationRead-onlyv0.0.2 -
Get Order
actionGet an order by ID. See the documentationRead-onlyv0.0.5 -
Get Return
actionGet a return by ID. See the documentationRead-onlyv0.0.5 -
List Inbound Forecast Events
actionList inbound forecast change events created after the provided cursor ID. Use this for reliable incremental syncing of inbound forecast changes by repeatedly polling with the last event ID. See the documentationRead-onlyv0.0.2 -
List Inbound Forecast Groups
actionList inbound forecast groups matching the provided filters. You must supply at least one filter (Created Since, Created Until, Approved, SKU, or Reference). Use this to find group references for Get Inbound Forecast Group, Update Inbound Forecast Group, or Delete Inbound Forecast Group. See the documentationRead-onlyv0.0.2 -
List Inbound Forecasts by Product SKU
actionList all inbound forecasts for a given product SKU across groups. Use this to check expected incoming stock for a SKU. See the documentationRead-onlyv0.0.2 -
List Inbounds
actionList inbound shipments expected at the warehouse. Use this to review incoming stock, paging forward with the Since ID cursor to walk through large result sets; relate to List Inbound Forecast Groups for grouped forecast data. See the documentationRead-onlyv0.0.2 -
List Order Batches
actionList the batch (lot) lines shipped for an order. Use this for batch traceability when you need to know which lots were used to fulfill an order. See the documentationRead-onlyv0.0.2 -
List Order Colli
actionList the colli (parcels) that make up an order. Use this to inspect the parcel and tracking breakdown for a shipment, for example after registering parcels with the Add Order Colli action. See the documentationRead-onlyv0.0.2 -
List Order Events
actionList order events for an order. See the documentationRead-onlyv0.0.5 -
List Order Events Since ID
actionList order change events created after the provided cursor ID, which is Monta's recommended method for reliable status-change polling. Use this for incremental syncing across all orders; see List Order Events for a single order's history or List Updated Orders for datetime-based bulk syncing. See the documentationRead-onlyv0.0.2 -
List Order ID Options
actionRetrieves available options for the Order ID field.Read-onlyv0.0.4 -
List Order Returns
actionList the return records for an order. Use this to see all returns registered against an order. See the documentationRead-onlyv0.0.2 -
List Product Stock Changes
actionList products whose stock changed since a specified date and time. See the documentationRead-onlyv0.0.3 -
List Return Forecasts
actionList the expected (forecasted) returns for an order, as opposed to the actual return records from List Order Returns. Use this to anticipate inbound returns before they physically arrive. See the documentationRead-onlyv0.0.2 -
List Return Labels
actionList the return labels for an order (labels for inbound returns), as opposed to outbound shipping labels. Use this when handling a customer return that needs a prepaid inbound label; see List Order Returns for the associated return records. See the documentationRead-onlyv0.0.2 -
List Shipping Labels
actionList the shipping labels of an order. Use this to retrieve the label file names, typically after generating labels with Create Shipping Label. See the documentationRead-onlyv0.0.2 -
List Updated Orders
actionList orders whose status changed since a specified date and time, including orders deleted since then. Use this for reliable bulk order syncing; for cursor-based incremental polling of individual change events, use List Order Events Since ID instead. See the documentationRead-onlyv0.0.2 -
Update Inbound Forecast Group
actionUpdate an existing inbound forecast group's details by its reference: its comment, warehouse, or expected delivery date. The forecasts, supplier, and stock-allocation flag are set at creation and cannot be changed here. See the documentationWritev0.0.2 -
Update Order
actionChange 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 documentationWritev0.0.2 -
Validate Address
actionValidate a delivery address before submitting it, for example ahead of Create Order or Update Order. Monta returns structured error codes when the address is invalid; a complete address also needs a recipient (Company or Last Name), Postal Code, and House Number. See the documentationRead-onlyv0.0.2
No Monta triggers are available yet.
- App slug
- monta
- Authentication
- API key
- Categories
- Commerce
- Actions
- 32
- Triggers
- 0
- API proxy
- Available