Bind ERP MCP by usefulapi

Read Bind ERP clients, products, inventory, invoices, orders; create prospects, clients, orders.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
94%
Naming quality
79%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'binderp_list_products_with_price_and_stock' name length outside 3-30 rangein binderp_list_products_with_price_and_stock

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~8,639Tokens (tool definitions)
~2.3 KBTypical response size
Significant attention impact (6.75% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "bind-erp": {
      "url": "https://bind-erp.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://bind-erp.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (26)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢binderp_get_account

The Bind ERP user and company this API key belongs to: user name, email, roles, branches (locations), company name, RFC (tax id), legal/commercial name, fiscal type and address. GET /api/UserProfile and /api/CompanyProfile.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_list_catalog(catalog, filter, orderby, top, skip)

List one of the reference catalogs whose ids other tools need: locations (branches), warehouses, price_lists, currencies, bank_accounts (with balances), users (employees) or categories. GET /api/Locations, /api/Warehouses, /api/PriceLists, /api/Currencies, /api/BankAccounts, /api/Users, /api/Categories.

Input Schema

{
  "type": "object",
  "properties": {
    "catalog": {
      "type": "string",
      "enum": [
        "locations",
        "warehouses",
        "price_lists",
        "currencies",
        "bank_accounts",
        "users",
        "categories"
      ],
      "description": "Which catalog."
    },
    "filter": {
      "description": "OData $filter, e.g. Name eq 'Main'. Text uses single quotes, functions such as substringof('abc', Field) and operators eq ne gt ge lt le and or are supported; a GUID is written guid'3f2504e0-4f89-11d3-9a0c-0305e82c3301'. Dates: datetime'2026-10-01T00:00:00'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "orderby": {
      "description": "OData $orderby, e.g. 'Date desc' or 'Title'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "top": {
      "description": "Rows per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "skip": {
      "description": "Rows to skip (default 0). Pass the previous reply's next_skip to get the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "required": [
    "catalog"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_list_clients(filter, orderby, top, skip)

List customers: id, number, name, legal name, RFC, email, phone, next contact date and branch. Filter with OData, e.g. substringof('acme', ClientName). GET /api/Clients.

Input Schema

{
  "type": "object",
  "properties": {
    "filter": {
      "description": "OData $filter, e.g. substringof('acme', ClientName). Text uses single quotes, functions such as substringof('abc', Field) and operators eq ne gt ge lt le and or are supported; a GUID is written guid'3f2504e0-4f89-11d3-9a0c-0305e82c3301'. Dates: datetime'2026-10-01T00:00:00'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "orderby": {
      "description": "OData $orderby, e.g. 'Date desc' or 'Title'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "top": {
      "description": "Rows per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "skip": {
      "description": "Rows to skip (default 0). Pass the previous reply's next_skip to get the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_get_client(client_id)

One customer with credit terms (days and limit), payment method, price list, branch, sales and credit contacts, discount, account number and addresses. GET /api/Clients/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Client id (a GUID, as returned by the list tools)."
    }
  },
  "required": [
    "client_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_get_client_addresses(client_id)

The addresses of a customer, with the ids that an order needs as address_id. GET /api/Clients/{id}/Addresses.

Input Schema

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Client id (a GUID, as returned by the list tools)."
    }
  },
  "required": [
    "client_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_list_prospects(filter, orderby, top, skip)

List sales prospects (leads): id, name, company, email, phone and salesperson. GET /api/Prospects.

Input Schema

{
  "type": "object",
  "properties": {
    "filter": {
      "description": "OData $filter, e.g. substringof('maria', ProspectName). Text uses single quotes, functions such as substringof('abc', Field) and operators eq ne gt ge lt le and or are supported; a GUID is written guid'3f2504e0-4f89-11d3-9a0c-0305e82c3301'. Dates: datetime'2026-10-01T00:00:00'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "orderby": {
      "description": "OData $orderby, e.g. 'Date desc' or 'Title'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "top": {
      "description": "Rows per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "skip": {
      "description": "Rows to skip (default 0). Pass the previous reply's next_skip to get the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_get_prospect(prospect_id)

One prospect: name, company, email, phone, comments, creation date and owner. GET /api/Prospects/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "prospect_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Prospect id (a GUID, as returned by the list tools)."
    }
  },
  "required": [
    "prospect_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_list_providers(filter, orderby, top, skip)

List suppliers: id, number, name, legal name, RFC, email, phone and city. GET /api/Providers.

Input Schema

{
  "type": "object",
  "properties": {
    "filter": {
      "description": "OData $filter, e.g. substringof('acero', ProviderName). Text uses single quotes, functions such as substringof('abc', Field) and operators eq ne gt ge lt le and or are supported; a GUID is written guid'3f2504e0-4f89-11d3-9a0c-0305e82c3301'. Dates: datetime'2026-10-01T00:00:00'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "orderby": {
      "description": "OData $orderby, e.g. 'Date desc' or 'Title'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "top": {
      "description": "Rows per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "skip": {
      "description": "Rows to skip (default 0). Pass the previous reply's next_skip to get the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_list_products(filter, orderby, top, skip)

List products: id, code, title, SKU, cost, current inventory, VAT flag, unit, currency and categories. Filter with OData, e.g. substringof('tornillo', Title). GET /api/Products.

Input Schema

{
  "type": "object",
  "properties": {
    "filter": {
      "description": "OData $filter, e.g. SKU eq 'ABC-1'. Text uses single quotes, functions such as substringof('abc', Field) and operators eq ne gt ge lt le and or are supported; a GUID is written guid'3f2504e0-4f89-11d3-9a0c-0305e82c3301'. Dates: datetime'2026-10-01T00:00:00'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "orderby": {
      "description": "OData $orderby, e.g. 'Date desc' or 'Title'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "top": {
      "description": "Rows per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "skip": {
      "description": "Rows to skip (default 0). Pass the previous reply's next_skip to get the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_get_product(product_id)

One product with prices per price list, inventory per warehouse, categories and alternative units. GET /api/Products/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Product id (a GUID, as returned by the list tools)."
    }
  },
  "required": [
    "product_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_list_products_with_price_and_stock(warehouse_id, price_list_id, top, skip)

Products with the price (from one price list) and stock (in one warehouse), VAT/IEPS, min/max and volume prices: the view a point-of-sale or quote needs. Get the ids from binderp_list_catalog. GET /api/ProductsPriceAndInventory.

Input Schema

{
  "type": "object",
  "properties": {
    "warehouse_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Warehouse id (catalog warehouses) (a GUID, as returned by the list tools)."
    },
    "price_list_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Price list id (catalog price_lists) (a GUID, as returned by the list tools)."
    },
    "top": {
      "description": "Rows per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "skip": {
      "description": "Rows to skip (default 0). Pass the previous reply's next_skip to get the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "required": [
    "warehouse_id",
    "price_list_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_get_inventory(warehouse_id, filter, orderby, top, skip)

Stock of every product in one warehouse: current inventory, balance, quantity on client orders and on purchase orders, value and SKU. Filter with OData, e.g. CurrentInventory lt 5 for low stock. GET /api/Inventory?warehouseID=.

Input Schema

{
  "type": "object",
  "properties": {
    "warehouse_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Warehouse id (catalog warehouses) (a GUID, as returned by the list tools)."
    },
    "filter": {
      "description": "OData $filter, e.g. CurrentInventory lt 5. Text uses single quotes, functions such as substringof('abc', Field) and operators eq ne gt ge lt le and or are supported; a GUID is written guid'3f2504e0-4f89-11d3-9a0c-0305e82c3301'. Dates: datetime'2026-10-01T00:00:00'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "orderby": {
      "description": "OData $orderby, e.g. 'Date desc' or 'Title'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "top": {
      "description": "Rows per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "skip": {
      "description": "Rows to skip (default 0). Pass the previous reply's next_skip to get the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "required": [
    "warehouse_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_list_invoices(filter, orderby, top, skip)

List sales invoices, with series, number, date, client, RFC, subtotal, discount, taxes, total, payments received, credit notes, expiration date and status. Open balance = Total - Payments - CreditNotes (filter Total gt Payments, then subtract CreditNotes from the rows). GET /api/Invoices.

Input Schema

{
  "type": "object",
  "properties": {
    "filter": {
      "description": "OData $filter, e.g. Date ge datetime'2026-10-01T00:00:00' and Total gt Payments. Text uses single quotes, functions such as substringof('abc', Field) and operators eq ne gt ge lt le and or are supported; a GUID is written guid'3f2504e0-4f89-11d3-9a0c-0305e82c3301'. Dates: datetime'2026-10-01T00:00:00'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "orderby": {
      "description": "OData $orderby, e.g. 'Date desc' or 'Title'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "top": {
      "description": "Rows per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "skip": {
      "description": "Rows to skip (default 0). Pass the previous reply's next_skip to get the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_get_invoice(invoice_id_or_number)

One sale with client, status, payment terms, branch, warehouse, currency, totals, payments, credit notes and its product and service lines. Takes the invoice GUID or its number. GET /api/Invoices/{idOrNumber}.

Input Schema

{
  "type": "object",
  "properties": {
    "invoice_id_or_number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "description": "The invoice GUID or its number."
    }
  },
  "required": [
    "invoice_id_or_number"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_list_invoice_payments(invoice_id, orderby, top, skip)

The payments registered against one invoice: date, account, amount, status and who registered them. GET /api/Invoices/Payment/{invoiceID}.

Input Schema

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Invoice id (a GUID, as returned by the list tools)."
    },
    "orderby": {
      "description": "OData $orderby, e.g. 'Date desc' or 'Title'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "top": {
      "description": "Rows per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "skip": {
      "description": "Rows to skip (default 0). Pass the previous reply's next_skip to get the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_list_orders(filter, orderby, top, skip)

List customer orders (pedidos): number, date, client, branch, warehouse, salesperson, currency, subtotals, taxes, total and status. GET /api/Orders.

Input Schema

{
  "type": "object",
  "properties": {
    "filter": {
      "description": "OData $filter, e.g. OrderDate ge datetime'2026-10-01T00:00:00'. Text uses single quotes, functions such as substringof('abc', Field) and operators eq ne gt ge lt le and or are supported; a GUID is written guid'3f2504e0-4f89-11d3-9a0c-0305e82c3301'. Dates: datetime'2026-10-01T00:00:00'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "orderby": {
      "description": "OData $orderby, e.g. 'Date desc' or 'Title'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "top": {
      "description": "Rows per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "skip": {
      "description": "Rows to skip (default 0). Pass the previous reply's next_skip to get the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_get_order(order_id)

One customer order with address, status, totals and its product and service lines. GET /api/Orders/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Order id (a GUID, as returned by the list tools)."
    }
  },
  "required": [
    "order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_list_quotes(filter, orderby, top, skip)

List quotes (cotizaciones): number, date, client, branch, comments, total, currency and status. GET /api/Quotes.

Input Schema

{
  "type": "object",
  "properties": {
    "filter": {
      "description": "OData $filter, e.g. CreationDate ge datetime'2026-10-01T00:00:00'. Text uses single quotes, functions such as substringof('abc', Field) and operators eq ne gt ge lt le and or are supported; a GUID is written guid'3f2504e0-4f89-11d3-9a0c-0305e82c3301'. Dates: datetime'2026-10-01T00:00:00'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "orderby": {
      "description": "OData $orderby, e.g. 'Date desc' or 'Title'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "top": {
      "description": "Rows per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "skip": {
      "description": "Rows to skip (default 0). Pass the previous reply's next_skip to get the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_get_quote(quote_id)

One quote with client or prospect, totals and its line items. GET /api/Quotes/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "quote_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Quote id (a GUID, as returned by the list tools)."
    }
  },
  "required": [
    "quote_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_list_purchase_orders(filter, orderby, top, skip)

List purchase orders to suppliers: number, warehouse, provider, date, status, quantity ordered and still missing, total and currency. GET /api/Purchases/GetPurchaseOrders.

Input Schema

{
  "type": "object",
  "properties": {
    "filter": {
      "description": "OData $filter, e.g. substringof('acero', Provider). Text uses single quotes, functions such as substringof('abc', Field) and operators eq ne gt ge lt le and or are supported; a GUID is written guid'3f2504e0-4f89-11d3-9a0c-0305e82c3301'. Dates: datetime'2026-10-01T00:00:00'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "orderby": {
      "description": "OData $orderby, e.g. 'Date desc' or 'Title'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "top": {
      "description": "Rows per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "skip": {
      "description": "Rows to skip (default 0). Pass the previous reply's next_skip to get the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_get_purchase_order(purchase_order_id)

One purchase order with its product lines, quantities received and totals. GET /api/Purchases/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "purchase_order_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Purchase order id (a GUID, as returned by the list tools)."
    }
  },
  "required": [
    "purchase_order_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢binderp_list_activities(filter, orderby, top, skip)

List CRM activities (calls, meetings, tasks): title, start and end, owner, done flag, type and the client or prospect they belong to. GET /api/Activities.

Input Schema

{
  "type": "object",
  "properties": {
    "filter": {
      "description": "OData $filter, e.g. Done eq false. Text uses single quotes, functions such as substringof('abc', Field) and operators eq ne gt ge lt le and or are supported; a GUID is written guid'3f2504e0-4f89-11d3-9a0c-0305e82c3301'. Dates: datetime'2026-10-01T00:00:00'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "orderby": {
      "description": "OData $orderby, e.g. 'Date desc' or 'Title'.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "top": {
      "description": "Rows per page, 1-100 (default 25).",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "skip": {
      "description": "Rows to skip (default 0). Pass the previous reply's next_skip to get the next page.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡binderp_create_prospect(name, company, email, phone, phone_ext, ...)

Create a sales prospect (lead) in Bind ERP. Writes a new record visible to the whole team; it is not deduplicated, so check binderp_list_prospects first. No message is sent to the prospect. POST /api/Prospects.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Contact name."
    },
    "company": {
      "description": "Company name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "email": {
      "description": "Email address.",
      "type": "string",
      "maxLength": 200,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "phone": {
      "description": "Phone number.",
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "phone_ext": {
      "description": "Phone extension.",
      "type": "string",
      "minLength": 1,
      "maxLength": 20
    },
    "comments": {
      "description": "Notes.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "is_public": {
      "description": "Visible to all users (true) or only to the key's user (false).",
      "type": "boolean"
    }
  },
  "required": [
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡binderp_create_client(legal_name, commercial_name, rfc, credit_days, credit_amount, ...)

Create a customer in Bind ERP. Writes a new customer record (with credit terms) and is not deduplicated: check binderp_list_clients for the RFC first. The RFC must be valid for the tax authority (use XAXX010101000 for a generic public customer). No message is sent. Get price_list_id and location_id from binderp_list_catalog. POST /api/Clients.

Input Schema

{
  "type": "object",
  "properties": {
    "legal_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "Legal name (razon social)."
    },
    "commercial_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 300,
      "description": "Commercial name."
    },
    "rfc": {
      "type": "string",
      "minLength": 10,
      "maxLength": 13,
      "description": "RFC (Mexican tax id)."
    },
    "credit_days": {
      "default": 0,
      "description": "Days of credit (0 = cash).",
      "type": "integer",
      "minimum": 0,
      "maximum": 3650
    },
    "credit_amount": {
      "default": 0,
      "description": "Credit limit.",
      "type": "number",
      "minimum": 0,
      "maximum": 1000000000000
    },
    "price_list_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Price list id (catalog price_lists) (a GUID, as returned by the list tools)."
    },
    "accounting_number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "Accounting account number for the customer (required by the API)."
    },
    "email": {
      "description": "Email address.",
      "type": "string",
      "maxLength": 200,
      "format": "email",
      "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
    },
    "telephone": {
      "description": "Phone number.",
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "location_id": {
      "description": "Branch id (catalog locations).",
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
    },
    "comment": {
      "description": "Notes.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "default_discount": {
      "description": "Default discount percent.",
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "address": {
      "description": "Fiscal address.",
      "type": "object",
      "properties": {
        "street_name": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "exterior_number": {
          "type": "string",
          "minLength": 1,
          "maxLength": 30
        },
        "interior_number": {
          "type": "string",
          "minLength": 1,
          "maxLength": 30
        },
        "colonia": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "zip_code": {
          "type": "string",
          "minLength": 1,
          "maxLength": 10
        },
        "city": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        },
        "state": {
          "type": "string",
          "minLength": 1,
          "maxLength": 120
        }
      }
    }
  },
  "required": [
    "legal_name",
    "commercial_name",
    "rfc",
    "price_list_id",
    "accounting_number"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡binderp_add_comment(external_id, comment)

Add a comment to a Bind ERP record (client, prospect, order, ...) identified by its GUID. The comment becomes part of that record's history and cannot be removed through this API. POST /api/Comments.

Input Schema

{
  "type": "object",
  "properties": {
    "external_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Id of the record to comment on (client, prospect, order...) (a GUID, as returned by the list tools)."
    },
    "comment": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000,
      "description": "The comment text."
    }
  },
  "required": [
    "external_id",
    "comment"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡binderp_create_order(client_id, address_id, currency_id, location_id, warehouse_id, ...)

Create a customer order (pedido, not an invoice: nothing is stamped or invoiced and no email is sent) with product and/or service lines. It reserves stock and shows up in the sales pipeline, so confirm client, prices and quantities first. Get ids from binderp_list_clients, binderp_get_client_addresses, binderp_list_catalog and binderp_list_products. POST /api/Orders.

Input Schema

{
  "type": "object",
  "properties": {
    "client_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Client id (a GUID, as returned by the list tools)."
    },
    "address_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Delivery address id (binderp_get_client_addresses) (a GUID, as returned by the list tools)."
    },
    "currency_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Currency id (catalog currencies) (a GUID, as returned by the list tools)."
    },
    "location_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Branch id (catalog locations) (a GUID, as returned by the list tools)."
    },
    "warehouse_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Warehouse id (catalog warehouses) (a GUID, as returned by the list tools)."
    },
    "price_list_id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
      "description": "Price list id (catalog price_lists) (a GUID, as returned by the list tools)."
    },
    "order_date": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,7})?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
      "description": "Order date, ISO 8601, e.g. 2026-10-24 or 2026-10-24T10:00:00Z."
    },
    "comments": {
      "description": "Order comments.",
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "purchase_order": {
      "description": "The customer's purchase order number.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "exchange_rate": {
      "description": "Exchange rate when the currency is not the base currency.",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000000
    },
    "products": {
      "description": "Product lines.",
      "maxItems": 200,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
            "description": "Product id (a GUID, as returned by the list tools)."
          },
          "price": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000000000000,
            "description": "Unit price before tax."
          },
          "qty": {
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 1000000000,
            "description": "Quantity."
          },
          "vat": {
            "description": "VAT percent override.",
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "comments": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          }
        },
        "required": [
          "id",
          "price",
          "qty"
        ]
      }
    },
    "services": {
      "description": "Service lines.",
      "maxItems": 200,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$",
            "description": "Service (sale concept) id (a GUID, as returned by the list tools)."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 300,
            "description": "Line title."
          },
          "price": {
            "type": "number",
            "minimum": 0,
            "maximum": 1000000000000,
            "description": "Unit price before tax."
          },
          "qty": {
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 1000000000,
            "description": "Quantity."
          },
          "vat": {
            "description": "VAT percent override.",
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "comments": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          }
        },
        "required": [
          "id",
          "title",
          "price",
          "qty"
        ]
      }
    }
  },
  "required": [
    "client_id",
    "address_id",
    "currency_id",
    "location_id",
    "warehouse_id",
    "price_list_id",
    "order_date"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded26 tools