Hiveage MCP by usefulapi
Manage Hiveage clients, invoices, estimates and payments; send invoices and record payments.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (5)
- LOWen hiveage_list_connection_invoices
- LOWen hiveage_list_connection_estimates
- LOWen hiveage_list_connection_recurring_invoices
- LOWen hiveage_list_recurring_invoices
- LOWen hiveage_list_recurring_invoice_invoices
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": {
"hiveage": {
"url": "https://hiveage.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://hiveage.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (28)
🟢hiveage_list_connections(page, per_page, order)
List connections: the companies, clients and vendors in the account's network, sorted by name. Each has a hash_key (used by other tools) and a numeric id (used as connection_id when creating invoices). Hiveage: GET /network.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page: 20 (default), 60 or 100.",
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
]
},
"order": {
"description": "Sort direction (default asc).",
"type": "string",
"enum": [
"asc",
"desc"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hiveage_get_connection(hash_key)
Get one connection (client, vendor or company) by hash_key. Hiveage: GET /network/{hash_key}.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the connection (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
}
},
"required": [
"hash_key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hiveage_list_connection_invoices(hash_key, page, per_page)
List the invoices of one connection (client), by date. Hiveage: GET /network/{hash_key}/invoices.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the connection (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page: 20 (default), 60 or 100.",
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
]
}
},
"required": [
"hash_key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hiveage_list_connection_estimates(hash_key, page, per_page)
List the estimates of one connection (client). Hiveage: GET /network/{hash_key}/estimates.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the connection (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page: 20 (default), 60 or 100.",
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
]
}
},
"required": [
"hash_key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hiveage_list_connection_recurring_invoices(hash_key, page, per_page)
List the recurring invoice profiles of one connection (client). Hiveage: GET /network/{hash_key}/recurring_invoices.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the connection (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page: 20 (default), 60 or 100.",
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
]
}
},
"required": [
"hash_key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hiveage_list_contacts(hash_key, page, per_page, order)
List the contacts (people with an email address for sending statements) of a connection. Hiveage: GET /network/{hash_key}/contacts.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the connection (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page: 20 (default), 60 or 100.",
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
]
},
"order": {
"description": "Sort direction (default asc).",
"type": "string",
"enum": [
"asc",
"desc"
]
}
},
"required": [
"hash_key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hiveage_get_contact(hash_key, id)
Get one contact of a connection by its numeric id. Hiveage: GET /network/{hash_key}/contacts/{id}.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the connection (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The contact id."
}
},
"required": [
"hash_key",
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hiveage_list_invoices(page, per_page, order)
List invoices (state draft, viewed, sent, paid or partial) with totals, sorted by date. Hiveage: GET /invs.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page: 20 (default), 60 or 100.",
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
]
},
"order": {
"description": "Sort direction (default asc).",
"type": "string",
"enum": [
"asc",
"desc"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hiveage_get_invoice(hash_key)
Get one invoice by hash_key, with its line items, taxes, discounts and shipping. Hiveage: GET /invs/{hash_key}.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the invoice (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
}
},
"required": [
"hash_key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hiveage_list_estimates(page, per_page, order)
List estimates (quotes), sorted by date. Hiveage: GET /estm.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page: 20 (default), 60 or 100.",
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
]
},
"order": {
"description": "Sort direction (default asc).",
"type": "string",
"enum": [
"asc",
"desc"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hiveage_get_estimate(hash_key)
Get one estimate by hash_key, with its line items. Hiveage: GET /estm/{hash_key}.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the estimate (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
}
},
"required": [
"hash_key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hiveage_list_recurring_invoices(page, per_page)
List recurring invoice profiles (interval, next billing date, occurrences). Hiveage: GET /rinv.
Esquema de entrada
{
"type": "object",
"properties": {
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page: 20 (default), 60 or 100.",
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hiveage_get_recurring_invoice(hash_key)
Get one recurring invoice profile by hash_key. Hiveage: GET /rinv/{hash_key}.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the recurring invoice (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
}
},
"required": [
"hash_key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hiveage_list_recurring_invoice_invoices(hash_key, page, per_page)
List the invoices a recurring invoice profile has generated. Hiveage: GET /rinv/{hash_key}/invoices.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the recurring invoice (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page: 20 (default), 60 or 100.",
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
]
}
},
"required": [
"hash_key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hiveage_list_payments(hash_key, page, per_page)
List the payments entered on an invoice. Hiveage: GET /invs/{hash_key}/payments.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the invoice (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page: 20 (default), 60 or 100.",
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
]
}
},
"required": [
"hash_key"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hiveage_get_payment(hash_key, id)
Get one payment of an invoice by its numeric id. Hiveage: GET /invs/{hash_key}/payments/{id}.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the invoice (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The payment id."
}
},
"required": [
"hash_key",
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢hiveage_list_categories(kind, page, per_page, order)
List the saved line-item templates: kind items (saved items with price and unit), expenses, tasks (with rate) or trips (with rate). Hiveage: GET /categories/{kind}.
Esquema de entrada
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"items",
"expenses",
"tasks",
"trips"
],
"description": "Which saved list to read."
},
"page": {
"description": "Page number, starting at 1.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"per_page": {
"description": "Results per page: 20 (default), 60 or 100.",
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
]
},
"order": {
"description": "Sort direction (default asc).",
"type": "string",
"enum": [
"asc",
"desc"
]
}
},
"required": [
"kind"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡hiveage_create_connection(category, name, first_name, last_name, business_email, ...)
WRITE: create a new connection (client, vendor or company) in the account. For an organization give `name`; for an individual give first_name and last_name. Hiveage: POST /network.
Esquema de entrada
{
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": [
"organization",
"individual"
],
"description": "organization (use name) or individual (use first_name and last_name)."
},
"name": {
"description": "Organization name (organization only).",
"type": "string"
},
"first_name": {
"description": "First name (individual only).",
"type": "string"
},
"last_name": {
"description": "Last name (individual only).",
"type": "string"
},
"business_email": {
"type": "string",
"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,}$",
"description": "Business email."
},
"currency": {
"type": "string",
"minLength": 3,
"maxLength": 3,
"description": "ISO currency code, for example USD."
},
"language": {
"description": "Language code, default en-us (also en-uk, zh, da, nl, de, et, fil, fr, hi, it, ja, ko, ms, pt-br, ru, si, es).",
"type": "string"
},
"address": {
"type": "string"
},
"city": {
"type": "string"
},
"state_name": {
"type": "string"
},
"zip_code": {
"type": "string"
},
"country": {
"type": "string"
},
"phone": {
"type": "string"
},
"fax": {
"type": "string"
},
"website_url": {
"type": "string"
},
"primary_contact_first_name": {
"type": "string"
},
"primary_contact_last_name": {
"type": "string"
}
},
"required": [
"category",
"business_email",
"currency"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡hiveage_create_contact(hash_key, first_name, last_name, email, mobile, ...)
WRITE: add a contact (name and email, used when sending statements) to a connection. Hiveage: POST /network/{hash_key}/contacts.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the connection (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"first_name": {
"type": "string",
"minLength": 1
},
"last_name": {
"type": "string"
},
"email": {
"type": "string",
"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,}$"
},
"mobile": {
"type": "string"
},
"phone": {
"type": "string"
}
},
"required": [
"hash_key",
"first_name",
"email"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴hiveage_update_contact(hash_key, id, first_name, last_name, email, ...)
WRITE: change fields of a contact (only the fields you pass are sent). Hiveage: PUT /network/{hash_key}/contacts/{id}.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the connection (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The contact id."
},
"first_name": {
"type": "string"
},
"last_name": {
"type": "string"
},
"email": {
"type": "string",
"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,}$"
},
"mobile": {
"type": "string"
},
"phone": {
"type": "string"
}
},
"required": [
"hash_key",
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡hiveage_create_invoice(connection_id, statement_no, date, due_date, summary, ...)
WRITE: create an invoice (starts as a draft; nothing is emailed) for a connection. statement_no must be unique. connection_id is the numeric `id` from hiveage_list_connections. Hiveage: POST /invs.
Esquema de entrada
{
"type": "object",
"properties": {
"connection_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The numeric id (not the hash_key) of the connection to bill."
},
"statement_no": {
"type": "string",
"minLength": 1,
"description": "Unique invoice number, for example IN-001."
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Invoice date, YYYY-MM-DD."
},
"due_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Due date, YYYY-MM-DD."
},
"summary": {
"type": "string"
},
"note": {
"type": "string"
},
"po_number": {
"type": "string"
},
"payment_options": {
"description": "Accepted payment methods.",
"type": "array",
"items": {
"type": "string",
"enum": [
"cash",
"check",
"bank_transfer",
"paypal"
]
}
},
"allow_partial_payments": {
"type": "boolean"
},
"send_receipts_automatically": {
"type": "boolean"
},
"send_reminders": {
"type": "boolean"
},
"items": {
"description": "Item lines (description, price, quantity).",
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"description": {
"type": "string",
"description": "Line description."
},
"price": {
"description": "Unit price.",
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
},
"quantity": {
"description": "Quantity.",
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
},
"unit": {
"description": "Unit label such as \"hourly\".",
"type": "string"
}
},
"required": [
"description",
"price",
"quantity"
]
}
},
"expenses": {
"description": "Expense lines.",
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"description": {
"type": "string"
},
"amount": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
}
},
"required": [
"description",
"amount"
]
}
},
"tasks": {
"description": "Time task lines.",
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"description": {
"type": "string"
},
"duration": {
"description": "Duration in minutes.",
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
},
"rate": {
"description": "Rate per hour.",
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
}
},
"required": [
"description",
"duration",
"rate"
]
}
},
"trips": {
"description": "Mileage lines.",
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"description": {
"type": "string"
},
"distance": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
},
"rate": {
"description": "Rate per distance unit.",
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
}
},
"required": [
"description",
"distance",
"rate"
]
}
},
"taxes": {
"description": "Taxes added to the sub total.",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name, for example \"VAT\"."
},
"combined_amount_percent": {
"type": "string",
"description": "Fixed or percentage value, for example \"5.00\" or \"5.25%\"."
},
"percentage": {
"description": "true if the value is a percentage.",
"type": "boolean"
}
},
"required": [
"name",
"combined_amount_percent"
]
}
},
"discounts": {
"description": "Discounts applied to the sub total.",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name, for example \"VAT\"."
},
"combined_amount_percent": {
"type": "string",
"description": "Fixed or percentage value, for example \"5.00\" or \"5.25%\"."
},
"percentage": {
"description": "true if the value is a percentage.",
"type": "boolean"
}
},
"required": [
"name",
"combined_amount_percent"
]
}
},
"shipping_amounts": {
"description": "Shipping charges.",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name, for example \"VAT\"."
},
"combined_amount_percent": {
"type": "string",
"description": "Fixed or percentage value, for example \"5.00\" or \"5.25%\"."
},
"percentage": {
"description": "true if the value is a percentage.",
"type": "boolean"
}
},
"required": [
"name",
"combined_amount_percent"
]
}
}
},
"required": [
"connection_id",
"statement_no",
"date",
"due_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡hiveage_create_estimate(connection_id, statement_no, date, expire_date, summary, ...)
WRITE: create an estimate (quote; starts as a draft, nothing is emailed) for a connection. statement_no must be unique. Hiveage: POST /estm.
Esquema de entrada
{
"type": "object",
"properties": {
"connection_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The numeric id (not the hash_key) of the connection."
},
"statement_no": {
"type": "string",
"minLength": 1,
"description": "Unique estimate number, for example EST-001."
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Estimate date, YYYY-MM-DD."
},
"expire_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Expiry date, YYYY-MM-DD."
},
"summary": {
"type": "string"
},
"note": {
"type": "string"
},
"send_reminders": {
"type": "boolean"
},
"items": {
"description": "Item lines (description, price, quantity).",
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"description": {
"type": "string",
"description": "Line description."
},
"price": {
"description": "Unit price.",
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
},
"quantity": {
"description": "Quantity.",
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
},
"unit": {
"description": "Unit label such as \"hourly\".",
"type": "string"
}
},
"required": [
"description",
"price",
"quantity"
]
}
},
"expenses": {
"description": "Expense lines.",
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"description": {
"type": "string"
},
"amount": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
}
},
"required": [
"description",
"amount"
]
}
},
"tasks": {
"description": "Time task lines.",
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"description": {
"type": "string"
},
"duration": {
"description": "Duration in minutes.",
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
},
"rate": {
"description": "Rate per hour.",
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
}
},
"required": [
"description",
"duration",
"rate"
]
}
},
"trips": {
"description": "Mileage lines.",
"maxItems": 100,
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"description": {
"type": "string"
},
"distance": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
},
"rate": {
"description": "Rate per distance unit.",
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
}
},
"required": [
"description",
"distance",
"rate"
]
}
},
"taxes": {
"description": "Taxes added to the sub total.",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name, for example \"VAT\"."
},
"combined_amount_percent": {
"type": "string",
"description": "Fixed or percentage value, for example \"5.00\" or \"5.25%\"."
},
"percentage": {
"description": "true if the value is a percentage.",
"type": "boolean"
}
},
"required": [
"name",
"combined_amount_percent"
]
}
},
"discounts": {
"description": "Discounts applied to the sub total.",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name, for example \"VAT\"."
},
"combined_amount_percent": {
"type": "string",
"description": "Fixed or percentage value, for example \"5.00\" or \"5.25%\"."
},
"percentage": {
"description": "true if the value is a percentage.",
"type": "boolean"
}
},
"required": [
"name",
"combined_amount_percent"
]
}
},
"shipping_amounts": {
"description": "Shipping charges.",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Name, for example \"VAT\"."
},
"combined_amount_percent": {
"type": "string",
"description": "Fixed or percentage value, for example \"5.00\" or \"5.25%\"."
},
"percentage": {
"description": "true if the value is a percentage.",
"type": "boolean"
}
},
"required": [
"name",
"combined_amount_percent"
]
}
}
},
"required": [
"connection_id",
"statement_no",
"date",
"expire_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴hiveage_record_payment(hash_key, amount, payment_method, date, details)
WRITE: enter a payment received on an invoice (changes its paid and due totals). Offline payments (cash, check, bank_transfer) are saved as unrealized until marked realized. Hiveage: POST /invs/{hash_key}/payments.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the invoice (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"amount": {
"description": "Payment amount, for example 10.00.",
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
},
"payment_method": {
"type": "string",
"enum": [
"cash",
"check",
"other",
"bank_transfer",
"google_wallet",
"wepay",
"twocheckout",
"paypal",
"paypal_pro",
"braintree",
"authorizenet",
"stripe"
],
"description": "How the invoice was paid."
},
"date": {
"description": "Date received, YYYY-MM-DD.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"details": {
"description": "Payment description.",
"type": "string"
}
},
"required": [
"hash_key",
"amount",
"payment_method"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴hiveage_mark_payment_realized(hash_key, id)
WRITE: mark an offline (unrealized) payment as realized, so it counts as received. Hiveage: POST /invs/{hash_key}/payments/{id}/mark_as_realized.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the invoice (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "The payment id."
}
},
"required": [
"hash_key",
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡hiveage_create_saved_item(name, price, description, unit)
WRITE: save a reusable line item (name, price, unit) for statements. Hiveage: POST /categories/items.
Esquema de entrada
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"price": {
"description": "Price, for example 150.00.",
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
},
"description": {
"type": "string"
},
"unit": {
"description": "Unit label such as \"hourly\".",
"type": "string"
}
},
"required": [
"name",
"price"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴hiveage_send_invoice(hash_key, confirm, recipients, blind_copies, subject, ...)
WRITE, SENDS EMAIL: email an invoice to the client (the default invoice template to the connection's contacts, or a custom recipient/subject/message). Cannot be undone. Hiveage: POST /invs/{hash_key}/deliver.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the invoice (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be true: this emails real people from the Hiveage account."
},
"recipients": {
"description": "Custom TO addresses (all of recipients, subject and message are then needed). Omit for the default template and the connection's contacts.",
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string",
"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,}$"
}
},
"required": [
"name",
"email"
]
}
},
"blind_copies": {
"description": "BCC addresses (custom delivery only).",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string",
"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,}$"
}
},
"required": [
"name",
"email"
]
}
},
"subject": {
"description": "Email subject (custom delivery only).",
"type": "string"
},
"message": {
"description": "Email body (custom delivery only).",
"type": "string"
},
"attachment": {
"description": "Attach the PDF (custom delivery only).",
"type": "boolean"
}
},
"required": [
"hash_key",
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴hiveage_send_invoice_reminder(hash_key, confirm, recipients, blind_copies, subject, ...)
WRITE, SENDS EMAIL: email a payment reminder for an invoice (default reminder template, or custom). Cannot be undone. Hiveage: POST /invs/{hash_key}/reminder.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the invoice (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be true: this emails real people from the Hiveage account."
},
"recipients": {
"description": "Custom TO addresses (all of recipients, subject and message are then needed). Omit for the default template and the connection's contacts.",
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string",
"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,}$"
}
},
"required": [
"name",
"email"
]
}
},
"blind_copies": {
"description": "BCC addresses (custom delivery only).",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string",
"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,}$"
}
},
"required": [
"name",
"email"
]
}
},
"subject": {
"description": "Email subject (custom delivery only).",
"type": "string"
},
"message": {
"description": "Email body (custom delivery only).",
"type": "string"
},
"attachment": {
"description": "Attach the PDF (custom delivery only).",
"type": "boolean"
}
},
"required": [
"hash_key",
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴hiveage_send_estimate(hash_key, confirm, recipients, blind_copies, subject, ...)
WRITE, SENDS EMAIL: email an estimate to the client (default template, or custom). Cannot be undone. Hiveage: POST /estm/{hash_key}/deliver.
Esquema de entrada
{
"type": "object",
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the estimate (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be true: this emails real people from the Hiveage account."
},
"recipients": {
"description": "Custom TO addresses (all of recipients, subject and message are then needed). Omit for the default template and the connection's contacts.",
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string",
"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,}$"
}
},
"required": [
"name",
"email"
]
}
},
"blind_copies": {
"description": "BCC addresses (custom delivery only).",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string",
"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,}$"
}
},
"required": [
"name",
"email"
]
}
},
"subject": {
"description": "Email subject (custom delivery only).",
"type": "string"
},
"message": {
"description": "Email body (custom delivery only).",
"type": "string"
},
"attachment": {
"description": "Attach the PDF (custom delivery only).",
"type": "boolean"
}
},
"required": [
"hash_key",
"confirm"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia