Change a draft order, or mark it sent
Changes a draft order, or records it as sent without emailing it.
$0.01 a call
From your agent’s balance. A call that fails costs nothing.
An example
Make that 60 GN pans instead of 40 before we send the order.
Your agent callspurchasing_update_order$0.01 a call
The example business is Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff. The reply is the one the tool really gives.
{
"order": "8a4c2e6f-1b3d-4f5a-9c7e-0d2b4f6a8c1e",
"lines": [
{
"sku": "GN-PAN-11",
"quantity": 60,
"unit_cost": "18.50"
},
{
"description": "Delivery",
"unit_cost": "95.00"
}
]
}Use it when
A draft changes before it goes out, or it was sent some other way (phone, the supplier's portal).
- For emailing the order to the supplier, use
purchasing_send_order.
What it does
Change a draft: its supplier, lines (they replace the old ones), currency, expected delivery date, stock location or notes. mark_sent: true records it as sent without emailing anyone (you sent it some other way): it takes the next number (PO-0001 on, without gaps) and its PDF is made. A sent order no longer changes; to email it, use purchasing_send_order instead.
What comes back
order: the order as it now is (numbered and with its PDF when marked sent). Every reply also carries cost_usd and balance_usd.
Inputs
| Name | Type | What it is |
|---|---|---|
orderRequired | string | The order_id, or the order's number like "PO-0007". 1 to 40 characters. |
supplier | integer or string | A supplier_id, or the supplier's name. 1 to 200 characters, at least 1. |
lines | array of objects | 1 to 200 items. |
lines[].sku | string | An Inventory item's SKU: received stock comes into Inventory. Its name is the default description. Up to 64 characters. |
lines[].description | string | What is bought. Lines after the first print smaller, underneath. Up to 2,000 characters. |
lines[].quantity | number or string | Default 1. Up to 6 decimals. Up to 24 characters. |
lines[].unit_costRequired | number or string | The cost of one before tax, e.g. "12.50". Up to 24 characters. |
lines[].tax_rate | number or string | Tax percent on the line, e.g. 19. Default 0. Up to 24 characters. |
currency | string | ISO 4217, e.g. "EUR". Default: the supplier's. Matches ^[A-Za-z]{3}$. |
expected_on | string or null | YYYY-MM-DD, or null. Matches ^\d{4}-\d{2}-\d{2}$. |
location | string | Up to 120 characters. |
notes | string | Up to 5,000 characters. |
mark_sent | boolean | Default: false. |
The call
Over MCP, call purchasing_update_order on https://api.conecto.chat/mcp/purchasing. Over REST:
curl -X POST https://api.conecto.chat/v1/tools/purchasing_update_order \
-H "Authorization: Bearer $CONECTO_KEY" \
-H "Content-Type: application/json" \
-d '{"order":"8a4c2e6f-1b3d-4f5a-9c7e-0d2b4f6a8c1e","lines":[{"sku":"GN-PAN-11","quantity":60,"unit_cost":"18.50"},{"description":"Delivery","unit_cost":"95.00"}]}'When it refuses
A refused call costs nothing and says what to do next.
| Code | When | What to do |
|---|---|---|
not_found404 | No purchase order has that order_id or number. | Find it with purchasing_list_orders. |
not_found404 | No supplier of the business has that supplier_id or name. | Call purchasing_list_suppliers, or add the supplier with purchasing_save_supplier. |
not_found404 | A line's SKU is not an Inventory item, or the location does not exist. | Add the item with inventory_save_items, or leave the SKU out. |
archived409 | The supplier, item, location or account is archived. | Bring the supplier back with purchasing_save_supplier archived: false, or use another one. |
invalid_input400 | A date or currency is not valid. | Send dates like 2026-11-02 and currencies like EUR. |
not_draft409 | The order was sent, so it no longer changes. | Close or cancel it with purchasing_close_order instead. |
invalid_input400 | Nothing to change was given. | Send what changes, or mark_sent: true. |
profile_incomplete409 | The business has no name for documents yet, so no PDF can be made. | Set it with invoices_set_profile legal_name. |
already_sent409 | The order was sent already. | Nothing to mark. |
More Purchasing tools
All 25 tools- Add or change a supplier
purchasing_save_supplierAdds a supplier or changes one: contact, email for orders, address, currency, payment terms and the book account their bills go to.$0.01 a call - List suppliers
purchasing_list_suppliersSuppliers by name, each with what is owed to them on open bills and how many orders are open.Free* - Say what a supplier sells
purchasing_save_supplier_itemsSays which Inventory items a supplier sells: their code, cost, pack size, minimum order, lead time and a fixed reorder quantity.$0.005 per item saved - List what suppliers sell
purchasing_list_supplier_itemsWhat suppliers sell: codes, costs, packs, minimums, lead times and the preferred supplier, for one supplier or one SKU.Free* - Draft reorders for low stock
purchasing_draft_reordersDrafts one purchase order per supplier for every item at or below its reorder point, counting what is already on order.$0.01 per draft order - Draft a purchase order
purchasing_create_orderDrafts a purchase order to a supplier: lines (with Inventory SKUs if you like), currency, delivery date and stock location.$0.01 a call - Email a purchase order
purchasing_send_orderEmails an order to the supplier with a link to its PDF; a draft takes the next number first.$0.10 a call - Receive a delivery
purchasing_receiveRecords what arrived on a sent order; lines with a SKU come into Inventory at the ordered cost.$0.01 a call
Give this to your agent.
Set up Conecto from https://conecto.chat/SKILL.md