FastBill MCP by usefulapi

Read FastBill customers, invoices, estimates, expenses; create customers, invoices, projects.

使うべきか

品質と安全性

A
説明の品質
95%
スキーマの完全性
89%
命名の品質
79%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(1)

  • LOWTool 'fastbill_list_recurring_invoices' name length outside 3-30 rangefastbill_list_recurring_invoices 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~6,781トークン数(ツール定義)
~2.7 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 5.30%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "fastbill": {
      "url": "https://fastbill.usefulapi.io/mcp"
    }
  }
}

リモートエンドポイント

https://fastbill.usefulapi.io/mcpstreamable-http

できること

ツール一覧

ツール(22)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢fastbill_list_customers(term, customer_number, country_code, city, limit, ...)

List customers (name, address, e-mail, VAT id, payment terms and bank details as stored in FastBill). Filter by search term (organization, name, address, zip, e-mail or tags), customer number, country or city. customer.get.

入力スキーマ

{
  "type": "object",
  "properties": {
    "term": {
      "description": "Search term matched against organization, first/last name, address, zip code, e-mail and tags.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "customer_number": {
      "description": "Exact customer number.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "country_code": {
      "description": "ISO 3166 alpha-2 country code, e.g. DE.",
      "type": "string",
      "pattern": "^[A-Za-z]{2}$"
    },
    "city": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "limit": {
      "description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fastbill_get_customer(customer_id)

One customer by FastBill customer id. customer.get with CUSTOMER_ID.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FastBill customer id."
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fastbill_list_contacts(customer_id, customer_number, term, contact_id, limit, ...)

List contact persons of customers (name, position, e-mail, phone). Filter by customer, search term or contact id. contact.get.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "description": "Only contacts of this customer id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "customer_number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "term": {
      "description": "Search term matched against organization, name, address, zip code, e-mail and tags.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "contact_id": {
      "description": "One contact id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "limit": {
      "description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fastbill_list_invoices(customer_id, invoice_number, type, start_date, end_date, ...)

List outgoing invoices, drafts and credit notes with totals, state (draft, unpaid, overdue, paid, canceled), dates and line items. Filter by customer, number, type, date ranges (invoice date, due date, paid date, last update). invoice.get.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "invoice_number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "type": {
      "description": "outgoing = finalized invoice, draft, credit = credit note.",
      "type": "string",
      "enum": [
        "outgoing",
        "draft",
        "credit"
      ]
    },
    "start_date": {
      "description": "Invoices dated on or after this day.",
      "type": "string"
    },
    "end_date": {
      "description": "Invoices dated up to this day.",
      "type": "string"
    },
    "start_due_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "end_due_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "start_paid_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "end_paid_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "start_lastupdate": {
      "description": "Changed on or after this day.",
      "type": "string"
    },
    "end_lastupdate": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "limit": {
      "description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fastbill_get_invoice(invoice_id)

One invoice by FastBill invoice id, with all line items, VAT, payments and the document URL. invoice.get with INVOICE_ID.

入力スキーマ

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FastBill invoice id."
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fastbill_list_recurring_invoices(invoice_id, limit, offset)

List recurring invoice templates (customer, interval data, totals, items). recurring.get.

入力スキーマ

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "description": "One recurring invoice id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "limit": {
      "description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fastbill_list_estimates(customer_id, estimate_id, estimate_number, start_date, end_date, ...)

List estimates (quotes) with state (a created, b sent, c negotiation, d accepted, e rejected, f invoiced), totals and items. estimate.get.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "estimate_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "estimate_number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "start_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "end_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "limit": {
      "description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fastbill_list_expenses(invoice_id, invoice_number, start_date, end_date, start_paid_date, ...)

List expense entries (supplier, category, net/VAT/gross, dates, document URL). Filter by invoice number or date ranges. expense.get.

入力スキーマ

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "invoice_number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "start_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "end_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "start_paid_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "end_paid_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "limit": {
      "description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fastbill_list_revenues(customer_id, invoice_number, start_date, end_date, start_paid_date, ...)

List revenue entries (income booked in FastBill: customer, totals, dates, payments). Takes the same filters as invoices. revenue.get.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "invoice_number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "start_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "end_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "start_paid_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "end_paid_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "limit": {
      "description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fastbill_list_articles(article_id, article_number, limit, offset)

List products and services (article number, type, title, unit price, VAT, unit). article.get.

入力スキーマ

{
  "type": "object",
  "properties": {
    "article_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "article_number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "limit": {
      "description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fastbill_list_projects(project_id, customer_id, limit, offset)

List projects (name, customer, hourly rate, VAT, start/end date). project.get.

入力スキーマ

{
  "type": "object",
  "properties": {
    "project_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "limit": {
      "description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fastbill_list_time_entries(customer_id, project_id, time_id, date, start_date, ...)

List work time entries (customer, project, date, minutes, billable minutes, comment, invoice). Without filters FastBill returns the latest entries of the current month. time.get.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "project_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "time_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "date": {
      "description": "One day.",
      "type": "string"
    },
    "start_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "end_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "limit": {
      "description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢fastbill_list_templates(limit, offset)

List the invoice/estimate templates (template id, name, hash). Use a template id with the create tools. Ids change whenever a template is edited. template.get.

入力スキーマ

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100
    },
    "offset": {
      "description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset.",
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡fastbill_create_customer(customer_type, organization, first_name, last_name, salutation, ...)

WRITE: create a customer. customer_type is required; a business needs organization, a consumer needs last_name. Bank details are not accepted by this tool. FastBill does not check for duplicates, so search with fastbill_list_customers first. customer.create.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_type": {
      "type": "string",
      "enum": [
        "business",
        "consumer"
      ],
      "description": "business or consumer."
    },
    "organization": {
      "description": "Company name (required for a business customer).",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "first_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "last_name": {
      "description": "Required for a consumer.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "salutation": {
      "type": "string",
      "enum": [
        "mr",
        "mrs",
        "family"
      ]
    },
    "position": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "academic_degree": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "address": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "address_2": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "zipcode": {
      "type": "string",
      "minLength": 1,
      "maxLength": 30
    },
    "city": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "country_code": {
      "description": "ISO 3166 alpha-2, e.g. DE.",
      "type": "string",
      "pattern": "^[A-Za-z]{2}$"
    },
    "email": {
      "type": "string",
      "minLength": 1,
      "maxLength": 254
    },
    "phone": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "mobile": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "website": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "vat_id": {
      "description": "VAT identification number.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "currency_code": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$"
    },
    "customer_number": {
      "description": "Own customer number (FastBill assigns one if omitted).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "days_for_payment": {
      "description": "Days until payment is due (stored with payment_type 1 only).",
      "type": "integer",
      "minimum": 0,
      "maximum": 3650
    },
    "payment_type": {
      "type": "integer",
      "minimum": 1,
      "maximum": 6,
      "description": "1 transfer, 3 cash, 4 PayPal, 5 advance payment, 6 credit card (direct debit needs bank details: set it in FastBill)."
    },
    "tags": {
      "description": "Comma-separated tags.",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    }
  },
  "required": [
    "customer_type"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴fastbill_update_customer(customer_id, customer_type, organization, first_name, last_name, ...)

WRITE: update fields of an existing customer; only the fields you pass change. Bank details are not accepted by this tool. customer.update.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FastBill customer id."
    },
    "customer_type": {
      "type": "string",
      "enum": [
        "business",
        "consumer"
      ]
    },
    "organization": {
      "description": "Company name (required for a business customer).",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "first_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "last_name": {
      "description": "Required for a consumer.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "salutation": {
      "type": "string",
      "enum": [
        "mr",
        "mrs",
        "family"
      ]
    },
    "position": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "academic_degree": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "address": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "address_2": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "zipcode": {
      "type": "string",
      "minLength": 1,
      "maxLength": 30
    },
    "city": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "country_code": {
      "description": "ISO 3166 alpha-2, e.g. DE.",
      "type": "string",
      "pattern": "^[A-Za-z]{2}$"
    },
    "email": {
      "type": "string",
      "minLength": 1,
      "maxLength": 254
    },
    "phone": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "mobile": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "website": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "vat_id": {
      "description": "VAT identification number.",
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "currency_code": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$"
    },
    "customer_number": {
      "description": "Own customer number (FastBill assigns one if omitted).",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "days_for_payment": {
      "description": "Days until payment is due (stored with payment_type 1 only).",
      "type": "integer",
      "minimum": 0,
      "maximum": 3650
    },
    "payment_type": {
      "type": "integer",
      "minimum": 1,
      "maximum": 6,
      "description": "1 transfer, 3 cash, 4 PayPal, 5 advance payment, 6 credit card (direct debit needs bank details: set it in FastBill)."
    },
    "tags": {
      "description": "Comma-separated tags.",
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    }
  },
  "required": [
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡fastbill_create_invoice(customer_id, items, currency_code, template_id, introtext, ...)

WRITE: create an invoice for a customer from line items. FastBill stores it as a draft; it gets its number and becomes final only with fastbill_complete_invoice, and it is never sent by this tool. Check the result with fastbill_get_invoice. invoice.create.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FastBill customer id (see fastbill_list_customers)."
    },
    "items": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000,
            "description": "Line description."
          },
          "unit_price": {
            "type": "number",
            "description": "Price per unit (net, or gross when is_gross is true)."
          },
          "vat_percent": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "description": "VAT in percent, e.g. 19."
          },
          "quantity": {
            "description": "Quantity (default 1).",
            "type": "number",
            "exclusiveMinimum": 0
          },
          "unit": {
            "description": "Unit, e.g. h or pcs.",
            "type": "string",
            "minLength": 1,
            "maxLength": 50
          },
          "article_number": {
            "description": "Article number of a FastBill product.",
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "discount_percent": {
            "description": "Item discount in percent.",
            "type": "number",
            "minimum": 0,
            "maximum": 100
          }
        },
        "required": [
          "description",
          "unit_price",
          "vat_percent"
        ]
      },
      "description": "Line items (1-100)."
    },
    "currency_code": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$"
    },
    "template_id": {
      "description": "Template id from fastbill_list_templates.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "introtext": {
      "description": "Introduction text above the items.",
      "type": "string",
      "minLength": 1,
      "maxLength": 5000
    },
    "is_gross": {
      "description": "True when unit_price values are gross.",
      "type": "boolean"
    },
    "discount_percent": {
      "description": "Document discount in percent.",
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "invoice_title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "invoice_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "delivery_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "service_period_start": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "service_period_end": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "vat_case": {
      "description": "VAT case (default standard).",
      "type": "string",
      "enum": [
        "standard",
        "small_business_regulation",
        "b2c_eu_goods",
        "b2c_noneu_goods",
        "b2b_eu_goods",
        "b2b_eu_services",
        "b2b_noneu_goods",
        "b2b_noneu_services"
      ]
    },
    "cash_discount_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "cash_discount_days": {
      "type": "integer",
      "minimum": 0,
      "maximum": 3650
    },
    "customer_order_reference": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "contract_reference": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "customer_id",
    "items"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴fastbill_complete_invoice(invoice_id)

WRITE, NOT REVERSIBLE: turn a draft invoice into a final invoice. FastBill assigns the invoice number and PDF; a final invoice can no longer be edited (it can only be canceled in FastBill). Nothing is sent to the customer. Only call this after the user confirmed the draft. invoice.complete.

入力スキーマ

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FastBill id of the DRAFT invoice."
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴fastbill_set_invoice_paid(invoice_id, paid_date, payment_method)

WRITE: mark a final invoice as paid, with the payment date and method. invoice.setpaid.

入力スキーマ

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FastBill invoice id."
    },
    "paid_date": {
      "description": "Date the payment arrived (default: FastBill's choice, today).",
      "type": "string"
    },
    "payment_method": {
      "description": "e.g. paypal, cash, bank name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡fastbill_create_estimate(customer_id, items, currency_code, template_id, introtext, ...)

WRITE: create an estimate (quote) for a customer from line items. It is not sent. estimate.create.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FastBill customer id (see fastbill_list_customers)."
    },
    "items": {
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000,
            "description": "Line description."
          },
          "unit_price": {
            "type": "number",
            "description": "Price per unit (net, or gross when is_gross is true)."
          },
          "vat_percent": {
            "type": "number",
            "minimum": 0,
            "maximum": 100,
            "description": "VAT in percent, e.g. 19."
          },
          "quantity": {
            "description": "Quantity (default 1).",
            "type": "number",
            "exclusiveMinimum": 0
          },
          "unit": {
            "description": "Unit, e.g. h or pcs.",
            "type": "string",
            "minLength": 1,
            "maxLength": 50
          },
          "article_number": {
            "description": "Article number of a FastBill product.",
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "discount_percent": {
            "description": "Item discount in percent.",
            "type": "number",
            "minimum": 0,
            "maximum": 100
          }
        },
        "required": [
          "description",
          "unit_price",
          "vat_percent"
        ]
      },
      "description": "Line items (1-100)."
    },
    "currency_code": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$"
    },
    "template_id": {
      "description": "Template id from fastbill_list_templates.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "introtext": {
      "description": "Introduction text above the items.",
      "type": "string",
      "minLength": 1,
      "maxLength": 5000
    },
    "is_gross": {
      "description": "True when unit_price values are gross.",
      "type": "boolean"
    },
    "discount_percent": {
      "description": "Document discount in percent.",
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "estimate_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    }
  },
  "required": [
    "customer_id",
    "items"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡fastbill_create_article(article_number, title, unit_price, type, description, ...)

WRITE: create a product or service (article number, title and unit price are required). article.create.

入力スキーマ

{
  "type": "object",
  "properties": {
    "article_number": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Unique article number."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "unit_price": {
      "type": "number"
    },
    "type": {
      "type": "string",
      "enum": [
        "product",
        "digital_product",
        "service",
        "none"
      ]
    },
    "description": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "unit": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50
    },
    "currency_code": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$"
    },
    "vat_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "is_gross": {
      "description": "True when unit_price is gross.",
      "type": "boolean"
    },
    "tags": {
      "type": "string",
      "minLength": 1,
      "maxLength": 500
    }
  },
  "required": [
    "article_number",
    "title",
    "unit_price"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡fastbill_create_project(project_name, customer_id, hour_price, currency_code, vat_percent, ...)

WRITE: create a project for a customer (name and customer are required). project.create.

入力スキーマ

{
  "type": "object",
  "properties": {
    "project_name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "FastBill customer id."
    },
    "hour_price": {
      "description": "Hourly rate.",
      "type": "number",
      "minimum": 0
    },
    "currency_code": {
      "type": "string",
      "pattern": "^[A-Za-z]{3}$"
    },
    "vat_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "start_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "end_date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    }
  },
  "required": [
    "project_name",
    "customer_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡fastbill_create_time_entry(customer_id, project_id, start_time, end_time, minutes, ...)

WRITE: book a work time entry on a project (customer, project and start time are required). time.create.

入力スキーマ

{
  "type": "object",
  "properties": {
    "customer_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "project_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "start_time": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$",
      "description": "Date and time, YYYY-MM-DD hh:mm:ss."
    },
    "end_time": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$",
      "description": "Date and time, YYYY-MM-DD hh:mm:ss."
    },
    "minutes": {
      "description": "Duration in minutes (not calculated from the times).",
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "billable_minutes": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000
    },
    "article_id": {
      "description": "The service (article id) of the entry.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "date": {
      "type": "string",
      "description": "A date, yyyy-mm-dd."
    },
    "comment": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    }
  },
  "required": [
    "customer_id",
    "project_id",
    "start_time"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 22 件