ChargeOver MCP by usefulapi
Read ChargeOver customers, invoices, transactions, subscriptions, reports; create customers, quotes.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"chargeover": {
"url": "https://chargeover.usefulapi.io/mcp"
}
}
}원격 엔드포인트
https://chargeover.usefulapi.io/mcpstreamable-http할 수 있는 일
도구 목록
도구 (25)
🟢chargeover_list_customers(filters, order, limit, offset)
List customers (companies that are billed). Filterable fields: customer_id, parent_customer_id, bill_state, ship_state, bill_country, ship_country, external_key, token, company, superuser_id, superuser_email, customer_status_state (a = active, i = inactive), customer_status_str (active-current, active-overdue, inactive-manual, inactive-activity), custom_1..custom_50, write_datetime, mod_datetime. Paged: pass next_offset as offset. GET /customer.
입력 스키마
{
"type": "object",
"properties": {
"filters": {
"description": "Filters, all combined with AND. Example: [{field:'customer_id',op:'EQUALS',value:12},{field:'date',op:'GTE',value:'2026-01-01'}].",
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}$",
"description": "Filter field (the list tool's description names the valid ones)."
},
"op": {
"type": "string",
"enum": [
"EQUALS",
"NOTEQUALS",
"GT",
"GTE",
"LT",
"LTE",
"CONTAINS",
"IS:NULL",
"ISNOT:NULL"
],
"description": "EQUALS, NOTEQUALS, GT, GTE, LT, LTE, CONTAINS (substring), IS:NULL or ISNOT:NULL (no value)."
},
"value": {
"description": "The value to compare with; omit for IS:NULL / ISNOT:NULL.",
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"required": [
"field",
"op"
]
}
},
"order": {
"description": "Sort as field:ASC or field:DESC, for example invoice_id:DESC.",
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}:(ASC|DESC)$"
},
"limit": {
"description": "Records per page, 1-500 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "Records to skip (default 0). Use next_offset from the previous reply.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_list_contacts(filters, order, limit, offset)
List contacts (the people at customers; the API calls them users). Filterable fields: user_id, external_key, first_name, last_name, email, phone, user_type_id, username, customers.customer_id (contacts of one customer). Paged: pass next_offset as offset. GET /user.
입력 스키마
{
"type": "object",
"properties": {
"filters": {
"description": "Filters, all combined with AND. Example: [{field:'customer_id',op:'EQUALS',value:12},{field:'date',op:'GTE',value:'2026-01-01'}].",
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}$",
"description": "Filter field (the list tool's description names the valid ones)."
},
"op": {
"type": "string",
"enum": [
"EQUALS",
"NOTEQUALS",
"GT",
"GTE",
"LT",
"LTE",
"CONTAINS",
"IS:NULL",
"ISNOT:NULL"
],
"description": "EQUALS, NOTEQUALS, GT, GTE, LT, LTE, CONTAINS (substring), IS:NULL or ISNOT:NULL (no value)."
},
"value": {
"description": "The value to compare with; omit for IS:NULL / ISNOT:NULL.",
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"required": [
"field",
"op"
]
}
},
"order": {
"description": "Sort as field:ASC or field:DESC, for example invoice_id:DESC.",
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}:(ASC|DESC)$"
},
"limit": {
"description": "Records per page, 1-500 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "Records to skip (default 0). Use next_offset from the previous reply.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_list_invoices(filters, order, limit, offset, include_line_items)
List invoices with status, totals, credits, payments and balance. Filterable fields: invoice_id, refnumber, customer_id, invoice_status_str (open-unpaid, open-overdue, open-collections, closed-void, closed-paid), invoice_status_state (o = open, c = closed), package_id, package_token, date, currency_id, total, balance, subtotal, token, bill_state, bill_country, line_items.item_id, write_datetime, mod_datetime. Paged: pass next_offset as offset. GET /invoice.
입력 스키마
{
"type": "object",
"properties": {
"filters": {
"description": "Filters, all combined with AND. Example: [{field:'customer_id',op:'EQUALS',value:12},{field:'date',op:'GTE',value:'2026-01-01'}].",
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}$",
"description": "Filter field (the list tool's description names the valid ones)."
},
"op": {
"type": "string",
"enum": [
"EQUALS",
"NOTEQUALS",
"GT",
"GTE",
"LT",
"LTE",
"CONTAINS",
"IS:NULL",
"ISNOT:NULL"
],
"description": "EQUALS, NOTEQUALS, GT, GTE, LT, LTE, CONTAINS (substring), IS:NULL or ISNOT:NULL (no value)."
},
"value": {
"description": "The value to compare with; omit for IS:NULL / ISNOT:NULL.",
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"required": [
"field",
"op"
]
}
},
"order": {
"description": "Sort as field:ASC or field:DESC, for example invoice_id:DESC.",
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}:(ASC|DESC)$"
},
"limit": {
"description": "Records per page, 1-500 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "Records to skip (default 0). Use next_offset from the previous reply.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"include_line_items": {
"description": "true = include each record's line items (bigger reply). Default false.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_list_transactions(filters, order, limit, offset, include_applied_to)
List transactions (payments, refunds and credits that already happened; this tool only reads them). Filterable fields: transaction_id, customer_id, gateway_id, currency_id, creditcard_id, ach_id, tokenized_id, token, external_key, gateway_status, gateway_transid, amount, fee, transaction_type, transaction_method, transaction_detail, transaction_datetime, transaction_status.state, transaction_status.str, applied_to.invoice_id, applied_to.package_id. Paged: pass next_offset as offset. GET /transaction.
입력 스키마
{
"type": "object",
"properties": {
"filters": {
"description": "Filters, all combined with AND. Example: [{field:'customer_id',op:'EQUALS',value:12},{field:'date',op:'GTE',value:'2026-01-01'}].",
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}$",
"description": "Filter field (the list tool's description names the valid ones)."
},
"op": {
"type": "string",
"enum": [
"EQUALS",
"NOTEQUALS",
"GT",
"GTE",
"LT",
"LTE",
"CONTAINS",
"IS:NULL",
"ISNOT:NULL"
],
"description": "EQUALS, NOTEQUALS, GT, GTE, LT, LTE, CONTAINS (substring), IS:NULL or ISNOT:NULL (no value)."
},
"value": {
"description": "The value to compare with; omit for IS:NULL / ISNOT:NULL.",
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"required": [
"field",
"op"
]
}
},
"order": {
"description": "Sort as field:ASC or field:DESC, for example invoice_id:DESC.",
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}:(ASC|DESC)$"
},
"limit": {
"description": "Records per page, 1-500 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "Records to skip (default 0). Use next_offset from the previous reply.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"include_applied_to": {
"description": "true = include the invoices each transaction was applied to (bigger reply). Default false.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_list_quotes(filters, order, limit, offset)
List quotes (proposals for a customer or lead; the list has no line items, get one quote for those). Filterable fields: quote_id, customer_id, brand_id, currency_id, refnumber, token, external_key, date, bill_state, bill_country, quote_status_str (open-new, open-sent, closed-won, closed-lost), quote_status_state (o = open, c = closed). Paged: pass next_offset as offset. GET /quote.
입력 스키마
{
"type": "object",
"properties": {
"filters": {
"description": "Filters, all combined with AND. Example: [{field:'customer_id',op:'EQUALS',value:12},{field:'date',op:'GTE',value:'2026-01-01'}].",
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}$",
"description": "Filter field (the list tool's description names the valid ones)."
},
"op": {
"type": "string",
"enum": [
"EQUALS",
"NOTEQUALS",
"GT",
"GTE",
"LT",
"LTE",
"CONTAINS",
"IS:NULL",
"ISNOT:NULL"
],
"description": "EQUALS, NOTEQUALS, GT, GTE, LT, LTE, CONTAINS (substring), IS:NULL or ISNOT:NULL (no value)."
},
"value": {
"description": "The value to compare with; omit for IS:NULL / ISNOT:NULL.",
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"required": [
"field",
"op"
]
}
},
"order": {
"description": "Sort as field:ASC or field:DESC, for example invoice_id:DESC.",
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}:(ASC|DESC)$"
},
"limit": {
"description": "Records per page, 1-500 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "Records to skip (default 0). Use next_offset from the previous reply.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_list_subscriptions(filters, order, limit, offset, include_line_items)
List subscriptions (the API calls them packages): recurring billing plans of customers. Filterable fields: package_id, customer_id, token, brand_id, paymethod, paycycle (mon, qtr, yrl...), nickname, package_status_state (a active, c cancelled, e expired, s suspended), package_status_str (active-trial, active-current, active-overdue, canceled-nonpayment, canceled-manual, expired-expired, expired-trial, suspended-suspended), external_key, write_datetime, mod_datetime, cancel_datetime, line_items.item_id, customer.superuser_email, customer.users.email. Paged: pass next_offset as offset. GET /package.
입력 스키마
{
"type": "object",
"properties": {
"filters": {
"description": "Filters, all combined with AND. Example: [{field:'customer_id',op:'EQUALS',value:12},{field:'date',op:'GTE',value:'2026-01-01'}].",
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}$",
"description": "Filter field (the list tool's description names the valid ones)."
},
"op": {
"type": "string",
"enum": [
"EQUALS",
"NOTEQUALS",
"GT",
"GTE",
"LT",
"LTE",
"CONTAINS",
"IS:NULL",
"ISNOT:NULL"
],
"description": "EQUALS, NOTEQUALS, GT, GTE, LT, LTE, CONTAINS (substring), IS:NULL or ISNOT:NULL (no value)."
},
"value": {
"description": "The value to compare with; omit for IS:NULL / ISNOT:NULL.",
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"required": [
"field",
"op"
]
}
},
"order": {
"description": "Sort as field:ASC or field:DESC, for example invoice_id:DESC.",
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}:(ASC|DESC)$"
},
"limit": {
"description": "Records per page, 1-500 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "Records to skip (default 0). Use next_offset from the previous reply.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"include_line_items": {
"description": "true = include each record's line items (bigger reply). Default false.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_list_items(filters, order, limit, offset)
List items: the products, services and discounts that go on invoices, quotes and subscriptions, with their pricing tiers. Filterable fields: item_id, name, external_key, accounting_sku, item_type (service or discount), custom_1, custom_2, custom_3. Paged: pass next_offset as offset. GET /item.
입력 스키마
{
"type": "object",
"properties": {
"filters": {
"description": "Filters, all combined with AND. Example: [{field:'customer_id',op:'EQUALS',value:12},{field:'date',op:'GTE',value:'2026-01-01'}].",
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}$",
"description": "Filter field (the list tool's description names the valid ones)."
},
"op": {
"type": "string",
"enum": [
"EQUALS",
"NOTEQUALS",
"GT",
"GTE",
"LT",
"LTE",
"CONTAINS",
"IS:NULL",
"ISNOT:NULL"
],
"description": "EQUALS, NOTEQUALS, GT, GTE, LT, LTE, CONTAINS (substring), IS:NULL or ISNOT:NULL (no value)."
},
"value": {
"description": "The value to compare with; omit for IS:NULL / ISNOT:NULL.",
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"required": [
"field",
"op"
]
}
},
"order": {
"description": "Sort as field:ASC or field:DESC, for example invoice_id:DESC.",
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}:(ASC|DESC)$"
},
"limit": {
"description": "Records per page, 1-500 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "Records to skip (default 0). Use next_offset from the previous reply.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_list_notes(filters, order, limit, offset)
List notes attached to customers, subscriptions, invoices, contacts, quotes and items. Filterable fields: context_str (customer, billing_package, invoice, user, quote, item), context_id. Paged: pass next_offset as offset. GET /note.
입력 스키마
{
"type": "object",
"properties": {
"filters": {
"description": "Filters, all combined with AND. Example: [{field:'customer_id',op:'EQUALS',value:12},{field:'date',op:'GTE',value:'2026-01-01'}].",
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}$",
"description": "Filter field (the list tool's description names the valid ones)."
},
"op": {
"type": "string",
"enum": [
"EQUALS",
"NOTEQUALS",
"GT",
"GTE",
"LT",
"LTE",
"CONTAINS",
"IS:NULL",
"ISNOT:NULL"
],
"description": "EQUALS, NOTEQUALS, GT, GTE, LT, LTE, CONTAINS (substring), IS:NULL or ISNOT:NULL (no value)."
},
"value": {
"description": "The value to compare with; omit for IS:NULL / ISNOT:NULL.",
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"required": [
"field",
"op"
]
}
},
"order": {
"description": "Sort as field:ASC or field:DESC, for example invoice_id:DESC.",
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}:(ASC|DESC)$"
},
"limit": {
"description": "Records per page, 1-500 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "Records to skip (default 0). Use next_offset from the previous reply.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_list_usage(filters, order, limit, offset)
List usage (metered billing) data points recorded against subscription line items. Filterable fields: line_item_id, external_key, from (date), to (date). Paged: pass next_offset as offset. GET /usage.
입력 스키마
{
"type": "object",
"properties": {
"filters": {
"description": "Filters, all combined with AND. Example: [{field:'customer_id',op:'EQUALS',value:12},{field:'date',op:'GTE',value:'2026-01-01'}].",
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}$",
"description": "Filter field (the list tool's description names the valid ones)."
},
"op": {
"type": "string",
"enum": [
"EQUALS",
"NOTEQUALS",
"GT",
"GTE",
"LT",
"LTE",
"CONTAINS",
"IS:NULL",
"ISNOT:NULL"
],
"description": "EQUALS, NOTEQUALS, GT, GTE, LT, LTE, CONTAINS (substring), IS:NULL or ISNOT:NULL (no value)."
},
"value": {
"description": "The value to compare with; omit for IS:NULL / ISNOT:NULL.",
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"required": [
"field",
"op"
]
}
},
"order": {
"description": "Sort as field:ASC or field:DESC, for example invoice_id:DESC.",
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}:(ASC|DESC)$"
},
"limit": {
"description": "Records per page, 1-500 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "Records to skip (default 0). Use next_offset from the previous reply.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_list_coupons(filters, order, limit, offset)
List coupons (code, description, type, enabled, linked discount item). Filterable fields: none documented; the list is small. Paged: pass next_offset as offset. GET /coupon.
입력 스키마
{
"type": "object",
"properties": {
"filters": {
"description": "Filters, all combined with AND. Example: [{field:'customer_id',op:'EQUALS',value:12},{field:'date',op:'GTE',value:'2026-01-01'}].",
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}$",
"description": "Filter field (the list tool's description names the valid ones)."
},
"op": {
"type": "string",
"enum": [
"EQUALS",
"NOTEQUALS",
"GT",
"GTE",
"LT",
"LTE",
"CONTAINS",
"IS:NULL",
"ISNOT:NULL"
],
"description": "EQUALS, NOTEQUALS, GT, GTE, LT, LTE, CONTAINS (substring), IS:NULL or ISNOT:NULL (no value)."
},
"value": {
"description": "The value to compare with; omit for IS:NULL / ISNOT:NULL.",
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"required": [
"field",
"op"
]
}
},
"order": {
"description": "Sort as field:ASC or field:DESC, for example invoice_id:DESC.",
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}:(ASC|DESC)$"
},
"limit": {
"description": "Records per page, 1-500 (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"description": "Records to skip (default 0). Use next_offset from the previous reply.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_get_customer(id)
Get one customer by customer_id: company, status, addresses, primary contact, terms, balance fields, custom fields. GET /customer/{customer_id}.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The customer_id (a number)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_get_contact(id)
Get one contact (user) by user_id: name, email, phone, username, the customers they belong to. GET /user/{user_id}.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The user_id (a number)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_get_invoice(id)
Get one invoice by invoice_id: status, line items, totals, balance, payments and credits applied, billing address. GET /invoice/{invoice_id}.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The invoice_id (a number)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_get_transaction(id)
Get one transaction (payment, refund or credit that already happened) by transaction_id: amount, method, status, the invoices it was applied to, related refunds. GET /transaction/{transaction_id}.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The transaction_id (a number)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_get_quote(id)
Get one quote by quote_id: status, line items, totals, memo, links to the invoice or subscription it became. GET /quote/{quote_id}.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The quote_id (a number)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_get_subscription(id)
Get one subscription (package) by package_id: status, payment cycle, pay method, next invoice date, line items. GET /package/{package_id}.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The package_id (a number)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_get_item(id)
Get one item (product, service or discount) by item_id: name, type, SKU, pricing tiers per currency. GET /item/{item_id}.
입력 스키마
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The item_id (a number)."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_list_reports
List the account's saved reports (report_id and name). Run one with chargeover_run_report. GET /_report.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_get_report(report_id)
A report's name, its available_filters (field names and allowed operators), available_columns and default_columns. Read this before chargeover_run_report to know which filters and columns to use. GET /_report/{report_id}.
입력 스키마
{
"type": "object",
"properties": {
"report_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The report_id from chargeover_list_reports."
}
},
"required": [
"report_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢chargeover_run_report(report_id, filters, columns, order, limit, ...)
Run a saved report and return its rows (read only; nothing is changed). Filters use the report's own field names from chargeover_get_report, for example [{field:'transaction_transaction_date',op:'GTE',value:'2026-01-01'}]. Operators vary by field (dates GTE/LTE/EQUALS, ids EQUALS, strings CONTAINS/DOES_NOT_CONTAIN). To page (offset > 0) an order is required. Max 1000 rows per page. POST /_report/{report_id}/_action/reportData.
입력 스키마
{
"type": "object",
"properties": {
"report_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The report_id from chargeover_list_reports."
},
"filters": {
"description": "Report filters (combined with AND).",
"maxItems": 10,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}$"
},
"op": {
"type": "string",
"enum": [
"EQUALS",
"NOTEQUALS",
"GT",
"GTE",
"LT",
"LTE",
"CONTAINS",
"DOES_NOT_CONTAIN"
]
},
"value": {
"anyOf": [
{
"type": "string",
"maxLength": 200
},
{
"type": "number"
},
{
"type": "boolean"
}
]
}
},
"required": [
"field",
"op",
"value"
]
}
},
"columns": {
"description": "Column names to return (default: the report's default columns).",
"maxItems": 60,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}$"
}
},
"order": {
"description": "Sort as field:ASC or field:DESC, for example invoice_id:DESC.",
"type": "string",
"pattern": "^[A-Za-z][A-Za-z0-9_.]{0,63}:(ASC|DESC)$"
},
"limit": {
"description": "Rows per page, 1-1000 (default 100).",
"type": "integer",
"minimum": 1,
"maximum": 1000
},
"offset": {
"description": "Records to skip (default 0). Use next_offset from the previous reply.",
"type": "integer",
"minimum": 0,
"maximum": 1000000
}
},
"required": [
"report_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴chargeover_create_customer(company, parent_customer_id, external_key, superuser_first_name, superuser_last_name, ...)
WRITE: create a new customer (no charge, no invoice, no email is sent by this call). Returns the new customer_id. Add a primary contact with the superuser_* fields. Use chargeover_list_customers first to avoid a duplicate (external_key is unique). POST /customer.
입력 스키마
{
"type": "object",
"properties": {
"company": {
"type": "string",
"minLength": 1,
"maxLength": 255,
"description": "Company / customer name."
},
"parent_customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Parent customer id, to create a child customer."
},
"external_key": {
"description": "Your own unique id for the customer (cannot be reused by default, even after deletion).",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"superuser_first_name": {
"description": "Primary contact first name.",
"type": "string",
"maxLength": 100
},
"superuser_last_name": {
"description": "Primary contact last name.",
"type": "string",
"maxLength": 100
},
"superuser_email": {
"description": "Primary contact email address.",
"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,}$"
},
"superuser_phone": {
"description": "Primary contact phone number.",
"type": "string",
"maxLength": 50
},
"bill_addr1": {
"description": "Billing address line 1.",
"type": "string",
"maxLength": 255
},
"bill_addr2": {
"description": "Billing address line 2.",
"type": "string",
"maxLength": 255
},
"bill_city": {
"description": "Billing city.",
"type": "string",
"maxLength": 100
},
"bill_state": {
"description": "Billing state/province.",
"type": "string",
"maxLength": 100
},
"bill_postcode": {
"description": "Billing postal code.",
"type": "string",
"maxLength": 30
},
"bill_country": {
"description": "Billing country.",
"type": "string",
"maxLength": 100
},
"ship_addr1": {
"description": "Shipping address line 1.",
"type": "string",
"maxLength": 255
},
"ship_addr2": {
"description": "Shipping address line 2.",
"type": "string",
"maxLength": 255
},
"ship_city": {
"description": "Shipping city.",
"type": "string",
"maxLength": 100
},
"ship_state": {
"description": "Shipping state/province.",
"type": "string",
"maxLength": 100
},
"ship_postcode": {
"description": "Shipping postal code.",
"type": "string",
"maxLength": 30
},
"ship_country": {
"description": "Shipping country.",
"type": "string",
"maxLength": 100
}
},
"required": [
"company"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴chargeover_update_customer(customer_id, company, external_key, superuser_first_name, superuser_last_name, ...)
WRITE: change fields of an existing customer; send only the fields to change. Cannot touch payment methods, balances or status. Replaces the previous values of the fields you send. PUT /customer/{customer_id}.
입력 스키마
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The customer_id to update."
},
"company": {
"description": "New company / customer name.",
"type": "string",
"minLength": 1,
"maxLength": 255
},
"external_key": {
"description": "Your own unique id for the customer (cannot be reused by default, even after deletion).",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"superuser_first_name": {
"description": "Primary contact first name.",
"type": "string",
"maxLength": 100
},
"superuser_last_name": {
"description": "Primary contact last name.",
"type": "string",
"maxLength": 100
},
"superuser_email": {
"description": "Primary contact email address.",
"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,}$"
},
"superuser_phone": {
"description": "Primary contact phone number.",
"type": "string",
"maxLength": 50
},
"bill_addr1": {
"description": "Billing address line 1.",
"type": "string",
"maxLength": 255
},
"bill_addr2": {
"description": "Billing address line 2.",
"type": "string",
"maxLength": 255
},
"bill_city": {
"description": "Billing city.",
"type": "string",
"maxLength": 100
},
"bill_state": {
"description": "Billing state/province.",
"type": "string",
"maxLength": 100
},
"bill_postcode": {
"description": "Billing postal code.",
"type": "string",
"maxLength": 30
},
"bill_country": {
"description": "Billing country.",
"type": "string",
"maxLength": 100
},
"ship_addr1": {
"description": "Shipping address line 1.",
"type": "string",
"maxLength": 255
},
"ship_addr2": {
"description": "Shipping address line 2.",
"type": "string",
"maxLength": 255
},
"ship_city": {
"description": "Shipping city.",
"type": "string",
"maxLength": 100
},
"ship_state": {
"description": "Shipping state/province.",
"type": "string",
"maxLength": 100
},
"ship_postcode": {
"description": "Shipping postal code.",
"type": "string",
"maxLength": 30
},
"ship_country": {
"description": "Shipping country.",
"type": "string",
"maxLength": 100
}
},
"required": [
"customer_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴chargeover_create_contact(customer_id, first_name, last_name, name, email, ...)
WRITE: add a contact (person) to an existing customer. No email is sent by this call. Returns the new user_id. POST /user.
입력 스키마
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The customer the contact belongs to."
},
"first_name": {
"description": "First name.",
"type": "string",
"maxLength": 100
},
"last_name": {
"description": "Last name.",
"type": "string",
"maxLength": 100
},
"name": {
"description": "Full name (alternative to first_name and last_name).",
"type": "string",
"maxLength": 200
},
"email": {
"description": "Email address.",
"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,}$"
},
"phone": {
"description": "Phone number.",
"type": "string",
"maxLength": 50
},
"mobile": {
"description": "Mobile number.",
"type": "string",
"maxLength": 50
},
"title": {
"description": "Job title.",
"type": "string",
"maxLength": 100
},
"external_key": {
"description": "Your own unique id for the contact.",
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"required": [
"customer_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴chargeover_create_note(context_str, context_id, note)
WRITE: add a note to a customer, subscription, invoice, contact, quote or item (shown in the ChargeOver UI to the team; never sent to the customer). Returns the note id. POST /note.
입력 스키마
{
"type": "object",
"properties": {
"context_str": {
"type": "string",
"enum": [
"customer",
"billing_package",
"invoice",
"user",
"quote",
"item"
],
"description": "What the note is attached to (billing_package = a subscription, user = a contact)."
},
"context_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The id of that record (customer_id, package_id, invoice_id, user_id, quote_id or item_id)."
},
"note": {
"type": "string",
"minLength": 1,
"maxLength": 5000,
"description": "The note text."
}
},
"required": [
"context_str",
"context_id",
"note"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴chargeover_create_quote(customer_id, paycycle, line_items, refnumber, nickname, ...)
WRITE: create a quote (a proposal) for an existing customer. Nothing is billed and no email is sent: the quote stays open until someone sends or accepts it in ChargeOver. Each line refers to an existing item (chargeover_list_items). paycycle: one = one-time invoice, mon = monthly, 2mn = every 2 months, qtr = quarterly, six = every 6 months, yrl = yearly, 2yr, 3yr, 1wk = weekly, 2wk. Returns the new quote_id. POST /quote.
입력 스키마
{
"type": "object",
"properties": {
"customer_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The customer the quote is for."
},
"paycycle": {
"type": "string",
"enum": [
"one",
"mon",
"2mn",
"qtr",
"six",
"yrl",
"2yr",
"3yr",
"1wk",
"2wk"
],
"description": "Billing cycle of the quote."
},
"line_items": {
"minItems": 1,
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"item_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "An existing item_id."
},
"descrip": {
"description": "Line description override.",
"type": "string",
"maxLength": 1000
},
"line_quantity": {
"description": "Quantity (default 1).",
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000000000
},
"expire_recurs": {
"description": "Number of invoices before the line expires.",
"type": "integer",
"minimum": 1,
"maximum": 1000
}
},
"required": [
"item_id"
]
},
"description": "At least one line."
},
"refnumber": {
"description": "Your reference number for the quote.",
"type": "string",
"maxLength": 100
},
"nickname": {
"description": "Nickname of the quote.",
"type": "string",
"maxLength": 255
},
"memo": {
"description": "Memo shown to the customer on the quote.",
"type": "string",
"maxLength": 2000
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "A date as YYYY-MM-DD."
},
"validuntil_date": {
"description": "Quote valid until, YYYY-MM-DD.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"external_key": {
"description": "Your own unique id for the quote.",
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"required": [
"customer_id",
"paycycle",
"line_items"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}커뮤니티
증거