Bind ERP MCP by usefulapi
Read Bind ERP clients, products, inventory, invoices, orders; create prospects, clients, orders.
Should I use this
Quality & Safety
Findings (1)
- LOWin binderp_list_products_with_price_and_stock
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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-httpWhat it can do
Tool inventory
Tools (26)
🟢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
Evidence