Read FastBill customers, invoices, estimates, expenses; create customers, invoices, projects.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
FastBill id of the DRAFT invoice.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
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.
| Argument | Type | Description |
|---|---|---|
| invoice_id* | integer | FastBill id of the DRAFT invoice. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"invoice_id"
],
"properties": {
"invoice_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "FastBill id of the DRAFT invoice.",
"exclusiveMinimum": 0
}
}
}WRITE: create a product or service (article number, title and unit price are required). article.create.
| Argument | Type | Description |
|---|---|---|
| tags | string | |
| type | string | |
| unit | string | |
| title* | string | |
| is_gross | boolean | True when unit_price is gross. |
| unit_price* | number | |
| description | string | |
| vat_percent | number | |
| currency_code | string | |
| article_number* | string | Unique article number. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"article_number",
"title",
"unit_price"
],
"properties": {
"tags": {
"type": "string",
"maxLength": 500,
"minLength": 1
},
"type": {
"enum": [
"product",
"digital_product",
"service",
"none"
],
"type": "string"
},
"unit": {
"type": "string",
"maxLength": 50,
"minLength": 1
},
"title": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"is_gross": {
"type": "boolean",
"description": "True when unit_price is gross."
},
"unit_price": {
"type": "number"
},
"description": {
"type": "string",
"maxLength": 2000,
"minLength": 1
},
"vat_percent": {
"type": "number",
"maximum": 100,
"minimum": 0
},
"currency_code": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
"article_number": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Unique article number."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| city | string | |
| tags | string | Comma-separated tags. |
| string | ||
| phone | string | |
| mobile | string | |
| vat_id | string | VAT identification number. |
| address | string | |
| website | string | |
| zipcode | string | |
| position | string | |
| address_2 | string | |
WRITE: create an estimate (quote) for a customer from line items. It is not sent. estimate.create.
| Argument | Type | Description |
|---|---|---|
| items* | array | Line items (1-100). |
| is_gross | boolean | True when unit_price values are gross. |
| introtext | string | Introduction text above the items. |
| customer_id* | integer | FastBill customer id (see fastbill_list_customers). |
| template_id | integer | Template id from fastbill_list_templates. |
| currency_code | string | |
| estimate_date | string | A date, yyyy-mm-dd. |
| discount_percent | number | Document discount in percent. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id",
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"description",
"unit_price",
"vat_percent"
],
"properties": {
"unit": {
"type": "string",
"maxLength": 50,
"minLength": 1,
"description": "Unit, e.g. h or pcs."
},
"quantity": {
"type": "number",
"description": "Quantity (default 1).",
"exclusiveMinimum": 0
},
"unit_price": {
"type": "number",
"description": "Price per unit (net, or gross when is_gross is true)."
},
"description": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "Line description."
},
"vat_percent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "VAT in percent, e.g. 19."
},
"article_number": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Article number of a FastBill product."
},
"discount_percent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Item discount in percent."
}
}
},
"maxItems": 100,
"minItems": 1,
"description": "Line items (1-100)."
},
"is_gross": {
"type": "boolean",
"description": "True when unit_price values are gross."
},
"introtext": {
"type": "string",
"maxLength": 5000,
"minLength": 1,
"description": "Introduction text above the items."
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "FastBill customer id (see fastbill_list_customers).",
"exclusiveMinimum": 0
},
"template_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Template id from fastbill_list_templates.",
"exclusiveMinimum": 0
},
"currency_code": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
"estimate_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"discount_percent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Document discount in percent."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| items* | array | Line items (1-100). |
| is_gross | boolean | True when unit_price values are gross. |
| vat_case | string | VAT case (default standard). |
| introtext | string | Introduction text above the items. |
| customer_id* | integer | FastBill customer id (see fastbill_list_customers). |
| template_id | integer | Template id from fastbill_list_templates. |
| invoice_date | string | A date, yyyy-mm-dd. |
| currency_code | string | |
| delivery_date | string | A date, yyyy-mm-dd. |
WRITE: create a project for a customer (name and customer are required). project.create.
| Argument | Type | Description |
|---|---|---|
| end_date | string | A date, yyyy-mm-dd. |
| hour_price | number | Hourly rate. |
| start_date | string | A date, yyyy-mm-dd. |
| customer_id* | integer | FastBill customer id. |
| vat_percent | number | |
| project_name* | string | |
| currency_code | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"project_name",
"customer_id"
],
"properties": {
"end_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"hour_price": {
"type": "number",
"minimum": 0,
"description": "Hourly rate."
},
"start_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "FastBill customer id.",
"exclusiveMinimum": 0
},
"vat_percent": {
"type": "number",
"maximum": 100,
"minimum": 0
},
"project_name": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"currency_code": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
}
}
}WRITE: book a work time entry on a project (customer, project and start time are required). time.create.
| Argument | Type | Description |
|---|---|---|
| date | string | A date, yyyy-mm-dd. |
| comment | string | |
| minutes | integer | Duration in minutes (not calculated from the times). |
| end_time | string | Date and time, YYYY-MM-DD hh:mm:ss. |
| article_id | integer | The service (article id) of the entry. |
| project_id* | integer | |
| start_time* | string | Date and time, YYYY-MM-DD hh:mm:ss. |
| customer_id* | integer | |
| billable_minutes | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id",
"project_id",
"start_time"
],
"properties": {
"date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"comment": {
"type": "string",
"maxLength": 1000,
"minLength": 1
},
"minutes": {
"type": "integer",
"maximum": 100000,
"minimum": 0,
"description": "Duration in minutes (not calculated from the times)."
},
"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."
},
"article_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The service (article id) of the entry.",
"exclusiveMinimum": 0
},
"project_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"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."
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"billable_minutes": {
"type": "integer",
"maximum": 100000,
"minimum": 0
}
}
}One customer by FastBill customer id. customer.get with CUSTOMER_ID.
| Argument | Type | Description |
|---|---|---|
| customer_id* | integer | FastBill customer id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "FastBill customer id.",
"exclusiveMinimum": 0
}
}
}One invoice by FastBill invoice id, with all line items, VAT, payments and the document URL. invoice.get with INVOICE_ID.
| Argument | Type | Description |
|---|---|---|
| invoice_id* | integer | FastBill invoice id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"invoice_id"
],
"properties": {
"invoice_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "FastBill invoice id.",
"exclusiveMinimum": 0
}
}
}List products and services (article number, type, title, unit price, VAT, unit). article.get.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota. |
| offset | integer | Index of the first result, from 0 (default 0). Pass the previous reply's next_offset. |
| article_id | integer | |
| article_number | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."
},
"article_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"article_number": {
"type": "string",
"maxLength": 100,
"minLength": 1
}
}
}List contact persons of customers (name, position, e-mail, phone). Filter by customer, search term or contact id. contact.get.
| Argument | Type | Description |
|---|---|---|
| term | string | Search term matched against organization, name, address, zip code, e-mail and tags. |
| limit | integer | Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota. |
| offset | integer | Index of the first result, from 0 (default 0). Pass the previous reply's next_offset. |
| contact_id | integer | One contact id. |
| customer_id | integer | Only contacts of this customer id. |
| customer_number | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"term": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Search term matched against organization, name, address, zip code, e-mail and tags."
},
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."
},
"contact_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "One contact id.",
"exclusiveMinimum": 0
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Only contacts of this customer id.",
"exclusiveMinimum": 0
},
"customer_number": {
"type": "string",
"maxLength": 100,
"minLength": 1
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| city | string | |
| term | string | Search term matched against organization, first/last name, address, zip code, e-mail and tags. |
| limit | integer | Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota. |
| offset | integer | Index of the first result, from 0 (default 0). Pass the previous reply's next_offset. |
| country_code | string | ISO 3166 alpha-2 country code, e.g. DE. |
| customer_number | string | Exact customer number. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"city": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"term": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Search term matched against organization, first/last name, address, zip code, e-mail and tags."
},
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."
},
"country_code": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO 3166 alpha-2 country code, e.g. DE."
},
"customer_number": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Exact customer number."
}
}
}List estimates (quotes) with state (a created, b sent, c negotiation, d accepted, e rejected, f invoiced), totals and items. estimate.get.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota. |
| offset | integer | Index of the first result, from 0 (default 0). Pass the previous reply's next_offset. |
| end_date | string | A date, yyyy-mm-dd. |
| start_date | string | A date, yyyy-mm-dd. |
| customer_id | integer | |
| estimate_id | integer | |
| estimate_number | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."
},
"end_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"start_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"estimate_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"estimate_number": {
"type": "string",
"maxLength": 100,
"minLength": 1
}
}
}List expense entries (supplier, category, net/VAT/gross, dates, document URL). Filter by invoice number or date ranges. expense.get.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota. |
| offset | integer | Index of the first result, from 0 (default 0). Pass the previous reply's next_offset. |
| end_date | string | A date, yyyy-mm-dd. |
| invoice_id | integer | |
| start_date | string | A date, yyyy-mm-dd. |
| end_paid_date | string | A date, yyyy-mm-dd. |
| invoice_number | string | |
| start_paid_date | string | A date, yyyy-mm-dd. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."
},
"end_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"invoice_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"start_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"end_paid_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"invoice_number": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"start_paid_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| type | string | outgoing = finalized invoice, draft, credit = credit note. |
| limit | integer | Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota. |
| offset | integer | Index of the first result, from 0 (default 0). Pass the previous reply's next_offset. |
| end_date | string | Invoices dated up to this day. |
| start_date | string | Invoices dated on or after this day. |
| customer_id | integer | |
| end_due_date | string | A date, yyyy-mm-dd. |
| end_paid_date | string | A date, yyyy-mm-dd. |
| end_lastupdate |
List projects (name, customer, hourly rate, VAT, start/end date). project.get.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota. |
| offset | integer | Index of the first result, from 0 (default 0). Pass the previous reply's next_offset. |
| project_id | integer | |
| customer_id | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."
},
"project_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}List recurring invoice templates (customer, interval data, totals, items). recurring.get.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota. |
| offset | integer | Index of the first result, from 0 (default 0). Pass the previous reply's next_offset. |
| invoice_id | integer | One recurring invoice id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."
},
"invoice_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "One recurring invoice id.",
"exclusiveMinimum": 0
}
}
}List revenue entries (income booked in FastBill: customer, totals, dates, payments). Takes the same filters as invoices. revenue.get.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota. |
| offset | integer | Index of the first result, from 0 (default 0). Pass the previous reply's next_offset. |
| end_date | string | A date, yyyy-mm-dd. |
| start_date | string | A date, yyyy-mm-dd. |
| customer_id | integer | |
| end_paid_date | string | A date, yyyy-mm-dd. |
| invoice_number | string | |
| start_paid_date | string | A date, yyyy-mm-dd. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."
},
"end_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"start_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"end_paid_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"invoice_number": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"start_paid_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota. |
| offset | integer | Index of the first result, from 0 (default 0). Pass the previous reply's next_offset. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| date | string | One day. |
| limit | integer | Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota. |
| offset | integer | Index of the first result, from 0 (default 0). Pass the previous reply's next_offset. |
| time_id | integer | |
| end_date | string | A date, yyyy-mm-dd. |
| project_id | integer | |
| start_date | string | A date, yyyy-mm-dd. |
| customer_id | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"date": {
"type": "string",
"description": "One day."
},
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."
},
"time_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"end_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"project_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"start_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}WRITE: mark a final invoice as paid, with the payment date and method. invoice.setpaid.
| Argument | Type | Description |
|---|---|---|
| paid_date | string | Date the payment arrived (default: FastBill's choice, today). |
| invoice_id* | integer | FastBill invoice id. |
| payment_method | string | e.g. paypal, cash, bank name. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"invoice_id"
],
"properties": {
"paid_date": {
"type": "string",
"description": "Date the payment arrived (default: FastBill's choice, today)."
},
"invoice_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "FastBill invoice id.",
"exclusiveMinimum": 0
},
"payment_method": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "e.g. paypal, cash, bank name."
}
}
}WRITE: update fields of an existing customer; only the fields you pass change. Bank details are not accepted by this tool. customer.update.
| Argument | Type | Description |
|---|---|---|
| city | string | |
| tags | string | Comma-separated tags. |
| string | ||
| phone | string | |
| mobile | string | |
| vat_id | string | VAT identification number. |
| address | string | |
| website | string | |
| zipcode | string | |
| position | string | |
| address_2 | string | |
| last_name |
| string |
| Required for a consumer. |
| first_name | string |
| salutation | string |
| country_code | string | ISO 3166 alpha-2, e.g. DE. |
| organization | string | Company name (required for a business customer). |
| payment_type | integer | 1 transfer, 3 cash, 4 PayPal, 5 advance payment, 6 credit card (direct debit needs bank details: set it in FastBill). |
| currency_code | string |
| customer_type* | string | business or consumer. |
| academic_degree | string |
| customer_number | string | Own customer number (FastBill assigns one if omitted). |
| days_for_payment | integer | Days until payment is due (stored with payment_type 1 only). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_type"
],
"properties": {
"city": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"tags": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Comma-separated tags."
},
"email": {
"type": "string",
"maxLength": 254,
"minLength": 1
},
"phone": {
"type": "string",
"maxLength": 50,
"minLength": 1
},
"mobile": {
"type": "string",
"maxLength": 50,
"minLength": 1
},
"vat_id": {
"type": "string",
"maxLength": 50,
"minLength": 1,
"description": "VAT identification number."
},
"address": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"website": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"zipcode": {
"type": "string",
"maxLength": 30,
"minLength": 1
},
"position": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"address_2": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"last_name": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Required for a consumer."
},
"first_name": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"salutation": {
"enum": [
"mr",
"mrs",
"family"
],
"type": "string"
},
"country_code": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO 3166 alpha-2, e.g. DE."
},
"organization": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Company name (required for a business customer)."
},
"payment_type": {
"type": "integer",
"maximum": 6,
"minimum": 1,
"description": "1 transfer, 3 cash, 4 PayPal, 5 advance payment, 6 credit card (direct debit needs bank details: set it in FastBill)."
},
"currency_code": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
"customer_type": {
"enum": [
"business",
"consumer"
],
"type": "string",
"description": "business or consumer."
},
"academic_degree": {
"type": "string",
"maxLength": 50,
"minLength": 1
},
"customer_number": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Own customer number (FastBill assigns one if omitted)."
},
"days_for_payment": {
"type": "integer",
"maximum": 3650,
"minimum": 0,
"description": "Days until payment is due (stored with payment_type 1 only)."
}
}
}| invoice_title |
| string |
| discount_percent | number | Document discount in percent. |
| cash_discount_days | integer |
| contract_reference | string |
| service_period_end | string | A date, yyyy-mm-dd. |
| service_period_start | string | A date, yyyy-mm-dd. |
| cash_discount_percent | number |
| customer_order_reference | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id",
"items"
],
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"description",
"unit_price",
"vat_percent"
],
"properties": {
"unit": {
"type": "string",
"maxLength": 50,
"minLength": 1,
"description": "Unit, e.g. h or pcs."
},
"quantity": {
"type": "number",
"description": "Quantity (default 1).",
"exclusiveMinimum": 0
},
"unit_price": {
"type": "number",
"description": "Price per unit (net, or gross when is_gross is true)."
},
"description": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "Line description."
},
"vat_percent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "VAT in percent, e.g. 19."
},
"article_number": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Article number of a FastBill product."
},
"discount_percent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Item discount in percent."
}
}
},
"maxItems": 100,
"minItems": 1,
"description": "Line items (1-100)."
},
"is_gross": {
"type": "boolean",
"description": "True when unit_price values are gross."
},
"vat_case": {
"enum": [
"standard",
"small_business_regulation",
"b2c_eu_goods",
"b2c_noneu_goods",
"b2b_eu_goods",
"b2b_eu_services",
"b2b_noneu_goods",
"b2b_noneu_services"
],
"type": "string",
"description": "VAT case (default standard)."
},
"introtext": {
"type": "string",
"maxLength": 5000,
"minLength": 1,
"description": "Introduction text above the items."
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "FastBill customer id (see fastbill_list_customers).",
"exclusiveMinimum": 0
},
"template_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Template id from fastbill_list_templates.",
"exclusiveMinimum": 0
},
"invoice_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"currency_code": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
"delivery_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"invoice_title": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"discount_percent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Document discount in percent."
},
"cash_discount_days": {
"type": "integer",
"maximum": 3650,
"minimum": 0
},
"contract_reference": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"service_period_end": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"service_period_start": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"cash_discount_percent": {
"type": "number",
"maximum": 100,
"minimum": 0
},
"customer_order_reference": {
"type": "string",
"maxLength": 200,
"minLength": 1
}
}
}| string |
| A date, yyyy-mm-dd. |
| invoice_number | string |
| start_due_date | string | A date, yyyy-mm-dd. |
| start_paid_date | string | A date, yyyy-mm-dd. |
| start_lastupdate | string | Changed on or after this day. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"type": {
"enum": [
"outgoing",
"draft",
"credit"
],
"type": "string",
"description": "outgoing = finalized invoice, draft, credit = credit note."
},
"limit": {
"type": "integer",
"maximum": 100,
"description": "Results per call, 1-100 (default 25). Every call counts against FastBill's hourly API quota.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 1000000,
"minimum": 0,
"description": "Index of the first result, from 0 (default 0). Pass the previous reply's next_offset."
},
"end_date": {
"type": "string",
"description": "Invoices dated up to this day."
},
"start_date": {
"type": "string",
"description": "Invoices dated on or after this day."
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"end_due_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"end_paid_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"end_lastupdate": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"invoice_number": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"start_due_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"start_paid_date": {
"type": "string",
"description": "A date, yyyy-mm-dd."
},
"start_lastupdate": {
"type": "string",
"description": "Changed on or after this day."
}
}
}| last_name |
| string |
| Required for a consumer. |
| first_name | string |
| salutation | string |
| customer_id* | integer | FastBill customer id. |
| country_code | string | ISO 3166 alpha-2, e.g. DE. |
| organization | string | Company name (required for a business customer). |
| payment_type | integer | 1 transfer, 3 cash, 4 PayPal, 5 advance payment, 6 credit card (direct debit needs bank details: set it in FastBill). |
| currency_code | string |
| customer_type | string |
| academic_degree | string |
| customer_number | string | Own customer number (FastBill assigns one if omitted). |
| days_for_payment | integer | Days until payment is due (stored with payment_type 1 only). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"customer_id"
],
"properties": {
"city": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"tags": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Comma-separated tags."
},
"email": {
"type": "string",
"maxLength": 254,
"minLength": 1
},
"phone": {
"type": "string",
"maxLength": 50,
"minLength": 1
},
"mobile": {
"type": "string",
"maxLength": 50,
"minLength": 1
},
"vat_id": {
"type": "string",
"maxLength": 50,
"minLength": 1,
"description": "VAT identification number."
},
"address": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"website": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"zipcode": {
"type": "string",
"maxLength": 30,
"minLength": 1
},
"position": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"address_2": {
"type": "string",
"maxLength": 200,
"minLength": 1
},
"last_name": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Required for a consumer."
},
"first_name": {
"type": "string",
"maxLength": 100,
"minLength": 1
},
"salutation": {
"enum": [
"mr",
"mrs",
"family"
],
"type": "string"
},
"customer_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "FastBill customer id.",
"exclusiveMinimum": 0
},
"country_code": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO 3166 alpha-2, e.g. DE."
},
"organization": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Company name (required for a business customer)."
},
"payment_type": {
"type": "integer",
"maximum": 6,
"minimum": 1,
"description": "1 transfer, 3 cash, 4 PayPal, 5 advance payment, 6 credit card (direct debit needs bank details: set it in FastBill)."
},
"currency_code": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
"customer_type": {
"enum": [
"business",
"consumer"
],
"type": "string"
},
"academic_degree": {
"type": "string",
"maxLength": 50,
"minLength": 1
},
"customer_number": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Own customer number (FastBill assigns one if omitted)."
},
"days_for_payment": {
"type": "integer",
"maximum": 3650,
"minimum": 0,
"description": "Days until payment is due (stored with payment_type 1 only)."
}
}
}