e-Boekhouden MCP by usefulapi

Read e-Boekhouden relations, invoices, ledgers, bookings and products; create relations, invoices.

我該用這個嗎

品質與安全性

A
說明品質
97%
結構描述完整度
92%
命名品質
76%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

發現項目(5)

  • LOWTool 'eboekhouden_list_outstanding_invoices' name length outside 3-30 range在 eboekhouden_list_outstanding_invoices 中
  • LOWTool 'eboekhouden_list_ledger_balances' name length outside 3-30 range在 eboekhouden_list_ledger_balances 中
  • LOWTool 'eboekhouden_list_product_groups' name length outside 3-30 range在 eboekhouden_list_product_groups 中
  • LOWTool 'eboekhouden_list_invoice_templates' name length outside 3-30 range在 eboekhouden_list_invoice_templates 中
  • LOWTool 'eboekhouden_list_email_templates' name length outside 3-30 range在 eboekhouden_list_email_templates 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~7,025Token(工具定義)
~2.4 KB典型回應大小
顯著的注意力影響(128k 上下文的 5.49%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "e-boekhouden": {
      "url": "https://e-boekhouden.usefulapi.io/mcp"
    }
  }
}

遠端端點

https://e-boekhouden.usefulapi.io/mcpstreamable-http

它能做什麼

工具清單

工具(25)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢eboekhouden_list_relations(name, email, city, contact, code, ...)

