Manage Hiveage clients, invoices, estimates and payments; send invoices and record payments.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
organization (use name) or individual (use first_name and last_name).
ISO currency code, for example USD.
Business email.
Organization name (organization only).
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).
Last name (individual only).
First name (individual only).
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| fax | string | |
| city | string | |
| name | string | Organization name (organization only). |
| phone | string | |
| address | string | |
| country | string | |
| category* | string | organization (use name) or individual (use first_name and last_name). |
| currency* | string | ISO currency code, for example USD. |
| language | string | 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). |
| zip_code | string | |
| last_name | string | Last name (individual only). |
| first_name | string | First name (individual only). |
| state_name | string | |
| website_url | string | |
| business_email* | string | Business email. |
| primary_contact_last_name | string | |
| primary_contact_first_name | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"category",
"business_email",
"currency"
],
"properties": {
"fax": {
"type": "string"
},
"city": {
"type": "string"
},
"name": {
"type": "string",
"description": "Organization name (organization only)."
},
"phone": {
"type": "string"
},
"address": {
"type": "string"
},
"country": {
"type": "string"
},
"category": {
"enum": [
"organization",
"individual"
],
"type": "string",
"description": "organization (use name) or individual (use first_name and last_name)."
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "ISO currency code, for example USD."
},
"language": {
"type": "string",
"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)."
},
"zip_code": {
"type": "string"
},
"last_name": {
"type": "string",
"description": "Last name (individual only)."
},
"first_name": {
"type": "string",
"description": "First name (individual only)."
},
"state_name": {
"type": "string"
},
"website_url": {
"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."
},
"primary_contact_last_name": {
"type": "string"
},
"primary_contact_first_name": {
"type": "string"
}
}
}WRITE: add a contact (name and email, used when sending statements) to a connection. Hiveage: POST /network/{hash_key}/contacts.
| Argument | Type | Description |
|---|---|---|
| email* | string | |
| phone | string | |
| mobile | string | |
| hash_key* | string | The hash_key of the connection (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
| last_name | string | |
| first_name* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key",
"first_name",
"email"
],
"properties": {
"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,}$"
},
"phone": {
"type": "string"
},
"mobile": {
"type": "string"
},
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the connection (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"last_name": {
"type": "string"
},
"first_name": {
"type": "string",
"minLength": 1
}
}
}WRITE: create an estimate (quote; starts as a draft, nothing is emailed) for a connection. statement_no must be unique. Hiveage: POST /estm.
| Argument | Type | Description |
|---|---|---|
| date* | string | Estimate date, YYYY-MM-DD. |
| note | string | |
| items | array | Item lines (description, price, quantity). |
| tasks | array | Time task lines. |
| taxes | array | Taxes added to the sub total. |
| trips | array | Mileage lines. |
| summary | string | |
| expenses | array | Expense lines. |
| discounts | array | Discounts applied to the sub total. |
| expire_date* | string | Expiry date, YYYY-MM-DD. |
| statement_no |
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.
| Argument | Type | Description |
|---|---|---|
| date* | string | Invoice date, YYYY-MM-DD. |
| note | string | |
| items | array | Item lines (description, price, quantity). |
| tasks | array | Time task lines. |
| taxes | array | Taxes added to the sub total. |
| trips | array | Mileage lines. |
| summary | string | |
| due_date* | string | Due date, YYYY-MM-DD. |
| expenses | array | Expense lines. |
| discounts | array | Discounts applied to the sub total. |
| po_number |
WRITE: save a reusable line item (name, price, unit) for statements. Hiveage: POST /categories/items.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| unit | string | Unit label such as "hourly". |
| price* | any | Price, for example 150.00. |
| description | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"name",
"price"
],
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"unit": {
"type": "string",
"description": "Unit label such as \"hourly\"."
},
"price": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
],
"description": "Price, for example 150.00."
},
"description": {
"type": "string"
}
}
}Get one connection (client, vendor or company) by hash_key. Hiveage: GET /network/{hash_key}.
| Argument | Type | Description |
|---|---|---|
| hash_key* | string | The hash_key of the connection (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key"
],
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the connection (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
}
}
}Get one contact of a connection by its numeric id. Hiveage: GET /network/{hash_key}/contacts/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The contact id. |
| hash_key* | string | The hash_key of the connection (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key",
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The contact id.",
"exclusiveMinimum": 0
},
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the connection (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
}
}
}Get one estimate by hash_key, with its line items. Hiveage: GET /estm/{hash_key}.
| Argument | Type | Description |
|---|---|---|
| hash_key* | string | The hash_key of the estimate (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key"
],
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the estimate (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
}
}
}Get one invoice by hash_key, with its line items, taxes, discounts and shipping. Hiveage: GET /invs/{hash_key}.
| Argument | Type | Description |
|---|---|---|
| hash_key* | string | The hash_key of the invoice (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key"
],
"properties": {
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the invoice (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
}
}
}Get one payment of an invoice by its numeric id. Hiveage: GET /invs/{hash_key}/payments/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The payment id. |
| hash_key* | string | The hash_key of the invoice (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key",
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The payment id.",
"exclusiveMinimum": 0
},
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the invoice (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
}
}
}Get one recurring invoice profile by hash_key. Hiveage: GET /rinv/{hash_key}.
| Argument | Type | Description |
|---|---|---|
| hash_key* | string | The hash_key of the recurring invoice (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key"
],
"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."
}
}
}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}.
| Argument | Type | Description |
|---|---|---|
| kind* | string | Which saved list to read. |
| page | integer | Page number, starting at 1. |
| order | string | Sort direction (default asc). |
| per_page | any | Results per page: 20 (default), 60 or 100. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"items",
"expenses",
"tasks",
"trips"
],
"type": "string",
"description": "Which saved list to read."
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, starting at 1."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction (default asc)."
},
"per_page": {
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
],
"description": "Results per page: 20 (default), 60 or 100."
}
}
}List the estimates of one connection (client). Hiveage: GET /network/{hash_key}/estimates.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, starting at 1. |
| hash_key* | string | The hash_key of the connection (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
| per_page | any | Results per page: 20 (default), 60 or 100. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, starting at 1."
},
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the connection (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"per_page": {
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
],
"description": "Results per page: 20 (default), 60 or 100."
}
}
}List the invoices of one connection (client), by date. Hiveage: GET /network/{hash_key}/invoices.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, starting at 1. |
| hash_key* | string | The hash_key of the connection (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
| per_page | any | Results per page: 20 (default), 60 or 100. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, starting at 1."
},
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the connection (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"per_page": {
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
],
"description": "Results per page: 20 (default), 60 or 100."
}
}
}List the recurring invoice profiles of one connection (client). Hiveage: GET /network/{hash_key}/recurring_invoices.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, starting at 1. |
| hash_key* | string | The hash_key of the connection (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
| per_page | any | Results per page: 20 (default), 60 or 100. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, starting at 1."
},
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the connection (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"per_page": {
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
],
"description": "Results per page: 20 (default), 60 or 100."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, starting at 1. |
| order | string | Sort direction (default asc). |
| per_page | any | Results per page: 20 (default), 60 or 100. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, starting at 1."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction (default asc)."
},
"per_page": {
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
],
"description": "Results per page: 20 (default), 60 or 100."
}
}
}List the contacts (people with an email address for sending statements) of a connection. Hiveage: GET /network/{hash_key}/contacts.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, starting at 1. |
| order | string | Sort direction (default asc). |
| hash_key* | string | The hash_key of the connection (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
| per_page | any | Results per page: 20 (default), 60 or 100. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, starting at 1."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction (default asc)."
},
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the connection (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"per_page": {
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
],
"description": "Results per page: 20 (default), 60 or 100."
}
}
}List estimates (quotes), sorted by date. Hiveage: GET /estm.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, starting at 1. |
| order | string | Sort direction (default asc). |
| per_page | any | Results per page: 20 (default), 60 or 100. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, starting at 1."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction (default asc)."
},
"per_page": {
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
],
"description": "Results per page: 20 (default), 60 or 100."
}
}
}List invoices (state draft, viewed, sent, paid or partial) with totals, sorted by date. Hiveage: GET /invs.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, starting at 1. |
| order | string | Sort direction (default asc). |
| per_page | any | Results per page: 20 (default), 60 or 100. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, starting at 1."
},
"order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction (default asc)."
},
"per_page": {
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
],
"description": "Results per page: 20 (default), 60 or 100."
}
}
}List the payments entered on an invoice. Hiveage: GET /invs/{hash_key}/payments.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, starting at 1. |
| hash_key* | string | The hash_key of the invoice (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
| per_page | any | Results per page: 20 (default), 60 or 100. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, starting at 1."
},
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the invoice (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"per_page": {
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
],
"description": "Results per page: 20 (default), 60 or 100."
}
}
}List the invoices a recurring invoice profile has generated. Hiveage: GET /rinv/{hash_key}/invoices.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, starting at 1. |
| hash_key* | string | The hash_key of the recurring invoice (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
| per_page | any | Results per page: 20 (default), 60 or 100. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, starting at 1."
},
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the recurring invoice (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"per_page": {
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
],
"description": "Results per page: 20 (default), 60 or 100."
}
}
}List recurring invoice profiles (interval, next billing date, occurrences). Hiveage: GET /rinv.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, starting at 1. |
| per_page | any | Results per page: 20 (default), 60 or 100. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Page number, starting at 1."
},
"per_page": {
"anyOf": [
{
"type": "number",
"const": 20
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 100
}
],
"description": "Results per page: 20 (default), 60 or 100."
}
}
}WRITE: mark an offline (unrealized) payment as realized, so it counts as received. Hiveage: POST /invs/{hash_key}/payments/{id}/mark_as_realized.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The payment id. |
| hash_key* | string | The hash_key of the invoice (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key",
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The payment id.",
"exclusiveMinimum": 0
},
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the invoice (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| date | string | Date received, YYYY-MM-DD. |
| amount* | any | Payment amount, for example 10.00. |
| details | string | Payment description. |
| hash_key* | string | The hash_key of the invoice (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
| payment_method* | string | How the invoice was paid. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key",
"amount",
"payment_method"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Date received, YYYY-MM-DD."
},
"amount": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
],
"description": "Payment amount, for example 10.00."
},
"details": {
"type": "string",
"description": "Payment description."
},
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the invoice (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"payment_method": {
"enum": [
"cash",
"check",
"other",
"bank_transfer",
"google_wallet",
"wepay",
"twocheckout",
"paypal",
"paypal_pro",
"braintree",
"authorizenet",
"stripe"
],
"type": "string",
"description": "How the invoice was paid."
}
}
}WRITE, SENDS EMAIL: email an estimate to the client (default template, or custom). Cannot be undone. Hiveage: POST /estm/{hash_key}/deliver.
| Argument | Type | Description |
|---|---|---|
| confirm* | boolean | Must be true: this emails real people from the Hiveage account. |
| message | string | Email body (custom delivery only). |
| subject | string | Email subject (custom delivery only). |
| hash_key* | string | The hash_key of the estimate (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
| attachment | boolean | Attach the PDF (custom delivery only). |
| recipients | array | Custom TO addresses (all of recipients, subject and message are then needed). Omit for the default template and the connection's contacts. |
| blind_copies | array | BCC addresses (custom delivery only). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key",
"confirm"
],
"properties": {
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be true: this emails real people from the Hiveage account."
},
"message": {
"type": "string",
"description": "Email body (custom delivery only)."
},
"subject": {
"type": "string",
"description": "Email subject (custom delivery only)."
},
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the estimate (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"attachment": {
"type": "boolean",
"description": "Attach the PDF (custom delivery only)."
},
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"email"
],
"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,}$"
}
}
},
"maxItems": 20,
"minItems": 1,
"description": "Custom TO addresses (all of recipients, subject and message are then needed). Omit for the default template and the connection's contacts."
},
"blind_copies": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"email"
],
"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,}$"
}
}
},
"maxItems": 20,
"description": "BCC addresses (custom delivery only)."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| confirm* | boolean | Must be true: this emails real people from the Hiveage account. |
| message | string | Email body (custom delivery only). |
| subject | string | Email subject (custom delivery only). |
| hash_key* | string | The hash_key of the invoice (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
| attachment | boolean | Attach the PDF (custom delivery only). |
| recipients | array | Custom TO addresses (all of recipients, subject and message are then needed). Omit for the default template and the connection's contacts. |
| blind_copies | array | BCC addresses (custom delivery only). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key",
"confirm"
],
"properties": {
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be true: this emails real people from the Hiveage account."
},
"message": {
"type": "string",
"description": "Email body (custom delivery only)."
},
"subject": {
"type": "string",
"description": "Email subject (custom delivery only)."
},
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the invoice (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"attachment": {
"type": "boolean",
"description": "Attach the PDF (custom delivery only)."
},
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"email"
],
"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,}$"
}
}
},
"maxItems": 20,
"minItems": 1,
"description": "Custom TO addresses (all of recipients, subject and message are then needed). Omit for the default template and the connection's contacts."
},
"blind_copies": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"email"
],
"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,}$"
}
}
},
"maxItems": 20,
"description": "BCC addresses (custom delivery only)."
}
}
}WRITE, SENDS EMAIL: email a payment reminder for an invoice (default reminder template, or custom). Cannot be undone. Hiveage: POST /invs/{hash_key}/reminder.
| Argument | Type | Description |
|---|---|---|
| confirm* | boolean | Must be true: this emails real people from the Hiveage account. |
| message | string | Email body (custom delivery only). |
| subject | string | Email subject (custom delivery only). |
| hash_key* | string | The hash_key of the invoice (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
| attachment | boolean | Attach the PDF (custom delivery only). |
| recipients | array | Custom TO addresses (all of recipients, subject and message are then needed). Omit for the default template and the connection's contacts. |
| blind_copies | array | BCC addresses (custom delivery only). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key",
"confirm"
],
"properties": {
"confirm": {
"type": "boolean",
"const": true,
"description": "Must be true: this emails real people from the Hiveage account."
},
"message": {
"type": "string",
"description": "Email body (custom delivery only)."
},
"subject": {
"type": "string",
"description": "Email subject (custom delivery only)."
},
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the invoice (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"attachment": {
"type": "boolean",
"description": "Attach the PDF (custom delivery only)."
},
"recipients": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"email"
],
"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,}$"
}
}
},
"maxItems": 20,
"minItems": 1,
"description": "Custom TO addresses (all of recipients, subject and message are then needed). Omit for the default template and the connection's contacts."
},
"blind_copies": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"email"
],
"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,}$"
}
}
},
"maxItems": 20,
"description": "BCC addresses (custom delivery only)."
}
}
}WRITE: change fields of a contact (only the fields you pass are sent). Hiveage: PUT /network/{hash_key}/contacts/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | integer | The contact id. |
| string | ||
| phone | string | |
| mobile | string | |
| hash_key* | string | The hash_key of the connection (a short string such as "bCbFYNj3RFM2uQ"), not its numeric id. |
| last_name | string | |
| first_name | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"hash_key",
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The contact id.",
"exclusiveMinimum": 0
},
"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,}$"
},
"phone": {
"type": "string"
},
"mobile": {
"type": "string"
},
"hash_key": {
"type": "string",
"minLength": 1,
"description": "The hash_key of the connection (a short string such as \"bCbFYNj3RFM2uQ\"), not its numeric id."
},
"last_name": {
"type": "string"
},
"first_name": {
"type": "string"
}
}
}| string |
| Unique estimate number, for example EST-001. |
| connection_id* | integer | The numeric id (not the hash_key) of the connection. |
| send_reminders | boolean |
| shipping_amounts | array | Shipping charges. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"connection_id",
"statement_no",
"date",
"expire_date"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Estimate date, YYYY-MM-DD."
},
"note": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"description",
"price",
"quantity"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"unit": {
"type": "string",
"description": "Unit label such as \"hourly\"."
},
"price": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
],
"description": "Unit price."
},
"quantity": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
],
"description": "Quantity."
},
"description": {
"type": "string",
"description": "Line description."
}
}
},
"maxItems": 100,
"description": "Item lines (description, price, quantity)."
},
"tasks": {
"type": "array",
"items": {
"type": "object",
"required": [
"description",
"duration",
"rate"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"rate": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
],
"description": "Rate per hour."
},
"duration": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
],
"description": "Duration in minutes."
},
"description": {
"type": "string"
}
}
},
"maxItems": 100,
"description": "Time task lines."
},
"taxes": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"combined_amount_percent"
],
"properties": {
"name": {
"type": "string",
"description": "Name, for example \"VAT\"."
},
"percentage": {
"type": "boolean",
"description": "true if the value is a percentage."
},
"combined_amount_percent": {
"type": "string",
"description": "Fixed or percentage value, for example \"5.00\" or \"5.25%\"."
}
}
},
"maxItems": 20,
"description": "Taxes added to the sub total."
},
"trips": {
"type": "array",
"items": {
"type": "object",
"required": [
"description",
"distance",
"rate"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"rate": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
],
"description": "Rate per distance unit."
},
"distance": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
},
"description": {
"type": "string"
}
}
},
"maxItems": 100,
"description": "Mileage lines."
},
"summary": {
"type": "string"
},
"expenses": {
"type": "array",
"items": {
"type": "object",
"required": [
"description",
"amount"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"amount": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
},
"description": {
"type": "string"
}
}
},
"maxItems": 100,
"description": "Expense lines."
},
"discounts": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"combined_amount_percent"
],
"properties": {
"name": {
"type": "string",
"description": "Name, for example \"VAT\"."
},
"percentage": {
"type": "boolean",
"description": "true if the value is a percentage."
},
"combined_amount_percent": {
"type": "string",
"description": "Fixed or percentage value, for example \"5.00\" or \"5.25%\"."
}
}
},
"maxItems": 20,
"description": "Discounts applied to the sub total."
},
"expire_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Expiry date, YYYY-MM-DD."
},
"statement_no": {
"type": "string",
"minLength": 1,
"description": "Unique estimate number, for example EST-001."
},
"connection_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The numeric id (not the hash_key) of the connection.",
"exclusiveMinimum": 0
},
"send_reminders": {
"type": "boolean"
},
"shipping_amounts": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"combined_amount_percent"
],
"properties": {
"name": {
"type": "string",
"description": "Name, for example \"VAT\"."
},
"percentage": {
"type": "boolean",
"description": "true if the value is a percentage."
},
"combined_amount_percent": {
"type": "string",
"description": "Fixed or percentage value, for example \"5.00\" or \"5.25%\"."
}
}
},
"maxItems": 20,
"description": "Shipping charges."
}
}
}| string |
| statement_no* | string | Unique invoice number, for example IN-001. |
| connection_id* | integer | The numeric id (not the hash_key) of the connection to bill. |
| send_reminders | boolean |
| payment_options | array | Accepted payment methods. |
| shipping_amounts | array | Shipping charges. |
| allow_partial_payments | boolean |
| send_receipts_automatically | boolean |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"connection_id",
"statement_no",
"date",
"due_date"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Invoice date, YYYY-MM-DD."
},
"note": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"description",
"price",
"quantity"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"unit": {
"type": "string",
"description": "Unit label such as \"hourly\"."
},
"price": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
],
"description": "Unit price."
},
"quantity": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
],
"description": "Quantity."
},
"description": {
"type": "string",
"description": "Line description."
}
}
},
"maxItems": 100,
"description": "Item lines (description, price, quantity)."
},
"tasks": {
"type": "array",
"items": {
"type": "object",
"required": [
"description",
"duration",
"rate"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"rate": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
],
"description": "Rate per hour."
},
"duration": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
],
"description": "Duration in minutes."
},
"description": {
"type": "string"
}
}
},
"maxItems": 100,
"description": "Time task lines."
},
"taxes": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"combined_amount_percent"
],
"properties": {
"name": {
"type": "string",
"description": "Name, for example \"VAT\"."
},
"percentage": {
"type": "boolean",
"description": "true if the value is a percentage."
},
"combined_amount_percent": {
"type": "string",
"description": "Fixed or percentage value, for example \"5.00\" or \"5.25%\"."
}
}
},
"maxItems": 20,
"description": "Taxes added to the sub total."
},
"trips": {
"type": "array",
"items": {
"type": "object",
"required": [
"description",
"distance",
"rate"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"rate": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
],
"description": "Rate per distance unit."
},
"distance": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
},
"description": {
"type": "string"
}
}
},
"maxItems": 100,
"description": "Mileage lines."
},
"summary": {
"type": "string"
},
"due_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Due date, YYYY-MM-DD."
},
"expenses": {
"type": "array",
"items": {
"type": "object",
"required": [
"description",
"amount"
],
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"amount": {
"anyOf": [
{
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
{
"type": "number"
}
]
},
"description": {
"type": "string"
}
}
},
"maxItems": 100,
"description": "Expense lines."
},
"discounts": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"combined_amount_percent"
],
"properties": {
"name": {
"type": "string",
"description": "Name, for example \"VAT\"."
},
"percentage": {
"type": "boolean",
"description": "true if the value is a percentage."
},
"combined_amount_percent": {
"type": "string",
"description": "Fixed or percentage value, for example \"5.00\" or \"5.25%\"."
}
}
},
"maxItems": 20,
"description": "Discounts applied to the sub total."
},
"po_number": {
"type": "string"
},
"statement_no": {
"type": "string",
"minLength": 1,
"description": "Unique invoice number, for example IN-001."
},
"connection_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "The numeric id (not the hash_key) of the connection to bill.",
"exclusiveMinimum": 0
},
"send_reminders": {
"type": "boolean"
},
"payment_options": {
"type": "array",
"items": {
"enum": [
"cash",
"check",
"bank_transfer",
"paypal"
],
"type": "string"
},
"description": "Accepted payment methods."
},
"shipping_amounts": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"combined_amount_percent"
],
"properties": {
"name": {
"type": "string",
"description": "Name, for example \"VAT\"."
},
"percentage": {
"type": "boolean",
"description": "true if the value is a percentage."
},
"combined_amount_percent": {
"type": "string",
"description": "Fixed or percentage value, for example \"5.00\" or \"5.25%\"."
}
}
},
"maxItems": 20,
"description": "Shipping charges."
},
"allow_partial_payments": {
"type": "boolean"
},
"send_receipts_automatically": {
"type": "boolean"
}
}
}