Invoiced MCP by usefulapi
Read Invoiced customers, invoices, payments, subscriptions; create customers, draft invoices, notes.
我该使用它吗
质量与安全性
发现(1)
- LOW在 invoiced_get_invoice_payment_plan 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"invoiced": {
"url": "https://invoiced.usefulapi.io/mcp"
}
}
}远程端点
https://invoiced.usefulapi.io/mcpstreamable-http它能做什么
工具清单
工具(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.
输入模式
{
"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}.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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}.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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}.
输入模式
{
"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.
输入模式
{
"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}.
输入模式
{
"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.
输入模式
{
"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}.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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}.
输入模式
{
"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.
输入模式
{
"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}.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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"
}社区
证据