---
name: "purchasing_save_supplier"
area: "purchasing"
title: "Add or change a supplier"
price: "$0.01"
method: "POST"
url: "https://api.conecto.chat/v1/tools/purchasing_save_supplier"
mcp_server: "https://api.conecto.chat/mcp/purchasing"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/purchasing/purchasing_save_supplier"
---

# Add or change a supplier (`purchasing_save_supplier`)

Adds a supplier or changes one: contact, email for orders, address, currency, payment terms and the book account their bills go to.

Add a supplier, matched by name (any case), or change one by supplier_id (name then renames it): contact name, email (purchase orders are emailed there), phone, address, tax ID, the currency they bill in (default: the books' or the invoice profile's), payment terms in days (their bills fall due that long after their date; default 30), and account: the book account code their bills' lines go to by default (an expense or asset account, e.g. "6600"). iban and bic are where the business pays them: new or changed bank details always wait for a person other than the one asking (approval_required), because a changed account is how invoice fraud takes payments. Give only what changes. Archived suppliers take no new orders or bills.

Price: $0.01 a call. A call that fails costs nothing.

## Use it when

The business buys from someone new, or a supplier's details change.

## Say this to your agent

> Add Kühlmann in Bremen as a supplier. They bill in euros with 30 days to pay, and their bills are cost of goods.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `name` | string | no | 1 to 200 characters. |  |  |
| `supplier_id` | integer | no | At least 1. |  |  |
| `contact_name` | string | no | Up to 120 characters. |  |  |
| `email` | string | no | Up to 254 characters. |  |  |
| `phone` | string | no | Up to 60 characters. |  |  |
| `address` | string | no | Postal address, one line per row. Up to 1,000 characters. |  |  |
| `tax_id` | string | no | Up to 60 characters. |  |  |
| `currency` | string | no | ISO 4217, e.g. "EUR". Matches ^[A-Za-z]{3}$. |  |  |
| `terms_days` | integer | no | 0 to 365. |  |  |
| `account` | string | no | A book account code, e.g. "6600"; "" clears it. Up to 20 characters. |  |  |
| `notes` | string | no | Up to 5,000 characters. |  |  |
| `iban` | string | no | Their IBAN; spaces are fine. Up to 42 characters. |  |  |
| `bic` | string | no | Up to 11 characters. |  |  |
| `country` | string | no | Where they are, ISO 3166-1 like "FR": tells reverse-charge bills apart. Up to 2 characters. |  |  |
| `archived` | boolean | no |  |  |  |

## Example

Written for Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff.

MCP: call `purchasing_save_supplier` on the MCP server `https://api.conecto.chat/mcp/purchasing` with these arguments:

```json
{
  "name": "Kühlmann Kältetechnik",
  "contact_name": "Birte Albers",
  "email": "orders@kuehlmann-kaelte.example",
  "address": "Am Speicher 12\n28217 Bremen\nGermany",
  "currency": "EUR",
  "terms_days": 30,
  "account": "5000"
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/purchasing_save_supplier \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Kühlmann Kältetechnik", "contact_name": "Birte Albers", "email": "orders@kuehlmann-kaelte.example", "address": "Am Speicher 12\n28217 Bremen\nGermany", "currency": "EUR", "terms_days": 30, "account": "5000"}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "purchasing_save_supplier",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.01",
  "balance_usd": "$19.75",
  "result": {
    "supplier": {
      "supplier_id": 4101,
      "name": "Kühlmann Kältetechnik",
      "contact_name": "Birte Albers",
      "email": "orders@kuehlmann-kaelte.example",
      "phone": null,
      "address": "Am Speicher 12\n28217 Bremen\nGermany",
      "tax_id": null,
      "currency": "EUR",
      "terms_days": 30,
      "account": "5000",
      "notes": null,
      "iban": null,
      "bic": null,
      "country": null,
      "archived": false
    },
    "created": true
  }
}
```

