Invoiced MCP by usefulapi
Read Invoiced customers, invoices, payments, subscriptions; create customers, draft invoices, notes.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin invoiced_get_invoice_payment_plan
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"invoiced": {
"url": "https://invoiced.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://invoiced.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (27)
🟢invoiced_list_customers(open_balance, payment_source, updated_after, filter, metadata, ...)
List customers (accounts receivable debtors): name, number, email, payment terms, currency, autopay and chasing settings, owner. Filter by open balance, saved payment method, update time or any exact-match column. GET /customers.
Eingabe-Schema
{
"type": "object",
"properties": {
"open_balance": {
"description": "true = only customers with an open balance; false = only those without.",
"type": "boolean"
},
"payment_source": {
"description": "true = only customers with a saved payment method.",
"type": "boolean"
},
"updated_after": {
"description": "Only records updated after this date or date-time.",
"type": "string"
},
"filter": {
"description": "Exact-match filters on object columns, e.g. {\"paid\": false, \"currency\": \"usd\"}. Booleans are sent as 1/0.",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]{0,63}$"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"metadata": {
"description": "Exact-match filters on metadata keys, e.g. {\"account-rep\": \"Jan\"}.",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,64}$"
},
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"sort": {
"description": "Sort, \"<column> asc|desc\", e.g. \"date desc\".",
"type": "string",
"pattern": "^[a-z_][a-z0-9_]{0,63}(\\s+(asc|desc))?$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_get_customer(customer_id)
One customer by id: contact details, address, terms, currency, autopay, chasing cadence, credit hold/limit, parent customer, metadata. GET /customers/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Invoiced customer id (numeric; not the customer number)."
}
},
"required": [
"customer_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_get_customer_balance(customer_id, currency)
A customer's current balance: total outstanding, past due, and available credit, in the customer's currency (or `currency`). GET /customers/{id}/balance.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Invoiced customer id."
},
"currency": {
"description": "3-letter currency code (default: the customer's currency).",
"type": "string",
"pattern": "^[A-Za-z]{3}$"
}
},
"required": [
"customer_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_list_contacts(customer_id, sort, page, per_page)
List the contacts of one customer: name, title, email, phone, whether primary (copied on communications) and SMS-enabled. GET /customers/{id}/contacts.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Invoiced customer id."
},
"sort": {
"description": "Sort, \"<column> asc|desc\", e.g. \"date desc\".",
"type": "string",
"pattern": "^[a-z_][a-z0-9_]{0,63}(\\s+(asc|desc))?$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"required": [
"customer_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_list_invoices(customer_id, paid, start_date, end_date, updated_after, ...)
List invoices with number, customer, status (draft, not_sent, sent, viewed, past_due, pending, paid, voided), dates, totals, balance and line items. Filter by customer, paid flag, invoice date range, update time or any exact-match column. GET /invoices.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer_id": {
"description": "Only this customer's invoices.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"paid": {
"description": "true = only paid invoices; false = only unpaid.",
"type": "boolean"
},
"start_date": {
"description": "Invoices dated on or after this date or date-time.",
"type": "string"
},
"end_date": {
"description": "Invoices dated on or before this date (a bare date includes the whole day).",
"type": "string"
},
"updated_after": {
"description": "Only records updated after this date or date-time.",
"type": "string"
},
"filter": {
"description": "Exact-match filters on object columns, e.g. {\"paid\": false, \"currency\": \"usd\"}. Booleans are sent as 1/0.",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]{0,63}$"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"metadata": {
"description": "Exact-match filters on metadata keys, e.g. {\"account-rep\": \"Jan\"}.",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,64}$"
},
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"sort": {
"description": "Sort, \"<column> asc|desc\", e.g. \"date desc\".",
"type": "string",
"pattern": "^[a-z_][a-z0-9_]{0,63}(\\s+(asc|desc))?$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_get_invoice(invoice_id, expand)
One invoice by id: status, dates, payment terms, totals, balance, line items, discounts, taxes, ship-to, payment and PDF links. `expand` replaces ids with full objects (e.g. customer). GET /invoices/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"invoice_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Invoiced invoice id (numeric; find it with invoiced_list_invoices)."
},
"expand": {
"description": "Relations to expand into full objects.",
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"enum": [
"customer",
"subscription",
"payment_plan"
]
}
}
},
"required": [
"invoice_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_get_invoice_payment_plan(invoice_id)
The payment plan (installments with dates, amounts and balances, and approval status) attached to an invoice. Errors with 404 when the invoice has none. GET /invoices/{id}/payment_plan.
Eingabe-Schema
{
"type": "object",
"properties": {
"invoice_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Invoiced invoice id."
}
},
"required": [
"invoice_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_list_payments(customer_id, start_date, end_date, updated_after, filter, ...)
List payments received: customer, date, amount, unapplied balance, method (check, wire, ACH, card, ...), reference, whether matched or voided. Read only. GET /payments.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer_id": {
"description": "Only this customer's payments.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"start_date": {
"description": "Payments dated on or after this date or date-time.",
"type": "string"
},
"end_date": {
"description": "Payments dated on or before this date (a bare date includes the whole day).",
"type": "string"
},
"updated_after": {
"description": "Only records updated after this date or date-time.",
"type": "string"
},
"filter": {
"description": "Exact-match filters on object columns, e.g. {\"paid\": false, \"currency\": \"usd\"}. Booleans are sent as 1/0.",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]{0,63}$"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"sort": {
"description": "Sort, \"<column> asc|desc\", e.g. \"date desc\".",
"type": "string",
"pattern": "^[a-z_][a-z0-9_]{0,63}(\\s+(asc|desc))?$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_get_payment(payment_id)
One payment by id, including which invoices and credit notes it was applied to (`applied_to`). GET /payments/{id}?include=applied_to.
Eingabe-Schema
{
"type": "object",
"properties": {
"payment_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Invoiced payment id."
}
},
"required": [
"payment_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_list_credit_notes(customer_id, start_date, end_date, updated_after, filter, ...)
List credit notes: customer, status (draft, open, paid, closed, voided), totals, remaining balance, line items. GET /credit_notes.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer_id": {
"description": "Only this customer's credit notes.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"start_date": {
"description": "Credit notes dated on or after this date or date-time.",
"type": "string"
},
"end_date": {
"description": "Credit notes dated on or before this date (a bare date includes the whole day).",
"type": "string"
},
"updated_after": {
"description": "Only records updated after this date or date-time.",
"type": "string"
},
"filter": {
"description": "Exact-match filters on object columns, e.g. {\"paid\": false, \"currency\": \"usd\"}. Booleans are sent as 1/0.",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]{0,63}$"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"metadata": {
"description": "Exact-match filters on metadata keys, e.g. {\"account-rep\": \"Jan\"}.",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,64}$"
},
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"sort": {
"description": "Sort, \"<column> asc|desc\", e.g. \"date desc\".",
"type": "string",
"pattern": "^[a-z_][a-z0-9_]{0,63}(\\s+(asc|desc))?$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_get_credit_note(credit_note_id)
One credit note by id with line items, totals and balance. GET /credit_notes/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"credit_note_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Invoiced credit note id."
}
},
"required": [
"credit_note_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_list_estimates(customer_id, start_date, end_date, updated_after, filter, ...)
List estimates (quotes): customer, status (draft, not_sent, sent, approved, invoiced, declined, voided), expiration date, deposit, totals, resulting invoice. GET /estimates.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer_id": {
"description": "Only this customer's estimates.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"start_date": {
"description": "Estimates dated on or after this date or date-time.",
"type": "string"
},
"end_date": {
"description": "Estimates dated on or before this date (a bare date includes the whole day).",
"type": "string"
},
"updated_after": {
"description": "Only records updated after this date or date-time.",
"type": "string"
},
"filter": {
"description": "Exact-match filters on object columns, e.g. {\"paid\": false, \"currency\": \"usd\"}. Booleans are sent as 1/0.",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]{0,63}$"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"metadata": {
"description": "Exact-match filters on metadata keys, e.g. {\"account-rep\": \"Jan\"}.",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,64}$"
},
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"sort": {
"description": "Sort, \"<column> asc|desc\", e.g. \"date desc\".",
"type": "string",
"pattern": "^[a-z_][a-z0-9_]{0,63}(\\s+(asc|desc))?$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_get_estimate(estimate_id)
One estimate by id with line items, totals, deposit and approval state. GET /estimates/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"estimate_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Invoiced estimate id."
}
},
"required": [
"estimate_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_list_items(updated_after, filter, sort, page, per_page)
List the item catalog (products and services): id, name, currency, unit cost, type, taxable. Use item ids as `catalog_item` when creating a draft invoice. GET /items.
Eingabe-Schema
{
"type": "object",
"properties": {
"updated_after": {
"description": "Only records updated after this date or date-time.",
"type": "string"
},
"filter": {
"description": "Exact-match filters on object columns, e.g. {\"paid\": false, \"currency\": \"usd\"}. Booleans are sent as 1/0.",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]{0,63}$"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"sort": {
"description": "Sort, \"<column> asc|desc\", e.g. \"date desc\".",
"type": "string",
"pattern": "^[a-z_][a-z0-9_]{0,63}(\\s+(asc|desc))?$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_get_item(item_id)
One catalog item by its id (a string such as "delivery"). GET /items/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"item_id": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Catalog item id (from invoiced_list_items)."
}
},
"required": [
"item_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_list_tax_rates(updated_after, filter, sort, page, per_page)
List tax rates: id, name, value, whether a percentage, whether inclusive, currency. GET /tax_rates.
Eingabe-Schema
{
"type": "object",
"properties": {
"updated_after": {
"description": "Only records updated after this date or date-time.",
"type": "string"
},
"filter": {
"description": "Exact-match filters on object columns, e.g. {\"paid\": false, \"currency\": \"usd\"}. Booleans are sent as 1/0.",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]{0,63}$"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"sort": {
"description": "Sort, \"<column> asc|desc\", e.g. \"date desc\".",
"type": "string",
"pattern": "^[a-z_][a-z0-9_]{0,63}(\\s+(asc|desc))?$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_list_plans(updated_after, filter, sort, page, per_page)
List subscription plans: id, name, currency, amount, pricing mode, billing interval, tiers. GET /plans.
Eingabe-Schema
{
"type": "object",
"properties": {
"updated_after": {
"description": "Only records updated after this date or date-time.",
"type": "string"
},
"filter": {
"description": "Exact-match filters on object columns, e.g. {\"paid\": false, \"currency\": \"usd\"}. Booleans are sent as 1/0.",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]{0,63}$"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"sort": {
"description": "Sort, \"<column> asc|desc\", e.g. \"date desc\".",
"type": "string",
"pattern": "^[a-z_][a-z0-9_]{0,63}(\\s+(asc|desc))?$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_get_plan(plan_id)
One subscription plan by its id (a string). GET /plans/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"plan_id": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Plan id (from invoiced_list_plans)."
}
},
"required": [
"plan_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_list_subscriptions(customer_id, canceled, finished, updated_after, filter, ...)
List recurring subscriptions: customer, plan, quantity, billing period, status (not_started, active, past_due, finished, canceled), recurring total and MRR, contract renewal. GET /subscriptions.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer_id": {
"description": "Only this customer's subscriptions.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"canceled": {
"description": "true = only canceled subscriptions; false = only not canceled.",
"type": "boolean"
},
"finished": {
"description": "true = only finished subscriptions; false = only unfinished.",
"type": "boolean"
},
"updated_after": {
"description": "Only records updated after this date or date-time.",
"type": "string"
},
"filter": {
"description": "Exact-match filters on object columns, e.g. {\"paid\": false, \"currency\": \"usd\"}. Booleans are sent as 1/0.",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z_][A-Za-z0-9_]{0,63}$"
},
"additionalProperties": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"metadata": {
"description": "Exact-match filters on metadata keys, e.g. {\"account-rep\": \"Jan\"}.",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,64}$"
},
"additionalProperties": {
"type": "string",
"maxLength": 200
}
},
"sort": {
"description": "Sort, \"<column> asc|desc\", e.g. \"date desc\".",
"type": "string",
"pattern": "^[a-z_][a-z0-9_]{0,63}(\\s+(asc|desc))?$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_get_subscription(subscription_id)
One subscription by id with plan, add-ons, billing period, contract terms, recurring total and MRR. GET /subscriptions/{id}.
Eingabe-Schema
{
"type": "object",
"properties": {
"subscription_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Invoiced subscription id."
}
},
"required": [
"subscription_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_list_notes(customer_id, invoice_id, page, per_page)
List collection notes, newest first, for one customer or one invoice (give exactly one), or all notes when neither is given. GET /customers/{id}/notes, /invoices/{id}/notes or /notes.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer_id": {
"description": "Only this customer's notes.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"invoice_id": {
"description": "Only this invoice's notes.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_list_tasks(customer_id, complete, sort, page, per_page)
List collection tasks (call, letter, email, review): name, action, customer, assignee, due date, whether complete. GET /tasks.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer_id": {
"description": "Only this customer's tasks.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"complete": {
"description": "true = only completed tasks; false = only open tasks.",
"type": "boolean"
},
"sort": {
"description": "Sort, \"<column> asc|desc\", e.g. \"date desc\".",
"type": "string",
"pattern": "^[a-z_][a-z0-9_]{0,63}(\\s+(asc|desc))?$"
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢invoiced_list_events(related_object_type, related_object_id, page, per_page)
The activity feed, newest first: event type (such as invoice.paid, customer.created), time, the object it concerns and who did it. Optionally only the events of one object. GET /events.
Eingabe-Schema
{
"type": "object",
"properties": {
"related_object_type": {
"description": "Object type such as customer or invoice; with related_object_id: only events about this object.",
"type": "string",
"pattern": "^[a-z_]{1,40}$"
},
"related_object_id": {
"description": "Id of the object (needs related_object_type).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"page": {
"description": "Page number, from 1 (default 1). Pass the previous reply's next_page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"per_page": {
"description": "Results per page, 1-100 (default 25).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡invoiced_create_customer(name, number, email, type, payment_terms, ...)
WRITE: create a customer in Invoiced. Nothing is sent to anyone and no money moves. Name is required; Invoiced generates the customer number unless given. POST /customers.
Eingabe-Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 300,
"description": "Customer name."
},
"number": {
"description": "Customer number (default: generated).",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"email": {
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"type": {
"description": "Default company.",
"type": "string",
"enum": [
"company",
"person"
]
},
"payment_terms": {
"description": "e.g. \"NET 30\".",
"type": "string",
"maxLength": 100
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
"attention_to": {
"type": "string",
"maxLength": 300
},
"address1": {
"type": "string",
"maxLength": 300
},
"address2": {
"type": "string",
"maxLength": 300
},
"city": {
"type": "string",
"maxLength": 200
},
"state": {
"type": "string",
"maxLength": 200
},
"postal_code": {
"type": "string",
"maxLength": 50
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$"
},
"phone": {
"type": "string",
"maxLength": 50
},
"tax_id": {
"type": "string",
"maxLength": 100
},
"notes": {
"description": "Private notes.",
"type": "string",
"maxLength": 5000
},
"metadata": {
"description": "Metadata key/values (max 10 keys, names up to 40 characters, values up to 255).",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,40}$"
},
"additionalProperties": {
"type": "string",
"maxLength": 255
}
}
},
"required": [
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡invoiced_create_draft_invoice(customer_id, items, name, number, currency, ...)
WRITE: create a DRAFT invoice for a customer. It is always created as a draft: it is not issued, not emailed, not charged and cannot trigger AutoPay until a person finalizes it in Invoiced. At least one line item is required. POST /invoices with draft=true.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Invoiced customer id (invoiced_list_customers)."
},
"items": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "Line item name (required unless catalog_item is given).",
"type": "string",
"minLength": 1,
"maxLength": 300
},
"catalog_item": {
"description": "Id of an item in the catalog (invoiced_list_items); fills the name and price.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"type": "string",
"maxLength": 2000
},
"quantity": {
"description": "Quantity (default 1).",
"type": "number",
"minimum": 0,
"maximum": 1000000000
},
"unit_cost": {
"description": "Price per unit, in the invoice currency.",
"type": "number",
"minimum": -1000000000000,
"maximum": 1000000000000
},
"type": {
"description": "Reporting type, e.g. \"product\" or \"service\".",
"type": "string",
"maxLength": 100
}
}
},
"description": "Line items."
},
"name": {
"description": "Document title (default \"Invoice\").",
"type": "string",
"maxLength": 300
},
"number": {
"description": "Invoice number (default: next in sequence).",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"currency": {
"type": "string",
"pattern": "^[A-Za-z]{3}$"
},
"date": {
"description": "Invoice date (default now).",
"type": "string"
},
"due_date": {
"description": "Due date (default: computed from the payment terms).",
"type": "string"
},
"payment_terms": {
"description": "e.g. \"NET 30\".",
"type": "string",
"maxLength": 100
},
"purchase_order": {
"type": "string",
"maxLength": 200
},
"notes": {
"description": "Notes printed on the invoice.",
"type": "string",
"maxLength": 5000
},
"metadata": {
"description": "Metadata key/values (max 10 keys, names up to 40 characters, values up to 255).",
"type": "object",
"propertyNames": {
"type": "string",
"pattern": "^[A-Za-z0-9_.-]{1,40}$"
},
"additionalProperties": {
"type": "string",
"maxLength": 255
}
}
},
"required": [
"customer_id",
"items"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡invoiced_add_note(customer_id, invoice_id, notes)
WRITE: add an internal note to a customer or an invoice (give exactly one). Notes are internal; nothing is sent. POST /notes.
Eingabe-Schema
{
"type": "object",
"properties": {
"customer_id": {
"description": "Customer to attach the note to.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"invoice_id": {
"description": "Invoice to attach the note to.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"notes": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "The note text."
}
},
"required": [
"notes"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡invoiced_create_task(name, action, customer_id, user_id, due_date)
WRITE: create a collection task for a customer (a reminder to call, write, email or review). Nothing is sent to the customer. POST /tasks.
Eingabe-Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 300,
"description": "Task name, e.g. \"Call about overdue invoice\"."
},
"action": {
"type": "string",
"enum": [
"phone",
"letter",
"email",
"review"
],
"description": "Kind of task."
},
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Customer the task is about."
},
"user_id": {
"description": "Invoiced user to assign it to.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"due_date": {
"description": "When it is due.",
"type": "string"
}
},
"required": [
"name",
"action",
"customer_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Nachweis