List relations (customers and suppliers of the administration), optionally filtered (filters combine with AND). Text filters match exactly unless match is contains or starts_with. Paged: pass next_offset as offset. GET /v1/relation.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "description": "(Company) name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "email": {
      "description": "E-mail address.",
      "type": "string",
      "minLength": 1,
      "maxLength": 150
    },
    "city": {
      "description": "Primary city.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "contact": {
      "description": "Contact information.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "code": {
      "description": "Relation code.",
      "type": "string",
      "minLength": 1,
      "maxLength": 15
    },
    "type": {
      "description": "Business (B) or Private (P).",
      "type": "string",
      "enum": [
        "B",
        "P"
      ]
    },
    "match": {
      "description": "How the text filters match: exact (default), contains or starts_with (case-insensitive wildcard match; % and ? in the text are wildcards).",
      "type": "string",
      "enum": [
        "exact",
        "contains",
        "starts_with"
      ]
    },
    "limit": {
      "description": "Results per page, 1-2000 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 2000
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_get_relation(id)

One relation with all its fields (addresses, e-mail addresses, VAT and KvK number, IBAN, payment term, ledger). GET /v1/relation/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "The relation id (from eboekhouden_list_relations)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_list_invoices(invoice_number, relation_id, date, date_from, date_to, ...)

Search the invoices created in the invoicing module, by invoice number, relation or date (exact, or from/to). Paged: pass next_offset as offset. GET /v1/invoice.

輸入結構描述

{
  "type": "object",
  "properties": {
    "invoice_number": {
      "description": "Invoice number.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "relation_id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "Only invoices of this relation."
    },
    "date": {
      "description": "Only this exact date (yyyy-mm-dd).",
      "type": "string"
    },
    "date_from": {
      "description": "From this date, inclusive (yyyy-mm-dd).",
      "type": "string"
    },
    "date_to": {
      "description": "Up to this date, inclusive (yyyy-mm-dd).",
      "type": "string"
    },
    "match": {
      "description": "How the text filters match: exact (default), contains or starts_with (case-insensitive wildcard match; % and ? in the text are wildcards).",
      "type": "string",
      "enum": [
        "exact",
        "contains",
        "starts_with"
      ]
    },
    "limit": {
      "description": "Results per page, 1-2000 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 2000
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_get_invoice(id)

One invoice with its items, amounts and relation. GET /v1/invoice/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "The invoice id (from eboekhouden_list_invoices)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_list_outstanding_invoices(kind, invoice_number, match, limit, offset)

Open (unpaid) invoices: debtors (D, sales invoices customers still owe) or creditors (C, purchase invoices still to be paid). Paged: pass next_offset as offset. GET /v1/mutation/invoice/outstanding.

輸入結構描述

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "D",
        "C"
      ],
      "description": "D = debtors (customers owing you), C = creditors (suppliers you still owe)."
    },
    "invoice_number": {
      "description": "Only this invoice number.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "match": {
      "description": "How the text filters match: exact (default), contains or starts_with (case-insensitive wildcard match; % and ? in the text are wildcards).",
      "type": "string",
      "enum": [
        "exact",
        "contains",
        "starts_with"
      ]
    },
    "limit": {
      "description": "Results per page, 1-2000 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 2000
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "required": [
    "kind"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_list_mutations(type, id, description, invoice_number, date, ...)

Search the bookkeeping mutations: type 1 invoice received, 2 invoice sent, 3 invoice payment received, 4 invoice payment sent, 5 money received, 6 money sent, 7 general journal entry. Filter by type, mutation number, description, invoice number or date. Paged: pass next_offset as offset. GET /v1/mutation.

輸入結構描述

{
  "type": "object",
  "properties": {
    "type": {
      "description": "Mutation type 1-7 (1 invoice received, 2 invoice sent, 3 payment received, 4 payment sent, 5 money received, 6 money sent, 7 journal entry).",
      "type": "integer",
      "minimum": 1,
      "maximum": 7
    },
    "id": {
      "description": "Mutation number.",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "description": {
      "description": "Description.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "invoice_number": {
      "description": "Invoice number.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "date": {
      "description": "Only this exact date (yyyy-mm-dd).",
      "type": "string"
    },
    "date_from": {
      "description": "From this date, inclusive (yyyy-mm-dd).",
      "type": "string"
    },
    "date_to": {
      "description": "Up to this date, inclusive (yyyy-mm-dd).",
      "type": "string"
    },
    "match": {
      "description": "How the text filters match: exact (default), contains or starts_with (case-insensitive wildcard match; % and ? in the text are wildcards).",
      "type": "string",
      "enum": [
        "exact",
        "contains",
        "starts_with"
      ]
    },
    "limit": {
      "description": "Results per page, 1-2000 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 2000
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_get_mutation(id)

One mutation with its rows (ledger, VAT code, amount, relation, invoice number). GET /v1/mutation/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991,
      "description": "The mutation number (from eboekhouden_list_mutations)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_list_ledgers(code, category, match, limit, offset)

The ledger accounts (grootboekrekeningen): id, code, description and category (BAL balance, VW profit and loss, FIN, DEB, CRED, AF6, AF19, AFOVERIG, VOOR, BTWRC, AF). Use the id as ledger_id in other tools. Paged: pass next_offset as offset. GET /v1/ledger.

輸入結構描述

{
  "type": "object",
  "properties": {
    "code": {
      "description": "Ledger code.",
      "type": "string",
      "minLength": 1,
      "maxLength": 10
    },
    "category": {
      "description": "Category, e.g. BAL, VW, FIN, DEB, CRED.",
      "type": "string",
      "minLength": 1,
      "maxLength": 10
    },
    "match": {
      "description": "How the text filters match: exact (default), contains or starts_with (case-insensitive wildcard match; % and ? in the text are wildcards).",
      "type": "string",
      "enum": [
        "exact",
        "contains",
        "starts_with"
      ]
    },
    "limit": {
      "description": "Results per page, 1-2000 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 2000
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_get_ledger(id)

One ledger account. GET /v1/ledger/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "The ledger id (from eboekhouden_list_ledgers)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_get_ledger_balance(id, cost_center_id, from, to)

The balance of one ledger, optionally per cost center and for a period (from/to). GET /v1/ledger/{id}/balance.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "The ledger id (from eboekhouden_list_ledgers)."
    },
    "cost_center_id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "Only mutations of this cost center."
    },
    "from": {
      "description": "Balance over the period starting at this date (the difference), instead of the actual balance.",
      "type": "string"
    },
    "to": {
      "description": "The balance at this date, inclusive (default today).",
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_list_ledger_balances(cost_center_id, from, to)

The balances of all ledgers (a trial balance), optionally per cost center and for a period (from/to). GET /v1/ledger/balances.

輸入結構描述

{
  "type": "object",
  "properties": {
    "cost_center_id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "Only mutations of this cost center."
    },
    "from": {
      "description": "Balance over the period starting at this date (the difference), instead of the actual balance.",
      "type": "string"
    },
    "to": {
      "description": "The balance at this date, inclusive (default today).",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_list_products(code, group_code, match, limit, offset)

List products and services (articles) with price, VAT code, ledger and unit, optionally by code or group code. Paged: pass next_offset as offset. GET /v1/product.

輸入結構描述

{
  "type": "object",
  "properties": {
    "code": {
      "description": "Product code.",
      "type": "string",
      "minLength": 1,
      "maxLength": 20
    },
    "group_code": {
      "description": "Product group code (from eboekhouden_list_product_groups).",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "match": {
      "description": "How the text filters match: exact (default), contains or starts_with (case-insensitive wildcard match; % and ? in the text are wildcards).",
      "type": "string",
      "enum": [
        "exact",
        "contains",
        "starts_with"
      ]
    },
    "limit": {
      "description": "Results per page, 1-2000 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 2000
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_get_product(id)

One product with price, VAT code, ledger, unit and stock setting. GET /v1/product/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "The product id (from eboekhouden_list_products)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_list_product_groups

All product groups. GET /v1/product/groups.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_list_cost_centers(parent_id, description, match, limit, offset)

List cost centers (kostenplaatsen), optionally by parent id or description. Paged: pass next_offset as offset. GET /v1/costcenter.

輸入結構描述

{
  "type": "object",
  "properties": {
    "parent_id": {
      "description": "Parent cost center id.",
      "type": "string",
      "minLength": 1,
      "maxLength": 20
    },
    "description": {
      "description": "Description.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "match": {
      "description": "How the text filters match: exact (default), contains or starts_with (case-insensitive wildcard match; % and ? in the text are wildcards).",
      "type": "string",
      "enum": [
        "exact",
        "contains",
        "starts_with"
      ]
    },
    "limit": {
      "description": "Results per page, 1-2000 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 2000
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_get_cost_center(id)

One cost center. GET /v1/costcenter/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "The cost center id (from eboekhouden_list_cost_centers)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_list_units(singular, plural, match, limit, offset)

List product units (piece, hour, ...) with their ids. Paged: pass next_offset as offset. GET /v1/unit.

輸入結構描述

{
  "type": "object",
  "properties": {
    "singular": {
      "description": "Singular form.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "plural": {
      "description": "Plural form.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "match": {
      "description": "How the text filters match: exact (default), contains or starts_with (case-insensitive wildcard match; % and ? in the text are wildcards).",
      "type": "string",
      "enum": [
        "exact",
        "contains",
        "starts_with"
      ]
    },
    "limit": {
      "description": "Results per page, 1-2000 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 2000
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_list_invoice_templates(name, type, active, match, limit, ...)

List invoice templates (the template_id for eboekhouden_create_invoice), optionally by name, type (E editor, A advanced) or active. Paged: pass next_offset as offset. GET /v1/invoicetemplate.

輸入結構描述

{
  "type": "object",
  "properties": {
    "name": {
      "description": "Template name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "type": {
      "description": "Editor (E) or advanced (A).",
      "type": "string",
      "enum": [
        "E",
        "A"
      ]
    },
    "active": {
      "description": "Only active (true) or inactive (false) templates.",
      "type": "boolean"
    },
    "match": {
      "description": "How the text filters match: exact (default), contains or starts_with (case-insensitive wildcard match; % and ? in the text are wildcards).",
      "type": "string",
      "enum": [
        "exact",
        "contains",
        "starts_with"
      ]
    },
    "limit": {
      "description": "Results per page, 1-2000 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 2000
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_list_email_templates(limit, offset)

List e-mail templates. Paged: pass next_offset as offset. GET /v1/emailtemplate.

輸入結構描述

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Results per page, 1-2000 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 2000
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_list_members(member_number, name, email, city, match, ...)

List members; only available to clubs and associations (others get error MEM_056). Paged: pass next_offset as offset. GET /v1/member.

輸入結構描述

{
  "type": "object",
  "properties": {
    "member_number": {
      "description": "Member number.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "name": {
      "description": "Name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "email": {
      "description": "E-mail address.",
      "type": "string",
      "minLength": 1,
      "maxLength": 150
    },
    "city": {
      "description": "City.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "match": {
      "description": "How the text filters match: exact (default), contains or starts_with (case-insensitive wildcard match; % and ? in the text are wildcards).",
      "type": "string",
      "enum": [
        "exact",
        "contains",
        "starts_with"
      ]
    },
    "limit": {
      "description": "Results per page, 1-2000 (default 50).",
      "type": "integer",
      "minimum": 1,
      "maximum": 2000
    },
    "offset": {
      "description": "Number of results to skip (default 0). Use next_offset from the previous reply.",
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢eboekhouden_get_member(id)

One member; only available to clubs and associations. GET /v1/member/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "The member id (from eboekhouden_list_members)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴eboekhouden_create_relation(type, code, name, salutation, contact, ...)

Create a new relation (customer or supplier) in the administration. Only name is required; the code is generated when omitted. Returns the new id and code. POST /v1/relation.

輸入結構描述

{
  "type": "object",
  "properties": {
    "type": {
      "description": "Business (B, default) or Private (P).",
      "type": "string",
      "enum": [
        "B",
        "P"
      ]
    },
    "code": {
      "description": "Relation code (max 15; generated when empty on create).",
      "type": "string",
      "minLength": 1,
      "maxLength": 15
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "The (company) name (max 100)."
    },
    "salutation": {
      "type": "string",
      "maxLength": 50
    },
    "contact": {
      "description": "Contact person.",
      "type": "string",
      "maxLength": 50
    },
    "gender": {
      "description": "m = male, v = female, a = department.",
      "type": "string",
      "enum": [
        "m",
        "v",
        "a"
      ]
    },
    "address": {
      "type": "string",
      "maxLength": 150
    },
    "postal_code": {
      "type": "string",
      "maxLength": 50
    },
    "city": {
      "type": "string",
      "maxLength": 50
    },
    "country": {
      "type": "string",
      "maxLength": 50
    },
    "phone_number": {
      "type": "string",
      "maxLength": 50
    },
    "mobile_phone_number": {
      "type": "string",
      "maxLength": 50
    },
    "email_address": {
      "type": "string",
      "maxLength": 150
    },
    "email_address_invoice": {
      "description": "Address invoices are sent to.",
      "type": "string",
      "maxLength": 150
    },
    "email_address_reminder": {
      "description": "Address payment reminders are sent to.",
      "type": "string",
      "maxLength": 150
    },
    "website": {
      "type": "string",
      "maxLength": 50
    },
    "note": {
      "type": "string",
      "maxLength": 40000
    },
    "vat_number": {
      "type": "string",
      "maxLength": 50
    },
    "company_registration_number": {
      "description": "Chamber of Commerce (KvK) number; digits only.",
      "type": "string",
      "maxLength": 50
    },
    "iban": {
      "type": "string",
      "maxLength": 50
    },
    "bic": {
      "type": "string",
      "maxLength": 20
    },
    "term_of_payment": {
      "description": "Default payment term in days.",
      "type": "integer",
      "minimum": 0,
      "maximum": 3650
    },
    "ledger_id": {
      "description": "Ledger id of this relation (from eboekhouden_list_ledgers).",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴eboekhouden_update_relation(id, type, code, name, salutation, ...)

Change fields of an existing relation. The tool first reads the relation, then sends its current values with your changes on top (the API requires name on every update), so fields you do not pass keep their values. This overwrites the current values of the fields you pass. GET + PATCH /v1/relation/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "The relation id (from eboekhouden_list_relations)."
    },
    "type": {
      "description": "Business (B, default) or Private (P).",
      "type": "string",
      "enum": [
        "B",
        "P"
      ]
    },
    "code": {
      "description": "Relation code (max 15; generated when empty on create).",
      "type": "string",
      "minLength": 1,
      "maxLength": 15
    },
    "name": {
      "description": "The (company) name (max 100).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "salutation": {
      "type": "string",
      "maxLength": 50
    },
    "contact": {
      "description": "Contact person.",
      "type": "string",
      "maxLength": 50
    },
    "gender": {
      "description": "m = male, v = female, a = department.",
      "type": "string",
      "enum": [
        "m",
        "v",
        "a"
      ]
    },
    "address": {
      "type": "string",
      "maxLength": 150
    },
    "postal_code": {
      "type": "string",
      "maxLength": 50
    },
    "city": {
      "type": "string",
      "maxLength": 50
    },
    "country": {
      "type": "string",
      "maxLength": 50
    },
    "phone_number": {
      "type": "string",
      "maxLength": 50
    },
    "mobile_phone_number": {
      "type": "string",
      "maxLength": 50
    },
    "email_address": {
      "type": "string",
      "maxLength": 150
    },
    "email_address_invoice": {
      "description": "Address invoices are sent to.",
      "type": "string",
      "maxLength": 150
    },
    "email_address_reminder": {
      "description": "Address payment reminders are sent to.",
      "type": "string",
      "maxLength": 150
    },
    "website": {
      "type": "string",
      "maxLength": 50
    },
    "note": {
      "type": "string",
      "maxLength": 40000
    },
    "vat_number": {
      "type": "string",
      "maxLength": 50
    },
    "company_registration_number": {
      "description": "Chamber of Commerce (KvK) number; digits only.",
      "type": "string",
      "maxLength": 50
    },
    "iban": {
      "type": "string",
      "maxLength": 50
    },
    "bic": {
      "type": "string",
      "maxLength": 20
    },
    "term_of_payment": {
      "description": "Default payment term in days.",
      "type": "integer",
      "minimum": 0,
      "maximum": 3650
    },
    "ledger_id": {
      "description": "Ledger id of this relation (from eboekhouden_list_ledgers).",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    },
    "inactive": {
      "description": "Mark the relation inactive (true) or active (false).",
      "type": "boolean"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴eboekhouden_create_product(code, description, vat, ledger_id, price_excl, ...)

Create a product or service. Needs code, description, a sale VAT code and a ledger id, and exactly one of price_excl or price_incl. Returns the new id. POST /v1/product.

輸入結構描述

{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 20,
      "description": "Product code (max 20)."
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "maxLength": 35000,
      "description": "Product description."
    },
    "vat": {
      "type": "string",
      "pattern": "^[A-Z][A-Z0-9_]{1,29}$",
      "description": "Sale VAT code of the account's country, e.g. HOOG_VERK_21, LAAG_VERK_9, BE_21_VERK or GEEN (purchase codes are refused by the API)."
    },
    "ledger_id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "Revenue ledger id (from eboekhouden_list_ledgers)."
    },
    "price_excl": {
      "description": "Price excluding VAT (not with price_incl).",
      "type": "number",
      "minimum": -999999999999,
      "maximum": 999999999999
    },
    "price_incl": {
      "description": "Price including VAT (not with price_excl).",
      "type": "number",
      "minimum": -999999999999,
      "maximum": 999999999999
    },
    "purchase_price_excl": {
      "description": "Purchase price excluding VAT.",
      "type": "number",
      "minimum": -999999999999,
      "maximum": 999999999999
    },
    "unit_id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "Unit id from eboekhouden_list_units."
    },
    "group_id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "Product group id from eboekhouden_list_product_groups."
    },
    "cost_center_id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "Cost center id from eboekhouden_list_cost_centers."
    },
    "active": {
      "description": "Whether the product is active.",
      "type": "boolean"
    },
    "in_stock_management": {
      "description": "Include in automatic stock management.",
      "type": "boolean"
    }
  },
  "required": [
    "code",
    "description",
    "vat",
    "ledger_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴eboekhouden_create_invoice(relation_id, template_id, term_of_payment, items, date, ...)

Create a sales invoice for a relation. PERMANENT: the API cannot change or delete invoices afterwards, and an invoice number is used up. The invoice is created only: it is NOT e-mailed to the customer, NOT booked as a mutation and no direct debit is set. Needs relation_id, template_id (eboekhouden_list_invoice_templates), term_of_payment in days and at least one item with a ledger_id. Returns the new id and invoice number. POST /v1/invoice.

輸入結構描述

{
  "type": "object",
  "properties": {
    "relation_id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "The relation id (from eboekhouden_list_relations)."
    },
    "template_id": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2147483647,
      "description": "The invoice template id (from eboekhouden_list_invoice_templates)."
    },
    "term_of_payment": {
      "type": "integer",
      "minimum": 0,
      "maximum": 3650,
      "description": "Payment term in days."
    },
    "items": {
      "minItems": 1,
      "maxItems": 200,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 5000,
            "description": "Item description."
          },
          "quantity": {
            "description": "Quantity, up to 4 decimals (default 1).",
            "type": "number",
            "exclusiveMinimum": 0,
            "maximum": 1000000000
          },
          "price_per_unit": {
            "description": "Price per unit: excluding VAT when in_ex_vat is EX (default), including VAT when IN.",
            "type": "number",
            "minimum": -1000000000,
            "maximum": 1000000000
          },
          "vat_code": {
            "type": "string",
            "pattern": "^[A-Z][A-Z0-9_]{1,29}$",
            "description": "VAT code of the account's country. NL sale: HOOG_VERK_21 (21%), LAAG_VERK_9 (9%), VERL_VERK (reverse charge), BU_EU_VERK, BI_EU_VERK, AFST_VERK, AFW_VERK (divergent, needs vat_amount). BE sale: BE_21_VERK, BE_12_VERK, BE_6_VERK, BE_0_VERK, BE_IC_VERK, BE_EXP_VERK. GEEN = no VAT."
          },
          "vat_amount": {
            "description": "VAT amount of the item; only with vat_code AFW_VERK.",
            "type": "number",
            "minimum": -1000000000,
            "maximum": 1000000000
          },
          "ledger_id": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Ledger (revenue account) id from eboekhouden_list_ledgers."
          },
          "product_id": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "An existing product id (from eboekhouden_list_products); then code is ignored."
          },
          "code": {
            "description": "Item code.",
            "type": "string",
            "maxLength": 50
          },
          "unit_id": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Unit id from eboekhouden_list_units."
          },
          "cost_center_id": {
            "type": "integer",
            "minimum": 1,
            "maximum": 2147483647,
            "description": "Cost center id from eboekhouden_list_cost_centers."
          },
          "discount_amount": {
            "description": "Fixed discount on price_per_unit (not with discount_percentage).",
            "type": "number",
            "minimum": 0,
            "maximum": 1000000000
          },
          "discount_percentage": {
            "description": "Percentage discount (not with discount_amount).",
            "type": "number",
            "minimum": 0,
            "maximum": 100
          }
        },
        "required": [
          "description",
          "vat_code",
          "ledger_id"
        ]
      },
      "description": "1-200 invoice items."
    },
    "date": {
      "description": "Invoice date yyyy-mm-dd (default today).",
      "type": "string"
    },
    "invoice_number": {
      "description": "Invoice number; must end with a number. Generated when omitted.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "in_ex_vat": {
      "description": "Whether price_per_unit includes (IN) or excludes (EX) VAT.",
      "type": "string",
      "enum": [
        "IN",
        "EX"
      ]
    },
    "reference": {
      "description": "Payment reference.",
      "type": "string",
      "maxLength": 50
    },
    "text": {
      "description": "Text on the invoice.",
      "type": "string",
      "maxLength": 35000
    }
  },
  "required": [
    "relation_id",
    "template_id",
    "term_of_payment",
    "items"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本25 個工具