Billy MCP by usefulapi
Server Details
Read Billy invoices, bills, contacts, products and postings; create contacts and draft invoices.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Score is being calculated.
Available Tools
15 toolsbilly_create_contactCreate a contactDestructiveInspect
WRITE: create ONE new contact (customer and/or supplier) in the company's Billy account. It does not check for duplicates (call billy_list_contacts first) and nothing is sent to the contact. Not idempotent: a repeat call creates a second contact. POST /contacts.
| Name | Required | Description | Default |
|---|---|---|---|
| ean | No | EAN location number for e-invoicing (Denmark). | |
| city | No | City. | |
| name | Yes | Company or person name. | |
| type | No | company (default) or person. | |
| No | Primary contact e-mail (stored as the primary contact person; nothing is sent). | ||
| phone | No | Phone number. | |
| street | No | Street and number. | |
| zipcode | No | Postal code. | |
| contact_no | No | Your own customer or supplier number. | |
| country_id | No | ISO country code (default DK). | |
| is_customer | No | Customer flag (default true). | |
| is_supplier | No | Supplier flag (default false). | |
| registration_no | No | CVR number (Denmark) or EU VAT number. |
billy_create_draft_invoiceCreate a draft invoiceDestructiveInspect
WRITE: create ONE invoice in the DRAFT state for an existing contact. The invoice is NOT approved, booked, numbered into the ledger or sent: the user reviews it in Billy and approves and sends it there. The invoice number is assigned by Billy. No payment is created. Not idempotent: a repeat call creates a second draft. POST /invoices with state=draft.
| Name | Required | Description | Default |
|---|---|---|---|
| lines | Yes | 1-100 invoice lines. | |
| tax_mode | No | Whether unit prices include (incl) or exclude (excl) VAT (default: the company's setting). | |
| contact_id | Yes | The customer's contact id (from billy_list_contacts or billy_create_contact). | |
| entry_date | No | Invoice date yyyy-mm-dd (default today, UTC). | |
| currency_id | No | Invoice currency, e.g. DKK (default: the company's base currency). | |
| contact_message | No | Message to the customer shown at the top of the invoice PDF. |
billy_get_billGet a billRead-onlyInspect
One supplier bill by id with its lines. GET /bills/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The bill id (from billy_list_bills). |
billy_get_contactGet a contactRead-onlyInspect
One contact by id, with its contact persons (names and e-mail addresses). GET /contacts/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The contact id (from billy_list_contacts). |
billy_get_invoiceGet an invoiceRead-onlyInspect
One invoice by id with its lines (product, description, quantity, unit price, amount, tax) and its payment associations. GET /invoices/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The invoice id (from billy_list_invoices). |
billy_get_organizationGet the companyRead-onlyInspect
The Billy company the access token belongs to: id, name, address, registration (CVR) number, base currency, VAT settings, fiscal year, default payment terms, invoice numbering, default accounts. Good first call. GET /organization.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
billy_get_productGet a productRead-onlyInspect
One product by id with its unit prices per currency. GET /products/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The product id (from billy_list_products). |
billy_list_accountsList accounts (chart of accounts)Read-onlyInspect
The chart of accounts: account number, name, group, nature, VAT rate, bank-account flag and bank details (IBAN, bank name) of bank accounts. With is_bank_account=true this lists the bank accounts whose ids billy_list_bank_lines needs. Paged. GET /accounts.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use next_page from the previous reply. | |
| page_size | No | Records per page, 1-200 (default 50). | |
| is_bank_account | No | true = only bank accounts. |
billy_list_bank_linesList bank linesRead-onlyInspect
List the bank-statement lines of ONE bank account (read only; nothing is matched or reconciled): date, description, amount, side (debit/credit), reconciled flag, receipt state. Get the account id from billy_list_accounts with is_bank_account=true. Paged. GET /bankLines.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search over description or amount. | |
| page | No | Page number, 1-based (default 1). Use next_page from the previous reply. | |
| side | No | Only debit (money in) or credit (money out) lines. | |
| status | No | Line status (the API defaults to booked). | |
| page_size | No | Records per page, 1-200 (default 50). | |
| account_id | Yes | The bank account id (required). | |
| max_amount | No | Amount at most. | |
| min_amount | No | Amount at least. | |
| is_reconciled | No | true = only reconciled lines, false = only unreconciled. | |
| receipt_state | No | Only lines with a missing or uploaded receipt. | |
| sort_property | No | Sort by (default entryDate). | |
| max_entry_date | No | Entry date on or before (yyyy-mm-dd). | |
| min_entry_date | No | Entry date on or after (yyyy-mm-dd). | |
| sort_direction | No | Sort direction (default ASC). | |
| entry_date_period | No | Date period: all, year:2026, month:2026-03, quarter:2026-2, dates:2026-01-01...2026-01-31 ... |
billy_list_billsList bills (supplier invoices)Read-onlyInspect
List bills (purchase invoices from suppliers): supplier, dates, state (draft/approved/voided), amount, balance, isPaid, supplier invoice number. Filter by state, supplier, dates or paid status. Paged. GET /bills.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search over supplier name, description, voucher number, amount, supplier invoice number. | |
| page | No | Page number, 1-based (default 1). Use next_page from the previous reply. | |
| state | No | Only bills in this state. | |
| is_paid | No | true = only paid bills, false = only unpaid. | |
| page_size | No | Records per page, 1-200 (default 50). | |
| contact_id | No | Only bills of this supplier contact. | |
| max_due_date | No | Due date on or before (yyyy-mm-dd). | |
| min_due_date | No | Due date on or after (yyyy-mm-dd). | |
| sort_property | No | Sort by (default entryDate). | |
| max_entry_date | No | Bill date on or before (yyyy-mm-dd). | |
| min_entry_date | No | Bill date on or after (yyyy-mm-dd). | |
| sort_direction | No | Sort direction (default ASC). | |
| suppliers_invoice_no | No | Exact supplier invoice number. |
billy_list_contactsList contactsRead-onlyInspect
List customers and suppliers: name, type, address, CVR/registration number, EAN, payment terms, customer/supplier flags. The API has no documented search filter, so search is applied to the returned page only (case-insensitive on name, contact number and registration number); page on with next_page to look further. Paged. GET /contacts.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use next_page from the previous reply. | |
| search | No | Keep only contacts on the returned page whose name, contactNo or registrationNo contains this text. | |
| page_size | No | Records per page, 1-200 (default 50). |
billy_list_invoicesList invoicesRead-onlyInspect
List sales invoices and credit notes (newest first by default): number, date, due date, state (draft/approved/voided), amount, tax, balance, isPaid, contactId, currency. Filter by state, customer, number, date, period, paid status or free text. Paged. GET /invoices.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search over invoice number, order number, contact name, line description, amount. | |
| page | No | Page number, 1-based (default 1). Use next_page from the previous reply. | |
| state | No | Only invoices in this state. | |
| is_paid | No | true = only paid invoices, false = only unpaid. | |
| page_size | No | Records per page, 1-200 (default 50). | |
| contact_id | No | Only invoices of this contact (from billy_list_contacts). | |
| invoice_no | No | Exact invoice number. | |
| max_due_date | No | Due date on or before (yyyy-mm-dd); with is_paid=false this finds overdue invoices. | |
| min_due_date | No | Due date on or after (yyyy-mm-dd). | |
| sort_property | No | Sort by (default entryDate). | |
| max_entry_date | No | Invoice date on or before (yyyy-mm-dd). | |
| min_entry_date | No | Invoice date on or after (yyyy-mm-dd). | |
| sort_direction | No | Sort direction (default ASC). | |
| entry_date_period | No | Date period: all, year:2026, month:2026-03, quarter:2026-2, dates:2026-01-01...2026-01-31 ... |
billy_list_postingsList ledger postingsRead-onlyInspect
List ledger postings (the bookkeeping entries): date, text, account, amount, side (debit/credit), currency, voided flag. Filter by account, date or period. Read only. Paged. GET /postings.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text search over the posting text and the originator name. | |
| page | No | Page number, 1-based (default 1). Use next_page from the previous reply. | |
| is_voided | No | true = only voided postings, false = only live ones. | |
| page_size | No | Records per page, 1-200 (default 50). | |
| account_id | No | Only postings on this account (from billy_list_accounts). | |
| max_entry_date | No | Entry date on or before (yyyy-mm-dd). | |
| min_entry_date | No | Entry date on or after (yyyy-mm-dd). | |
| entry_date_period | No | Date period: all, year:2026, month:2026-03, quarter:2026-2, dates:2026-01-01...2026-01-31 ... |
billy_list_productsList productsRead-onlyInspect
List products and services usable as invoice lines: name, product number, description, sales account, archived flag. The API has no documented search filter, so search is applied to the returned page only (name, productNo). Paged. GET /products.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use next_page from the previous reply. | |
| search | No | Keep only products on the returned page whose name or productNo contains this text. | |
| page_size | No | Records per page, 1-200 (default 50). |
billy_list_tax_ratesList tax (VAT) ratesRead-onlyInspect
The company's VAT rates: name, rate (as a fraction, 0.25 = 25 percent), whether it applies to sales or purchases, active flag. Paged. GET /taxRates.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based (default 1). Use next_page from the previous reply. | |
| page_size | No | Records per page, 1-200 (default 50). |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
15 tool updates
- First observed
billy_create_contact - First observed
billy_create_draft_invoice - First observed
billy_get_bill - First observed
billy_get_contact - First observed
billy_get_invoice - First observed
billy_get_organization - First observed
billy_get_product - First observed
billy_list_accounts - First observed
billy_list_bank_lines - First observed
billy_list_bills - First observed
billy_list_contacts - First observed
billy_list_invoices - First observed
billy_list_postings - First observed
billy_list_products - First observed
billy_list_tax_rates
Related MCP Connectors
Read Billomat clients, invoices, offers, credit notes, reminders; create clients and draft invoices.
341Read and create Vyfakturuj invoices and contacts: search, number series, payment methods, tags.
101Read e-Boekhouden relations, invoices, ledgers, bookings and products; create relations, invoices.
1Read Invoiced customers, invoices, payments, subscriptions; create customers, draft invoices, notes.
271
Related MCP Servers
- AlicenseAqualityDmaintenanceIntegrates Billy's accounting system with MCP, providing tools to manage invoices, contacts, products, payments, and more via natural language.152MIT
- AlicenseAqualityDmaintenanceConnects AI assistants to the Danish accounting platform Billy (billy.dk) for managing invoices, journal entries, balances, and receipts, with built-in human approval for all write operations.4034 npm1MIT
- AlicenseBqualityAmaintenanceEnables local MCP-based accounting operations for Billy: receipt import with provenance, reviewed bookkeeping drafts, payments, and bank reconciliation.2114 npm1MIT
- FlicenseBqualityDmaintenanceEnables interaction with the Bokio accounting API for managing journal entries, invoices, customers, items, and more, with read-only mode by default for safety.18-
Glama MCP Gateway
Add one secure layer between your agents and this server.