`result`: supplier: its supplier_id, name, contact, email, phone, address, tax ID, currency, terms, account, notes, IBAN and BIC, and archived; and created. New or changed bank details first answer approval_required: a person other than the one asking approves them.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `not_found` | 404 | No supplier of the business has that supplier_id or name. | Call purchasing_list_suppliers, or add the supplier with purchasing_save_supplier. |
| `invalid_input` | 400 | A date or currency is not valid. | Send dates like 2026-11-02 and currencies like EUR. |
| `not_found` | 404 | The account is not an open expense or asset account of the books. | Pick a code from books_list_accounts. |
| `name_taken` | 409 | A supplier has that name already. | Change that supplier by its supplier_id instead. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [purchasing_list_suppliers](https://conecto.chat/tools/purchasing/purchasing_list_suppliers.md): Suppliers by name, each with what is owed to them on open bills and how many orders are open. Free up to 1,000,000 reads a month.
- [purchasing_save_supplier_items](https://conecto.chat/tools/purchasing/purchasing_save_supplier_items.md): Says 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.
- [purchasing_list_supplier_items](https://conecto.chat/tools/purchasing/purchasing_list_supplier_items.md): What suppliers sell: codes, costs, packs, minimums, lead times and the preferred supplier, for one supplier or one SKU. Free up to 1,000,000 reads a month.
- [purchasing_draft_reorders](https://conecto.chat/tools/purchasing/purchasing_draft_reorders.md): Drafts 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.
- [purchasing_create_order](https://conecto.chat/tools/purchasing/purchasing_create_order.md): Drafts a purchase order to a supplier: lines (with Inventory SKUs if you like), currency, delivery date and stock location. $0.01 a call.
- [purchasing_update_order](https://conecto.chat/tools/purchasing/purchasing_update_order.md): Changes a draft order, or records it as sent without emailing it. $0.01 a call.
- [purchasing_send_order](https://conecto.chat/tools/purchasing/purchasing_send_order.md): Emails an order to the supplier with a link to its PDF; a draft takes the next number first. $0.10 a call.
- [purchasing_receive](https://conecto.chat/tools/purchasing/purchasing_receive.md): Records what arrived on a sent order; lines with a SKU come into Inventory at the ordered cost. $0.01 a call.
- [purchasing_close_order](https://conecto.chat/tools/purchasing/purchasing_close_order.md): Closes a sent order (stop waiting for the rest) or cancels one that received nothing. $0.01 a call.
- [purchasing_list_orders](https://conecto.chat/tools/purchasing/purchasing_list_orders.md): Purchase orders, newest first, by status, supplier or date; or one order in full. Free up to 1,000,000 reads a month.
- [purchasing_create_bill](https://conecto.chat/tools/purchasing/purchasing_create_bill.md): Records a bill a supplier sent, from its own lines or from an order, with its PDF; it is posted to the books. $0.01 a call.
- [purchasing_update_bill](https://conecto.chat/tools/purchasing/purchasing_update_bill.md): Adds a recorded bill's PDF if it has none, or changes its notes or due date; amounts and the PDF it has never change. $0.01 a call.
- [purchasing_pay_bill](https://conecto.chat/tools/purchasing/purchasing_pay_bill.md): Records money paid on a bill, or money back from the supplier; it is posted to the books. $0.01 a call.
- [purchasing_pay_bills](https://conecto.chat/tools/purchasing/purchasing_pay_bills.md): Pays several bills at once from one bank account, like Xero's batch payments, with the SEPA file to upload to the bank. $0.01 per bill paid.
- [purchasing_set_planned_date](https://conecto.chat/tools/purchasing/purchasing_set_planned_date.md): Plans the day the business will pay a bill, so the cash flow forecast takes the money out then rather than on the due date. Free.
- [purchasing_record_prepayment](https://conecto.chat/tools/purchasing/purchasing_record_prepayment.md): Records a deposit the business paid a supplier before their bill, like Xero's prepayments; it waits as a credit with them. $0.01 a call.
- [purchasing_use_credit](https://conecto.chat/tools/purchasing/purchasing_use_credit.md): Puts a credit with a supplier on their bill, like Xero's allocate credit, or records it coming back. $0.01 a call.
- [purchasing_list_credits](https://conecto.chat/tools/purchasing/purchasing_list_credits.md): Lists credits with suppliers, deposits and overpayments, with what is left on each. Free up to 1,000,000 reads a month.
- [purchasing_save_repeating_bill](https://conecto.chat/tools/purchasing/purchasing_save_repeating_bill.md): Records a supplier's bill again every so many weeks, months or years, with [Month] and [Year] filled in, like Xero's repeating bills. $0.01 a call.
- [purchasing_list_repeating_bills](https://conecto.chat/tools/purchasing/purchasing_list_repeating_bills.md): Lists the repeating bills: whose each is, how often, the next dates, and what each recorded. Free up to 1,000,000 reads a month.
- [purchasing_delete_repeating_bill](https://conecto.chat/tools/purchasing/purchasing_delete_repeating_bill.md): Stops a repeating bill for good; the bills it recorded stay. Free.
- [purchasing_void_bill](https://conecto.chat/tools/purchasing/purchasing_void_bill.md): Voids a bill entered by mistake; the books reverse it and its order can be billed again. $0.01 a call.
- [purchasing_list_bills](https://conecto.chat/tools/purchasing/purchasing_list_bills.md): Supplier bills by due date, filtered by status, supplier, order or dates; or one bill in full. Free up to 1,000,000 reads a month.
- [purchasing_report](https://conecto.chat/tools/purchasing/purchasing_report.md): Aged payables (what is owed to each supplier by how late) or spend (what each supplier billed and was paid). Free up to 1,000,000 reads a month.
