ChargeOver MCP by usefulapi
Read ChargeOver customers, invoices, transactions, subscriptions, reports; create customers, quotes.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"chargeover": {
"url": "https://chargeover.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://chargeover.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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}.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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"
}Comunidad
Evidencia