The Moneybird connector lets your AI agent act in each user's Moneybird account. Each user signs in to Moneybird once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 119 tools.
- Tools
- 119
- What they doRead · write · destructive
- 60 · 44 · 1560 read44 write15 destructive
- Users sign in with
- OAuth
- OAuth app
- Your own Moneybird app
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Moneybird connection
In AgentKit > Connections, create a Moneybird connection and copy its redirect URI. The name you give it is the
connection_nameyour code passes. See Configure connections.Register an OAuth app
Moneybird connections use your own OAuth app. Register one with Moneybird and add the redirect URI you copied.
Then enter the app's Client ID and Client Secret on the Moneybird connection.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'moneybird'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Moneybird:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'moneybird_list_administrations',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "moneybird"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Moneybird:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="moneybird_list_administrations",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolmoneybird_fetch_contacts_by_idsFetch up to 100 contacts by their ids in a single request.Read-onlyFetch Contacts By IDS
Fetch up to 100 contacts by their ids in a single request. Returns a list of contacts including id, administration_id, company_name, firstname, lastname, address1, address2. Use after list_contact_versions to download only contacts that changed.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
idsarrayrequired- Array of record ids to fetch, at most 100. Use the list_*_versions tool to find ids that changed. Example: ["401892365587990113", "401892365587990114"].
moneybird_fetch_sales_invoices_by_idsFetch up to 100 sales invoices by their ids in a single request.Read-onlyFetch Sales Invoices By IDS
Fetch up to 100 sales invoices by their ids in a single request. Returns a list of sales invoices including id, administration_id, contact_id, contact, contact_person_id, contact_person, invoice_id. Use after list_sales_invoice_versions to download only invoices that changed.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
idsarrayrequired- Array of record ids to fetch, at most 100. Use the list_*_versions tool to find ids that changed. Example: ["401892365587990113", "401892365587990114"].
moneybird_filter_contactsList contacts matching key:value filter terms or a free-text query.Read-onlyFilter Contacts
List contacts matching key:value filter terms or a free-text query. Returns a page of contacts including id, administration_id, company_name, firstname, lastname, address1, address2. Use when you need structured filters such as contact_type. Use list_contacts for plain browsing.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
filterstring- Filters are `key:value` terms separated by commas (e.g. `first_name:henk,contact_type:company`). Any filter you pass replaces the defaults below entirely, so include every key you need. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | created_after | `String` | | Select contacts created after the given time (exclusive). ISO 8601 formatted string. The time to compare with is in UTC timezone | | updated_after | `String` | | Select contacts updated after the given time (exclusive). ISO 8601 formatted string. The time to compare with is in UTC timezone | | first_name | `String` | | Select contacts with the given first name. Case-insensitive | | last_name | `String` | | Select contacts with the given last name. Case-insensitive | | estimate_workflow_id | `Integer` | | Filters contacts by a single Estimate workflow | | invoice_workflow_id | `Integer` | | Filters contacts by a single Invoice workflow | | contact_type | `String` | | The contact type. Possible values `all`, `company`, `private_individual` | | delivery_method | `String` | | The delivery method for invoices. Possible values. Possible values `all`, `email`, `post`, `manual`, `peppol`, `simplerinvoicing` | | trusted_type | `String` | | Whether the contact is trusted. Possible values `all`, `trusted`, `not_trusted` | | mandate_type | `String` | | The direct debit mandate of the contact. Possible values `all`, `manual` (the SEPA mandate fields are filled in), `adyen` (an accepted Moneybird mandate), `none` (no mandate at all) |. Example: state:open,period:this_year.
include_archivedboolean- Set to true to include archived contacts in the results. Archived contacts are hidden by default. Example: false.
pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
querystring- Free-text search across name, contact people, email, phone, customer id, tax number, chamber of commerce, IBAN, and address fields. Example: acme.
moneybird_find_estimate_by_estimate_idFind an estimate by its printed estimate number.Read-onlyFind Estimate By Estimate ID
Find an estimate by its printed estimate number. Returns the estimate including id, administration_id, contact_id, contact, contact_person_id, contact_person, estimate_id. Use when you know the estimate number rather than the Moneybird id.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
estimate_idstringrequired- Printed estimate number, for example 2026-0001. Example: 2026-0001.
moneybird_find_sales_invoice_by_invoice_idFind a sales invoice by its invoice number (for example 2026-0001).Read-onlyFind Sales Invoice By Invoice ID
Find a sales invoice by its invoice number (for example 2026-0001). Returns the sales invoice including id, administration_id, contact_id, contact, contact_person_id, contact_person, invoice_id. Use when you know the printed invoice number rather than the Moneybird id.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
invoice_idstringrequired- Printed invoice number of the sales invoice, for example 2026-0001. Example: 2026-0001.
moneybird_find_sales_invoice_by_referenceFind sales invoices by the reference you set on them.Read-onlyFind Sales Invoice By Reference
Find sales invoices by the reference you set on them. Returns the matching sales invoice including id, administration_id, contact_id, contact, contact_person_id, contact_person, invoice_id. Use when you stored an external order number in the reference field.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
referencestringrequired- The reference value that was set on the sales invoice. Example: PO-2026-0042.
moneybird_get_balance_sheet_reportGet the balance sheet report as of a date or period.Read-onlyGet Balance Sheet Report
Get the balance sheet report as of a date or period. Returns the report including debit, credit, periods. Use for assets, liabilities and equity.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
granularitystring- Splits the report into periods of a month, a quarter or a year. The response then also contains `periods`, with the same fields for each period. The first and the last period are cut off at the start and the end of `period`. Allowed values: month, quarter, year.one of
monthquarteryear periodstring- The period can be a date range or one of the presets. Date ranges must consist of whole months (start on 1st, end on last day of month). **Date range formats:** - `YYYYMMDD..YYYYMMDD` (e.g., `20250101..20250131`) - `YYYYMM..YYYYMM` (e.g., `202501..202501`) - `YYYYMM` (e.g., `202501`) **Preset options:** - `this_month` - Current month (default if not specified) - `prev_month` - Previous month - `next_month` - Next month - `this_quarter` - Current quarter - `prev_quarter` - Previous quarter - `next_quarter` - Next quarter - `this_year` - Current year - `prev_year` - Previous year - `next_year` - Next year **Maximum period: 12 months.**. Example: this_month.
moneybird_get_bank_balance_reportGet the balance per bank account for a period.Read-onlyGet Bank Balance Report
Get the balance per bank account for a period. Returns the report including total, financial_accounts, periods. Use to check bank balances. Use list_financial_mutations for individual transactions.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
granularitystring- Splits the report into periods of a month, a quarter or a year. The response then also contains `periods`, with the same fields for each period. The first and the last period are cut off at the start and the end of `period`. Allowed values: month, quarter, year.one of
monthquarteryear periodstring- The period can be a date range or one of the presets. Date ranges must consist of whole months (start on 1st, end on last day of month). **Date range formats:** - `YYYYMMDD..YYYYMMDD` (e.g., `20250101..20250131`) - `YYYYMM..YYYYMM` (e.g., `202501..202501`) - `YYYYMM` (e.g., `202501`) **Preset options:** - `this_month` - Current month (default if not specified) - `prev_month` - Previous month - `next_month` - Next month - `this_quarter` - Current quarter - `prev_quarter` - Previous quarter - `next_quarter` - Next quarter - `this_year` - Current year - `prev_year` - Previous year - `next_year` - Next year **Maximum period: 12 months.**. Example: this_month.
moneybird_get_cash_flow_reportGet the cash flow report for a period.Read-onlyGet Cash Flow Report
Get the cash flow report for a period. Returns the report including cash_received_by_ledger_account, cash_paid_by_ledger_account, opening_balance, closing_balance, periods. Use to see money moving in and out of the bank accounts.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
financial_account_idstring- Filter the cash flow report by a specific financial account. Example: 401892365587990113.
granularitystring- Splits the report into periods of a month, a quarter or a year. The response then also contains `periods`, with the same fields for each period. The first and the last period are cut off at the start and the end of `period`. Allowed values: month, quarter, year.one of
monthquarteryear periodstring- The period can be a date range or one of the presets. Date ranges must consist of whole months (start on 1st, end on last day of month). **Date range formats:** - `YYYYMMDD..YYYYMMDD` (e.g., `20250101..20250131`) - `YYYYMM..YYYYMM` (e.g., `202501..202501`) - `YYYYMM` (e.g., `202501`) **Preset options:** - `this_month` - Current month (default if not specified) - `prev_month` - Previous month - `next_month` - Next month - `this_quarter` - Current quarter - `prev_quarter` - Previous quarter - `next_quarter` - Next quarter - `this_year` - Current year - `prev_year` - Previous year - `next_year` - Next year **Maximum period: 12 months.**. Example: this_month.
moneybird_get_contactRetrieve a single contact with its contact people, notes and custom fields.Read-onlyGet Contact
Retrieve a single contact with its contact people, notes and custom fields. Returns the contact including id, administration_id, company_name, firstname, lastname, address1, address2. Use list_contacts or filter_contacts when the id is unknown.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
contact_idstringrequired- Id of the contact. Use list_contacts to find it.
include_archivedboolean- Set to true to include archived contacts in the results. Archived contacts are hidden by default. Example: false.
moneybird_get_contact_by_customer_idRetrieve a contact by its customer id (the user-visible number, not the Moneybird id).Read-onlyGet Contact By Customer ID
Retrieve a contact by its customer id (the user-visible number, not the Moneybird id). Returns the contact including id, administration_id, company_name, firstname, lastname, address1, address2. Use when you only know the customer number from another system.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
customer_idstringrequired- Customer id of the contact as shown in Moneybird (not the internal id). Example: 1042.
moneybird_get_creditors_reportGet the report of open payables per supplier.Read-onlyGet Creditors Report
Get the report of open payables per supplier. Returns the report including creditors, periods. Use to see what you owe. Use get_debtors_report for amounts owed to you.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
granularitystring- Splits the report into periods of a month, a quarter or a year. The response then also contains `periods`, with the same fields for each period. The first and the last period are cut off at the start and the end of `period`. Allowed values: month, quarter, year.one of
monthquarteryear pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
periodstring- The period can be a date range or one of the presets. Date ranges must consist of whole months (start on 1st, end on last day of month). **Date range formats:** - `YYYYMMDD..YYYYMMDD` (e.g., `20250101..20250131`) - `YYYYMM..YYYYMM` (e.g., `202501..202501`) - `YYYYMM` (e.g., `202501`) **Preset options:** - `this_month` - Current month (default if not specified) - `prev_month` - Previous month - `next_month` - Next month - `this_quarter` - Current quarter - `prev_quarter` - Previous quarter - `next_quarter` - Next quarter - `this_year` - Current year - `prev_year` - Previous year - `next_year` - Next year **Maximum period: 12 months.**. Example: this_month.
moneybird_get_debtors_reportGet the report of open receivables per customer.Read-onlyGet Debtors Report
Get the report of open receivables per customer. Returns the report including debtors, periods. Use to see who owes money. Use get_creditors_report for amounts you owe.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
granularitystring- Splits the report into periods of a month, a quarter or a year. The response then also contains `periods`, with the same fields for each period. The first and the last period are cut off at the start and the end of `period`. Allowed values: month, quarter, year.one of
monthquarteryear pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
periodstring- The period can be a date range or one of the presets. Date ranges must consist of whole months (start on 1st, end on last day of month). **Date range formats:** - `YYYYMMDD..YYYYMMDD` (e.g., `20250101..20250131`) - `YYYYMM..YYYYMM` (e.g., `202501..202501`) - `YYYYMM` (e.g., `202501`) **Preset options:** - `this_month` - Current month (default if not specified) - `prev_month` - Previous month - `next_month` - Next month - `this_quarter` - Current quarter - `prev_quarter` - Previous quarter - `next_quarter` - Next quarter - `this_year` - Current year - `prev_year` - Previous year - `next_year` - Next year **Maximum period: 12 months.**. Example: this_month.
moneybird_get_estimateRetrieve a single estimate with its details.Read-onlyGet Estimate
Retrieve a single estimate with its details. Returns the estimate including id, administration_id, contact_id, contact, contact_person_id, contact_person, estimate_id. Use list_estimates when the id is unknown.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
estimate_idstringrequired- Printed estimate number, for example 2026-0001. Example: 2026-0001.
moneybird_get_expenses_by_contact_reportGet expenses grouped by contact for a period.Read-onlyGet Expenses By Contact Report
Get expenses grouped by contact for a period. Returns the report including expenses_by_contact, periods. Use to find top suppliers.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
granularitystring- Splits the report into periods of a month, a quarter or a year. The response then also contains `periods`, with the same fields for each period. The first and the last period are cut off at the start and the end of `period`. Allowed values: month, quarter, year.one of
monthquarteryear pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
periodstring- The period can be a date range or one of the presets. Date ranges must consist of whole months (start on 1st, end on last day of month). **Date range formats:** - `YYYYMMDD..YYYYMMDD` (e.g., `20250101..20250131`) - `YYYYMM..YYYYMM` (e.g., `202501..202501`) - `YYYYMM` (e.g., `202501`) **Preset options:** - `this_month` - Current month (default if not specified) - `prev_month` - Previous month - `next_month` - Next month - `this_quarter` - Current quarter - `prev_quarter` - Previous quarter - `next_quarter` - Next quarter - `this_year` - Current year - `prev_year` - Previous year - `next_year` - Next year **Maximum period: 12 months.**. Example: this_month.
moneybird_get_external_sales_invoiceRetrieve a single external sales invoice.Read-onlyGet External Sales Invoice
Retrieve a single external sales invoice. Returns the external sales invoice including id, administration_id, contact_id, contact, date, state, due_date. Use list_external_sales_invoices when the id is unknown.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
external_sales_invoice_idstringrequired- Id of the external sales invoice. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_get_financial_mutationRetrieve a single financial mutation with its payments and ledger account bookings.Read-onlyGet Financial Mutation
Retrieve a single financial mutation with its payments and ledger account bookings. Returns the financial mutation including id, administration_id, amount, code, date, message, contra_account_name. Use list_financial_mutations when the id is unknown.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
financial_mutation_idstringrequired- Id of the financial mutation. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_get_general_documentRetrieve a single general document.Read-onlyGet General Document
Retrieve a single general document. Returns the general document including id, administration_id, contact_id, contact, reference, date, due_date. Use list_general_documents when the id is unknown.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
general_document_idstringrequired- Id of the general document. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_get_general_journal_documentRetrieve a single general journal document with its journal entries.Read-onlyGet General Journal Document
Retrieve a single general journal document with its journal entries. Returns the general journal document including id, administration_id, reference, date, journal_type, created_at, updated_at. Use list_general_journal_documents when the id is unknown.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
general_journal_document_idstringrequired- Id of the general journal document. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_get_ledger_accountRetrieve a single ledger account by id.Read-onlyGet Ledger Account
Retrieve a single ledger account by id. Returns the ledger account including id, administration_id, name, account_type, account_id, parent_id, active. Use list_ledger_accounts to browse when the id is unknown.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
ledger_account_idstringrequired- Id of the ledger account. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_get_productRetrieve a single product.Read-onlyGet Product
Retrieve a single product. Returns the product including id, administration_id, description, title, identifier, price, currency. Use list_products when the id is unknown.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
product_idstringrequired- Id of the product. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_get_product_by_identifierRetrieve a product by its SKU or product identifier.Read-onlyGet Product By Identifier
Retrieve a product by its SKU or product identifier. Returns the product including id, administration_id, description, title, identifier, price, currency. Use when you know the identifier from another system.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
identifierstringrequired- Product identifier (SKU) as set on the product. Example: SKU-1001.
moneybird_get_profit_loss_reportGet the profit and loss report for a period.Read-onlyGet Profit Loss Report
Get the profit and loss report for a period. Returns the report including revenue_by_ledger_account, direct_costs_by_ledger_account, expenses_by_ledger_account, other_income_expenses_by_ledger_account, gross_profit, operating_profit, net_profit. Use for revenue, costs and result. Use get_balance_sheet_report for assets and liabilities.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
granularitystring- Splits the report into periods of a month, a quarter or a year. The response then also contains `periods`, with the same fields for each period. The first and the last period are cut off at the start and the end of `period`. Allowed values: month, quarter, year.one of
monthquarteryear periodstring- The period can be a date range or one of the presets. Date ranges must consist of whole months (start on 1st, end on last day of month). **Date range formats:** - `YYYYMMDD..YYYYMMDD` (e.g., `20250101..20250131`) - `YYYYMM..YYYYMM` (e.g., `202501..202501`) - `YYYYMM` (e.g., `202501`) **Preset options:** - `this_month` - Current month (default if not specified) - `prev_month` - Previous month - `next_month` - Next month - `this_quarter` - Current quarter - `prev_quarter` - Previous quarter - `next_quarter` - Next quarter - `this_year` - Current year - `prev_year` - Previous year - `next_year` - Next year **Maximum period: 12 months.**. Example: this_month.
project_idstring- A unique record identifier. Example: 401892365587990113.
moneybird_get_projectRetrieve a single project by id.Read-onlyGet Project
Retrieve a single project by id. Returns the project including id, name, state, budget. Use list_projects to browse when the id is unknown.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
project_idstringrequired- Id of the project. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_get_purchase_invoiceRetrieve a single purchase invoice with its details and payments.Read-onlyGet Purchase Invoice
Retrieve a single purchase invoice with its details and payments. Returns the purchase invoice including id, administration_id, contact_id, contact, reference, date, due_date. Use list_purchase_invoices when the id is unknown.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
purchase_invoice_idstringrequired- Id of the purchase invoice. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_get_receiptRetrieve a single receipt with its details.Read-onlyGet Receipt
Retrieve a single receipt with its details. Returns the receipt including id, administration_id, contact_id, contact, reference, date, due_date. Use list_receipts when the id is unknown.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
receipt_idstringrequired- Id of the receipt. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_get_recurring_sales_invoiceRetrieve a single recurring sales invoice template.Read-onlyGet Recurring Sales Invoice
Retrieve a single recurring sales invoice template. Returns the recurring sales invoice including id, administration_id, contact_id, contact, contact_person_id, contact_person, workflow_id. Use list_recurring_sales_invoices when the id is unknown.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
recurring_sales_invoice_idstringrequired- Id of the recurring sales invoice. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_get_revenue_by_contact_reportGet revenue grouped by contact for a period.Read-onlyGet Revenue By Contact Report
Get revenue grouped by contact for a period. Returns the report including revenue_by_contact, periods. Use to find top customers.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
granularitystring- Splits the report into periods of a month, a quarter or a year. The response then also contains `periods`, with the same fields for each period. The first and the last period are cut off at the start and the end of `period`. Allowed values: month, quarter, year.one of
monthquarteryear pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
periodstring- The period can be a date range or one of the presets. Date ranges must consist of whole months (start on 1st, end on last day of month). **Date range formats:** - `YYYYMMDD..YYYYMMDD` (e.g., `20250101..20250131`) - `YYYYMM..YYYYMM` (e.g., `202501..202501`) - `YYYYMM` (e.g., `202501`) **Preset options:** - `this_month` - Current month (default if not specified) - `prev_month` - Previous month - `next_month` - Next month - `this_quarter` - Current quarter - `prev_quarter` - Previous quarter - `next_quarter` - Next quarter - `this_year` - Current year - `prev_year` - Previous year - `next_year` - Next year **Maximum period: 12 months.**. Example: this_month.
moneybird_get_sales_invoiceRetrieve a single sales invoice with its details, payments and notes.Read-onlyGet Sales Invoice
Retrieve a single sales invoice with its details, payments and notes. Returns the sales invoice including id, administration_id, contact_id, contact, contact_person_id, contact_person, invoice_id. Use list_sales_invoices when the id is unknown.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
sales_invoice_idstringrequired- Id of the sales invoice. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_get_subscriptionRetrieve a single subscription.Read-onlyGet Subscription
Retrieve a single subscription. Returns the subscription including id, administration_id, start_date, end_date, frequency, frequency_type, reference. Use list_subscriptions when the id is unknown.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
subscription_idstringrequired- Id of the subscription. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_get_tax_reportGet the tax (VAT) report for a period.Read-onlyGet Tax Report
Get the tax (VAT) report for a period. Returns the report including tax_rates, periods. Use to prepare a VAT return.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
granularitystring- Splits the report into periods of a month, a quarter or a year. The response then also contains `periods`, with the same fields for each period. The first and the last period are cut off at the start and the end of `period`. Allowed values: month, quarter, year.one of
monthquarteryear periodstring- The period can be a date range or one of the presets. Date ranges must consist of whole months (start on 1st, end on last day of month). **Date range formats:** - `YYYYMMDD..YYYYMMDD` (e.g., `20250101..20250131`) - `YYYYMM..YYYYMM` (e.g., `202501..202501`) - `YYYYMM` (e.g., `202501`) **Preset options:** - `this_month` - Current month (default if not specified) - `prev_month` - Previous month - `next_month` - Next month - `this_quarter` - Current quarter - `prev_quarter` - Previous quarter - `next_quarter` - Next quarter - `this_year` - Current year - `prev_year` - Previous year - `next_year` - Next year **Maximum period: 12 months.**. Example: this_month.
moneybird_get_time_entryRetrieve a single time entry.Read-onlyGet Time Entry
Retrieve a single time entry. Returns the time entry including id, administration_id, contact_id, project_id, sales_invoice_id, user_id, started_at. Use list_time_entries when the id is unknown.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
time_entry_idstringrequired- Id of the time entry. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_get_typeless_documentRetrieve a single typeless document.Read-onlyGet Typeless Document
Retrieve a single typeless document. Returns the typeless document including id, administration_id, contact_id, contact, reference, date, state. Use list_typeless_documents when the id is unknown.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
typeless_document_idstringrequired- Id of the typeless document. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_list_administrationsList the Moneybird administrations (bookkeeping accounts) the connected user can access.Read-onlyList Administrations
List the Moneybird administrations (bookkeeping accounts) the connected user can access. Returns administrations including id, name, language, currency, country, time_zone, access. Use first to find the administration_id that every other Moneybird tool requires.
Inputs
This tool takes no inputs.
moneybird_list_contact_versionsList the id and version of every contact, for change detection.Read-onlyList Contact Versions
List the id and version of every contact, for change detection. Returns ids with versions including id, version. Use to find changed contacts, then call fetch_contacts_by_ids for the changed ids.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
filterstring- Comma-separated `key:value` filter terms. Same syntax as `GET /contacts/filter` — see that operation's description for the available keys. Example: state:open,period:this_year.
include_archivedboolean- Set to true to include archived contacts in the results. Archived contacts are hidden by default. Example: false.
moneybird_list_contactsList contacts (customers and suppliers), optionally filtered by a free-text query.Read-onlyList Contacts
List contacts (customers and suppliers), optionally filtered by a free-text query. Returns a page of contacts including id, administration_id, company_name, firstname, lastname, address1, address2. Use for browsing or free-text search. Use filter_contacts for key:value filters and get_contact_by_customer_id for an exact customer id.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
contact_fieldstring- Name of the contact field to match against, used together with contact_value. Example: example.
contact_import_idstring- Restrict to contacts created by the given contact import batch. Example: 401892365587990113.
contact_valuestring- Value the contact_field must equal, used together with contact_field. Example: example.
include_archivedboolean- Set to true to include archived contacts in the results. Archived contacts are hidden by default. Example: false.
pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
querystring- Free-text search across name, contact people, email, phone, customer id, tax number, chamber of commerce, IBAN, and address fields. Example: acme.
todostring- Restrict the list to records that still need attention in the named area. Example: sales_invoices.
moneybird_list_custom_fieldsList the custom fields defined for contacts, sales invoices and identities.Read-onlyList Custom Fields
List the custom fields defined for contacts, sales invoices and identities. Returns custom fields including id, administration_id, name, source. Use to find custom field ids before setting custom_fields_attributes on a record.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
moneybird_list_document_stylesList the document styles (layouts) used for invoices and estimates.Read-onlyList Document Styles
List the document styles (layouts) used for invoices and estimates. Returns document styles including id, administration_id, name, identity_id, default, logo_hash, logo_container_full_width. Use to find a document_style_id for creating sales invoices or estimates.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
moneybird_list_estimatesList estimates (quotes), optionally filtered by state or period.Read-onlyList Estimates
List estimates (quotes), optionally filtered by state or period. Returns a page of estimates including id, administration_id, contact_id, contact, contact_person_id, contact_person, estimate_id. Use for browsing. Use get_estimate when you know the id.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
filterstring- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:all`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | --- | --- | --- | --- | | state | `String` | `all` | `all`, `draft`, `open`, `late`, `accepted`, `rejected`, `billed` or `archived` | | period | `String` | `this_year` | Matches on the estimate date. This can either be the description of a period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom period (`201301..201302`, `20130101..20130131`) | | contact_id | `Integer` | | Filters estimates by a single contact | | workflow_id | `Integer` | | Filters estimates by a single workflow | The `period` filter matches on the estimate date. It does not look at the `period` of the individual details, which says which months the expenses belong to. Read `details[].period` in the response when you need those months, or use the reports endpoints, which already spread the amounts over that period. A detail's period can fall outside the filtered range, however wide you make it, so this filter cannot tell you which periods amounts fall in. Use the reports endpoints for that. You can filter by multiple states at the same time as well. To do this, separate the state values by a pipe: `state:draft|scheduled`. Example: state:open,period:this_year.
pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
moneybird_list_external_sales_invoicesList external sales invoices (invoices issued outside Moneybird and imported).Read-onlyList External Sales Invoices
List external sales invoices (invoices issued outside Moneybird and imported). Returns a page of external sales invoices including id, administration_id, contact_id, contact, date, state, due_date. Use for imported revenue. Use list_sales_invoices for invoices created in Moneybird.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
filterstring- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:all`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | --- | --- | --- | --- | | state | `String` | `all` | `all`, `new`, `open`, `late`, or `paid` | | period | `String` | `this_year` | Matches on the invoice date. This can either be the description of a period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom period (`201301..201302`, `20130101..20130131`) | | contact_id | `Integer` | | Select invoices belonging to a certain contact | The `period` filter matches on the invoice date. It does not look at the `period` of the individual details, which says which months the expenses belong to. Read `details[].period` in the response when you need those months, or use the reports endpoints, which already spread the amounts over that period. A detail's period can fall outside the filtered range, however wide you make it, so this filter cannot tell you which periods amounts fall in. Use the reports endpoints for that. You can filter by multiple states at the same time as well. To do this, separate the state values by a pipe: `state:new|open`. Example: state:open,period:this_year.
pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
moneybird_list_financial_accountsList the financial accounts (bank accounts, cash, payment providers) of an administration.Read-onlyList Financial Accounts
List the financial accounts (bank accounts, cash, payment providers) of an administration. Returns financial accounts including id, administration_id, type, name, identifier, currency, provider. Use to find a financial_account_id for registering payments or importing bank statements.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
moneybird_list_financial_mutationsList financial mutations (bank transactions), optionally filtered by state or period.Read-onlyList Financial Mutations
List financial mutations (bank transactions), optionally filtered by state or period. Returns a page of financial mutations including id, administration_id, amount, code, date, message, contra_account_name. Use to find unprocessed bank lines before linking them with link_financial_mutation_booking.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
filterstring- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:unprocessed`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | period | `String` | `this_year` | A named period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom range (`201301..201302`, `20130101..20130131`) | | state | `String` | `all` | `all`, `unprocessed`, `processed` or `auto_booked` | | mutation_type | `String` | `all` | `all`, `debit` or `credit` | | financial_account_id | `Integer` | | Restrict to a single financial account | | amount_from | `String` | | Lower bound on the absolute mutation amount (negative input is treated as positive) | | amount_to | `String` | | Upper bound on the absolute mutation amount | Multiple values for `state` and `mutation_type` can be combined with a pipe, e.g. `state:unprocessed|processed`. Example: state:open,period:this_year.
moneybird_list_general_documentsList general documents (bookkeeping documents that are not invoices or receipts).Read-onlyList General Documents
List general documents (bookkeeping documents that are not invoices or receipts). Returns a page of general documents including id, administration_id, contact_id, contact, reference, date, due_date. Use for miscellaneous documents. Use list_general_journal_documents for manual journal entries.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
filterstring- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:open`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | period | `String` | `this_year` | A named period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom range (`201301..201302`, `20130101..20130131`) | | state | `String` | `all` | `all`, `new`, `saved`, `open`, `paid`, `late` or `pending_payment`. `paid`, `late` and `pending_payment` only apply to documents with a payment lifecycle (purchase invoices and receipts) | | recurring | `String` | `all` | `all`, `enabled` or `disabled` | | attachment | `String` | `all` | `all`, `with` or `without` | | reference | `String` | | Documents with the given reference value | | contact_id | `Integer` | | Documents belonging to the given contact | | ledger_account_id | `Integer` | | Documents booking against the given ledger account | | updated_after | `String` | | ISO 8601 timestamp in UTC; documents updated strictly after this time | Multiple values for `state`, `recurring` and `attachment` can be combined with a pipe, e.g. `state:open|paid`. Example: state:open,period:this_year.
new_filterstring- String terms, example: `key1:value1,key2:value2`. Example: example.
pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
sortstring- Sorts the list on date, so the newest (`date_desc`) or the oldest (`date_asc`) items come first. Allowed values: date_desc, date_asc.one of
date_descdate_asc
moneybird_list_general_journal_documentsList general journal documents (manual bookkeeping entries).Read-onlyList General Journal Documents
List general journal documents (manual bookkeeping entries). Returns a page of general journal documents including id, administration_id, reference, date, journal_type, created_at, updated_at. Use to review manual corrections and adjustments.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
exclude_new_general_journal_documentsboolean- Set to true to leave out journal documents that are still new and not yet booked. Example: false.
filterstring- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:open`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | period | `String` | `this_year` | A named period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom range (`201301..201302`, `20130101..20130131`) | | state | `String` | `all` | `all`, `new`, `saved`, `open`, `paid`, `late` or `pending_payment`. `paid`, `late` and `pending_payment` only apply to documents with a payment lifecycle (purchase invoices and receipts) | | recurring | `String` | `all` | `all`, `enabled` or `disabled` | | attachment | `String` | `all` | `all`, `with` or `without` | | reference | `String` | | Documents with the given reference value | | contact_id | `Integer` | | Documents belonging to the given contact | | ledger_account_id | `Integer` | | Documents booking against the given ledger account | | updated_after | `String` | | ISO 8601 timestamp in UTC; documents updated strictly after this time | Multiple values for `state`, `recurring` and `attachment` can be combined with a pipe, e.g. `state:open|paid`. Example: state:open,period:this_year.
new_filterstring- String terms, example: `key1:value1,key2:value2`. Example: example.
pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
sortstring- Sorts the list on date, so the newest (`date_desc`) or the oldest (`date_asc`) items come first. Allowed values: date_desc, date_asc.one of
date_descdate_asc
moneybird_list_identitiesList the sender identities (company details shown on documents) of an administration.Read-onlyList Identities
List the sender identities (company details shown on documents) of an administration. Returns identities including id, administration_id, company_name, city, country, zipcode, address1. Use to find an identity id or to inspect the default sender details.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
moneybird_list_ledger_accountsList the ledger accounts (chart of accounts categories) of an administration.Read-onlyList Ledger Accounts
List the ledger accounts (chart of accounts categories) of an administration. Returns ledger accounts including id, administration_id, name, account_type, account_id, parent_id, active. Use to find a ledger_account_id for invoice details and purchase documents.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
moneybird_list_productsList products and services, optionally filtered by a query.Read-onlyList Products
List products and services, optionally filtered by a query. Returns a page of products including id, administration_id, description, title, identifier, price, currency. Use to find a product_id for invoice details and subscriptions.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
activeboolean- When true, only active products are returned. Set to false to include deactivated products. Example: true.
currencystring- ISO three-character currency code, e.g. EUR or USD. Example: EUR.
for_checkoutboolean- When true, returns only products with online checkout enabled. When false, returns only products without checkout. Omit to include both. Example: true.
ledger_account_idstring- Filters products by their associated ledger account. Example: 401892365587990113.
pageinteger- The page to fetch, starting at 1. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
querystring- Free-text search across the product description, title and identifier. Example: acme.
moneybird_list_projectsList the projects of an administration.Read-onlyList Projects
List the projects of an administration. Returns projects including id, name, state, budget. Use to find a project_id for time entries and invoice details.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
filterstring- Filters are `key:value` terms separated by commas (e.g. `state:active`). Any filter you pass replaces the defaults below entirely, so include every key you need. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | state | `String` | `active` | `all`, `active` or `archived`. Combine values with a pipe, e.g. `state:active|archived` |. Example: state:open,period:this_year.
pageinteger- The page to fetch, starting at 1. Example: 1.
per_pageinteger- Amount of projects per page, default: 25. Example: 50.
moneybird_list_purchase_invoicesList purchase invoices (bills from suppliers), optionally filtered by state or period.Read-onlyList Purchase Invoices
List purchase invoices (bills from suppliers), optionally filtered by state or period. Returns a page of purchase invoices including id, administration_id, contact_id, contact, reference, date, due_date. Use for payables. Use list_receipts for expense receipts.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
filterstring- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:open`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | period | `String` | `this_year` | Matches on the document date. A named period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom range (`201301..201302`, `20130101..20130131`) | | state | `String` | `all` | `all`, `new`, `saved`, `open`, `paid`, `late` or `pending_payment`. `paid`, `late` and `pending_payment` only apply to documents with a payment lifecycle (purchase invoices and receipts) | | recurring | `String` | `all` | `all`, `enabled` or `disabled` | | attachment | `String` | `all` | `all`, `with` or `without` | | automatic_saving | `String` | `all` | `all`, `automatic` or `manual`. `automatic` matches documents Moneybird saved by itself after analysing them; `manual` matches everything else, including documents nobody has saved yet | | reference | `String` | | Documents with the given reference value | | contact_id | `Integer` | | Documents belonging to the given contact | | ledger_account_id | `Integer` | | Documents booking against the given ledger account | | updated_after | `String` | | ISO 8601 timestamp in UTC; documents updated strictly after this time | The `period` filter matches on the document date. It does not look at the `period` of the individual details, which says which months the expenses belong to. Read `details[].period` in the response when you need those months, or use the reports endpoints, which already spread the amounts over that period. A detail's period can fall outside the filtered range, however wide you make it, so this filter cannot tell you which periods amounts fall in. Use the reports endpoints for that. Multiple values for `state`, `recurring` and `attachment` can be combined with a pipe, e.g. `state:open|paid`. Example: state:open,period:this_year.
new_filterstring- String terms, example: `key1:value1,key2:value2`. Example: example.
pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
sortstring- Sorts the list on date, so the newest (`date_desc`) or the oldest (`date_asc`) items come first. Allowed values: date_desc, date_asc.one of
date_descdate_asc
moneybird_list_receiptsList receipts (expense claims and proofs of payment).Read-onlyList Receipts
List receipts (expense claims and proofs of payment). Returns a page of receipts including id, administration_id, contact_id, contact, reference, date, due_date. Use for expenses already paid. Use list_purchase_invoices for supplier bills.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
filterstring- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:open`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | period | `String` | `this_year` | Matches on the document date. A named period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom range (`201301..201302`, `20130101..20130131`) | | state | `String` | `all` | `all`, `new`, `saved`, `open`, `paid`, `late` or `pending_payment`. `paid`, `late` and `pending_payment` only apply to documents with a payment lifecycle (purchase invoices and receipts) | | recurring | `String` | `all` | `all`, `enabled` or `disabled` | | attachment | `String` | `all` | `all`, `with` or `without` | | automatic_saving | `String` | `all` | `all`, `automatic` or `manual`. `automatic` matches documents Moneybird saved by itself after analysing them; `manual` matches everything else, including documents nobody has saved yet | | reference | `String` | | Documents with the given reference value | | contact_id | `Integer` | | Documents belonging to the given contact | | ledger_account_id | `Integer` | | Documents booking against the given ledger account | | updated_after | `String` | | ISO 8601 timestamp in UTC; documents updated strictly after this time | The `period` filter matches on the document date. It does not look at the `period` of the individual details, which says which months the expenses belong to. Read `details[].period` in the response when you need those months, or use the reports endpoints, which already spread the amounts over that period. A detail's period can fall outside the filtered range, however wide you make it, so this filter cannot tell you which periods amounts fall in. Use the reports endpoints for that. Multiple values for `state`, `recurring` and `attachment` can be combined with a pipe, e.g. `state:open|paid`. Example: state:open,period:this_year.
new_filterstring- String terms, example: `key1:value1,key2:value2`. Example: example.
pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
sortstring- Sorts the list on date, so the newest (`date_desc`) or the oldest (`date_asc`) items come first. Allowed values: date_desc, date_asc.one of
date_descdate_asc
moneybird_list_recurring_sales_invoicesList recurring sales invoice templates.Read-onlyList Recurring Sales Invoices
List recurring sales invoice templates. Returns a page of recurring sales invoices including id, administration_id, contact_id, contact, contact_person_id, contact_person, workflow_id. Use to see invoices that are generated automatically on a schedule.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
filterstring- Filters are `key:value` terms separated by commas (e.g. `state:active,contact_id:123`). Any filter you pass replaces the defaults below entirely, so include every key you need. Available filters: | **Filter** | **Type** | **Default** | **Description** | | --- | --- | --- | --- | | state | `String` | `active` | `active` or `inactive` | | frequency | `String` | `all` | `all`, `day`, `week`, `month`, `quarter` or `year` | | auto_send | `Boolean` | `null` | `null`, `true` or `false` | | contact_id | `Integer` | | Filters recurring invoices by a single contact | | workflow_id | `Integer` | | Filters recurring invoices by a single workflow |. Example: state:open,period:this_year.
pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
moneybird_list_sales_invoice_versionsList the id and version of every sales invoice, for change detection.Read-onlyList Sales Invoice Versions
List the id and version of every sales invoice, for change detection. Returns ids with versions including id, version. Use to find changed invoices, then call fetch_sales_invoices_by_ids for the changed ids.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
filterstring- Comma-separated `key:value` filter terms. Same syntax as `GET /sales_invoices` — see that operation's description for the available keys. Example: state:open,period:this_year.
moneybird_list_sales_invoicesList sales invoices, optionally filtered by state, period, or contact.Read-onlyList Sales Invoices
List sales invoices, optionally filtered by state, period, or contact. Returns a page of sales invoices including id, administration_id, contact_id, contact, contact_person_id, contact_person, invoice_id. Use for browsing. Use find_sales_invoice_by_invoice_id or find_sales_invoice_by_reference for exact lookups.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
filterstring- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:all`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | state | `String` | `all` | `all`, `draft`, `open`, `scheduled`, `pending_payment`, `late`, `reminded`, `paid` or `uncollectible` | | period | `String` | `this_year` | Matches on the invoice date. A period description (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom period (`201301..201302`, `20130101..20130131`) | | reference | `String` | | Select invoices with a certain reference | | contact_id | `Integer` | | Select invoices belonging to a certain contact | | recurring_sales_invoice_id | `Integer` | | Select invoices created by a certain recurring invoice | | workflow_id | `Integer` | | Select invoices that use a certain workflow | | created_after | `String` | | Select invoices created after the given time (exclusive). ISO 8601 formatted string. The time to compare with is in UTC timezone | | updated_after | `String` | | Select invoices updated after the given time (exclusive). ISO 8601 formatted string. The time to compare with is in UTC timezone | The `period` filter matches on the invoice date. It does not look at the `period` of the individual details, which says which months the expenses belong to. Read `details[].period` in the response when you need those months, or use the reports endpoints, which already spread the amounts over that period. A detail's period can fall outside the filtered range, however wide you make it, so this filter cannot tell you which periods amounts fall in. Use the reports endpoints for that. You can filter by multiple states at the same time by separating the values with a pipe (`state:draft|scheduled`). This also holds for the reference. A draft with no `invoice_date` set is only matched by a `period` when that period contains today. To list drafts irrespective of date, pass `state:draft` without a `period`; to narrow them down in time, use `created_after` or `updated_after`. Example: state:open,period:this_year.
pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
sortstring- Sorts the list on date, so the newest (`date_desc`) or the oldest (`date_asc`) items come first. Allowed values: date_desc, date_asc.one of
date_descdate_asc
moneybird_list_subscription_templatesList subscription templates (plans) of an administration.Read-onlyList Subscription Templates
List subscription templates (plans) of an administration. Returns subscription templates including id, administration_id, workflow_id, document_style_id, mergeable, contact_can_update, products. Use to find a template before creating subscriptions.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
moneybird_list_subscriptionsList customer subscriptions.Read-onlyList Subscriptions
List customer subscriptions. Returns a page of subscriptions including id, administration_id, start_date, end_date, frequency, frequency_type, reference. Use to review recurring plans per contact.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
contact_idstringrequired- A unique record identifier. Example: 401892365587990113.
moneybird_list_tax_ratesList the tax rates (VAT rates) configured in an administration.Read-onlyList Tax Rates
List the tax rates (VAT rates) configured in an administration. Returns tax rates including id, administration_id, name, percentage, tax_rate_type, show_tax, active. Use to find a tax_rate_id before creating invoice, estimate, or document detail lines.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
filterstring- Filters are `key:value` terms separated by commas (e.g. `percentage:21,tax_rate_type:sales_invoice`). Any filter you pass replaces the defaults below entirely, so include every key you need. Available filters: | **Filter** | **Type** | **Default** | **Description** | | --- | --- | --- | --- | | name | `String` | | Select tax rates by their full name | | partial_name | `String` | | Select tax rates with this substring in their name | | percentage | `Integer` | | Select tax rates with the specified percentage, e.g. specify `21` for 21% | | tax_rate_type | `String` | `all` | `all`, `general_journal_document`, `purchase_invoice` or `sales_invoice` | | country | `String` | | Select tax rates with the specified country. Must be a 2 letter abbreviation following ISO 3166. Please note that only foreign tax rates will have this field set. Domestic tax rates will not have this set at the moment. | | show_tax | `Boolean` | | Use `true` to tax rates for which tax is shown on the invoice, `false` for when it's not shown. No value will select both | | active | `Boolean` | | Use `true` to select active tax rates. Use `false` for inactive tax rates. No value will select both | | created_after | `String` | | Tax rates created after the given time (exclusive). ISO 8601 formatted string. The time to compare with is in UTC timezone | | updated_after | `String` | | Tax rates updated after the given time (exclusive). ISO 8601 formatted string. The time to compare with is in UTC timezone | You can filter by multiple tax rate types at the same time by separating the values with a pipe (`tax_rate_type:purchase_invoice|sales_invoice`). Example: state:open,period:this_year.
pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
moneybird_list_time_entriesList time entries, optionally filtered by period, contact or project.Read-onlyList Time Entries
List time entries, optionally filtered by period, contact or project. Returns a page of time entries including id, administration_id, contact_id, project_id, sales_invoice_id, user_id, started_at. Use to review logged hours before invoicing.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
filterstring- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:all`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | --- | --- | --- | --- | | state | `String` | `all` | `all`, `open` or `non_billable` | | period | `String` | `this_year` | This can either be the description of a period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom period (`201301..201302`, `20130101..20130131`) | | contact_id | `Integer` | | Select time entries belonging to a certain contact | | include_nil_contacts | `Boolean` | false | Whether to include time entries that have no assigned contact | | include_active | `Boolean` | false | Whether to include active time entries i.e. time entries without ended_at | | project_id | `Integer` | | Select time entries belonging to a certain project | | user_id | `Integer` | | Select time entries belonging to a certain user | | day | `Date` | | Select time entries on a specific date | You can filter by multiple states at the same time as well. To do this, separate the state values by a pipe: `state:open|non_billable`. Example: state:open,period:this_year.
pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
querystring- Free-text search across the time entry description. Example: acme.
moneybird_list_typeless_documentsList typeless documents (uploaded documents whose type is not yet known).Read-onlyList Typeless Documents
List typeless documents (uploaded documents whose type is not yet known). Returns a page of typeless documents including id, administration_id, contact_id, contact, reference, date, state. Use to find documents that still need to be classified.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
filterstring- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:open`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | period | `String` | `this_year` | A named period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom range (`201301..201302`, `20130101..20130131`) | | state | `String` | `all` | `all`, `new`, `saved`, `open`, `paid`, `late` or `pending_payment`. `paid`, `late` and `pending_payment` only apply to documents with a payment lifecycle (purchase invoices and receipts) | | recurring | `String` | `all` | `all`, `enabled` or `disabled` | | attachment | `String` | `all` | `all`, `with` or `without` | | reference | `String` | | Documents with the given reference value | | contact_id | `Integer` | | Documents belonging to the given contact | | ledger_account_id | `Integer` | | Documents booking against the given ledger account | | updated_after | `String` | | ISO 8601 timestamp in UTC; documents updated strictly after this time | Multiple values for `state`, `recurring` and `attachment` can be combined with a pipe, e.g. `state:open|paid`. Example: state:open,period:this_year.
new_filterstring- String terms, example: `key1:value1,key2:value2`. Example: example.
pageinteger- Page number to return, starting at 1. Use together with per_page to walk through large result sets. Example: 1.
per_pageinteger- Number of records per page, between 1 and 100. The default is 25. Example: 50.
sortstring- Sorts the list on date, so the newest (`date_desc`) or the oldest (`date_asc`) items come first. Allowed values: date_desc, date_asc.one of
date_descdate_asc
moneybird_list_usersList the users who have access to a Moneybird administration.Read-onlyList Users
List the users who have access to a Moneybird administration. Returns users including id, name, created_at, updated_at, email, email_validated, language. Use to find user ids for time entries and task assignment.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
include_accountantsboolean- Set to true to include accountant users. Example: false.
include_api_usersboolean- Set to true to include API users created by OAuth applications. Example: false.
include_inactiveboolean- Set to true to include users that have been deactivated. Example: false.
moneybird_list_workflowsList the invoice and estimate workflows of an administration.Read-onlyList Workflows
List the invoice and estimate workflows of an administration. Returns workflows including id, administration_id, type, name, default, currency, language. Use to find a workflow_id for sales invoices, estimates, or contacts.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
moneybird_add_contact_noteAdd a note to a contact.WriteAdd Contact Note
Add a note to a contact. Returns the created note including id, administration_id, entity_id, entity_type, user_id, assignee_id, todo. Use to record a remark on the contact timeline.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
contact_idstringrequired- Id of the contact. Use list_contacts to find it.
assignee_idstring- Assign to-do to user. Should be a valid user id. If assignee_id is provided the note will be a to-do. Example: 401892365587990113.
notestring- **Required**. Text for the note or to-do. Example: Called the customer about the open invoice..
todoboolean- If `true` the note is a to-do. Example: sales_invoices.
moneybird_add_estimate_noteAdd a note to an estimate.WriteAdd Estimate Note
Add a note to an estimate. Returns the created note including id, administration_id, entity_id, entity_type, user_id, assignee_id, todo. Use to record internal remarks on an estimate.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
estimate_idstringrequired- Printed estimate number, for example 2026-0001. Example: 2026-0001.
assignee_idstring- Assign to-do to user. Should be a valid user id. If assignee_id is provided the note will be a to-do. Example: 401892365587990113.
notestring- **Required**. Text for the note or to-do. Example: Called the customer about the open invoice..
todoboolean- If `true` the note is a to-do. Example: sales_invoices.
moneybird_add_purchase_invoice_noteAdd a note to a purchase invoice.WriteAdd Purchase Invoice Note
Add a note to a purchase invoice. Returns the created note including id, administration_id, entity_id, entity_type, user_id, assignee_id, todo. Use to record internal remarks.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
purchase_invoice_idstringrequired- Id of the purchase invoice. Use the matching list tool to find it. Example: 401892365587990113.
assignee_idstring- Assign to-do to user. Should be a valid user id. If assignee_id is provided the note will be a to-do. Example: 401892365587990113.
notestring- **Required**. Text for the note or to-do. Example: Called the customer about the open invoice..
todoboolean- If `true` the note is a to-do. Example: sales_invoices.
moneybird_add_receipt_noteAdd a note to a receipt.WriteAdd Receipt Note
Add a note to a receipt. Returns the created note including id, administration_id, entity_id, entity_type, user_id, assignee_id, todo. Use to record internal remarks.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
receipt_idstringrequired- Id of the receipt. Use the matching list tool to find it. Example: 401892365587990113.
assignee_idstring- Assign to-do to user. Should be a valid user id. If assignee_id is provided the note will be a to-do. Example: 401892365587990113.
notestring- **Required**. Text for the note or to-do. Example: Called the customer about the open invoice..
todoboolean- If `true` the note is a to-do. Example: sales_invoices.
moneybird_add_sales_invoice_noteAdd a note to a sales invoice.WriteAdd Sales Invoice Note
Add a note to a sales invoice. Returns the created note including id, administration_id, entity_id, entity_type, user_id, assignee_id, todo. Use to record internal remarks on an invoice.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
sales_invoice_idstringrequired- Id of the sales invoice. Use the matching list tool to find it. Example: 401892365587990113.
assignee_idstring- Assign to-do to user. Should be a valid user id. If assignee_id is provided the note will be a to-do. Example: 401892365587990113.
notestring- **Required**. Text for the note or to-do. Example: Called the customer about the open invoice..
todoboolean- If `true` the note is a to-do. Example: sales_invoices.
moneybird_bill_estimateCreate a sales invoice from an accepted estimate.WriteBill Estimate
Create a sales invoice from an accepted estimate. Returns the updated estimate including id, administration_id, contact_id, contact, contact_person_id, contact_person, invoice_id. Use after the customer accepts the estimate.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
estimate_idstringrequired- Printed estimate number, for example 2026-0001. Example: 2026-0001.
moneybird_change_estimate_stateChange the state of an estimate, for example to accepted or rejected.WriteChange Estimate State
Change the state of an estimate, for example to accepted or rejected. Returns the updated estimate including id, administration_id, contact_id, contact, contact_person_id, contact_person, estimate_id. Use to record the customer's decision. It does not send or bill the estimate.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
estimate_idstringrequired- Printed estimate number, for example 2026-0001. Example: 2026-0001.
statestring- Can be accepted, rejected, open, late, billed or archived. Example: open.
moneybird_create_contactCreate a new contact.WriteCreate Contact
Create a new contact. A company_name, or a firstname and lastname, is required. Returns the created contact including id, administration_id, company_name, firstname, lastname, address1, address2. Use list_contacts first to avoid creating a duplicate.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
address1string- Primary street address of the contact. Example: Keizersgracht 1.
address2string- Secondary address line (e.g. apartment number, building name). Example: Floor 2.
bank_accountstring- The bank account number (IBAN) of the contact. Used for outgoing payments and displayed on documents. Example: NL91ABNA0417164300.
chamber_of_commercestring- The CoC (Chamber of Commerce) registration number of the contact's business. Example: 12345678.
citystring- City or town of the contact's address. Example: Amsterdam.
company_namestring- A contact requires a non-blank `company_name`, `firstname` or `lastname`. Example: Acme B.V..
contact_personobject- An optional initial contact person to create along with the contact. Additional contact persons can be managed via the contact persons endpoint.
countrystring- ISO two-character country code, e.g. NL or DE. Example: NL.
custom_fields_attributesarray- Array of custom field values. Each entry needs the custom field id (from list_custom_fields) and a value. Example: [{"id": "401892365587990113", "value": "PO-123"}].
customer_idstring- Will be assigned automatically if empty. Should be unique for the administration. Example: 1042.
delivery_methodstring- Can be `Email`, `Simplerinvoicing`, `Peppol`, `Manual` or `Post`. Example: Email.
direct_debitboolean- When `true`, invoices for this contact are collected via SEPA direct debit. Requires SEPA fields to be configured. Example: true.
email_ublboolean- When `true`, a UBL (Universal Business Language) XML file is attached when emailing invoices to this contact. Enables machine-readable invoice processing. Example: true.
estimate_workflow_idstring- Should be a valid estimate workflow id. Example: 401892365587990113.
firstnamestring- A contact requires a non-blank `company_name`, `firstname` or `lastname`. Example: Jane.
invoice_workflow_idstring- Should be a valid invoice workflow id. Example: 401892365587990113.
lastnamestring- A contact requires a non-blank `company_name`, `firstname` or `lastname`. Example: Doe.
phonestring- Phone number of the contact. Example: +31 20 123 4567.
send_estimates_to_attentionstring- The name of the person to address estimates to (attention line). Example: example.
send_estimates_to_emailstring- Should be one or more valid email addresses, separated by a comma. Example: example.
send_invoices_to_attentionstring- The name of the person to address invoices to (attention line), e.g. "Finance Department". Example: example.
send_invoices_to_emailstring- Should be one or more valid email addresses, separated by a comma. Example: example.
sepa_activeboolean- When `true`, all other SEPA fields are required. Example: true.
sepa_bicstring- Should be a valid BIC. Example: ABNANL2A.
sepa_ibanstring- Should be a valid IBAN. Example: NL91ABNA0417164300.
sepa_iban_account_namestring- The account holder name for the SEPA direct debit IBAN. Example: example.
sepa_mandate_datestring- Should be a date in the past. Example: 2026-01-31.
sepa_mandate_idstring- Should be unique for the administration. Example: 401892365587990113.
sepa_sequence_typestring- Can be `RCUR`, `FRST`, `OOFF` or `FNAL`. Example: example.
si_identifierstring- The Peppol/e-invoicing identifier value for this contact. The format depends on the `si_identifier_type`. Example: example.
si_identifier_typestring- Can be `0002`, `0007`, `0009`, `0037`, `0060`, `0088`, `0096`, `0097`, `0106`, `0130`, `0135`, `0142`, `0151`, `0183`, `0184`, `0188`, `0190`, `0191`, `0192`, `0193`, `0195`, `0196`, `0198`, `0199`, `0200`, `0201`, `0204`, `0205`, `0208`, `0209`, `0210`, `0211`, `0212`, `0213`, `0215`, `0216`, `0221`, `0230`, `9910`, `9913`, `9914`, `9915`, `9918`, `9919`, `9920`, `9922`, `9923`, `9924`, `9925`, `9926`, `9927`, `9928`, `9929`, `9930`, `9931`, `9932`, `9933`, `9934`, `9935`, `9936`, `9937`, `9938`, `9939`, `9940`, `9941`, `9942`, `9943`, `9944`, `9945`, `9946`, `9947`, `9948`, `9949`, `9950`, `9951`, `9952`, `9953`, `9957` or `9959`. Example: example.
tax_numberstring- The tax identification number (VAT number) of the contact, e.g. `NL123456789B01`. Example: NL123456789B01.
zipcodestring- Postal code or ZIP code of the contact's address. Example: 1011 AB.
moneybird_create_contact_personAdd a contact person to a contact.WriteCreate Contact Person
Add a contact person to a contact. Returns the created contact person including id, contact_id, administration_id, firstname, lastname, phone, email. Use for a named person within a company contact.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
contact_idstringrequired- Id of the contact. Use list_contacts to find it.
departmentstring- Department or job title of the contact person, for example Finance. Example: Finance.
emailstring- Should be a valid email addresses. Example: billing@example.com.
firstnamestring- First name of the person. Example: Jane.
lastnamestring- Last name of the person. Example: Doe.
phonestring- Phone number of the person, for example +31 20 123 4567. Example: +31 20 123 4567.
moneybird_create_credit_invoiceDuplicate a sales invoice into a new credit invoice.WriteCreate Credit Invoice
Duplicate a sales invoice into a new credit invoice. Returns the new credit invoice including id, administration_id, contact_id, contact, contact_person_id, contact_person, invoice_id. Use to reverse or correct an invoice that was already sent.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
sales_invoice_idstringrequired- Id of the sales invoice. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_create_estimateCreate an estimate (quote) in draft state for a contact.WriteCreate Estimate
Create an estimate (quote) in draft state for a contact. Returns the created estimate including id, administration_id, contact_id, contact, contact_person_id, contact_person, estimate_id. Use list_contacts and list_tax_rates first to find ids. Use send_estimate afterwards to deliver it.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
contact_idstring- Should be a valid contact id. Example: 401892365587990113.
contact_person_idstring- Should be a valid contact person id. Example: 401892365587990113.
currencystring- ISO three-character currency code, e.g. EUR or USD. Defaults to the workflow's currency. Example: EUR.
custom_fields_attributesarray- Array of custom field values. Each entry needs the custom field id (from list_custom_fields) and a value. Example: [{"id": "401892365587990113", "value": "PO-123"}].
details_attributesarray- Array of detail (line item) objects. Each line takes description, price (decimal string such as "125.00"), amount (quantity, default 1), tax_rate_id, ledger_account_id, product_id, project_id and period. To change an existing line on update, include its id; to remove one, include its id with _destroy set to true. Example: [{"description": "Consulting", "price": "125.00", "amount": "2", "tax_rate_id": "401892365587990113"}].
discountnumber- Discount percentage, e.g. 10,0%. Should be a number 0 <= *n* <= 100. Example: 10.
document_style_idstring- Default document style is used when value is not provided. Should be a valid document style id. Example: 401892365587990113.
estimate_datestring- The date of the estimate. Defaults to the current date. Example: 2026-01-31.
estimate_sequence_idstring- The ID of the numbering sequence to use for the estimate number. If not provided, the administration default is used. Example: 401892365587990113.
first_due_intervalinteger- The number of days after the estimate date before the estimate expires. Defaults to the first workflow step's due interval. Example: 14.
languagestring- Can be `bg`, `cs`, `da`, `de`, `el`, `en`, `es`, `fr`, `hr`, `hu`, `it`, `no`, `nl`, `nl-be`, `pl`, `pt`, `ro`, `sv`, `tr` or `uk`. Example: example.
original_sales_invoice_idstring- The ID of the sales invoice this estimate was created from (e.g. for credit notes or revised estimates). Example: 401892365587990113.
post_textstring- Closing text displayed below the details on the estimate document. Defaults to the workflow's post-text. Example: example.
pre_textstring- Introductory text displayed above the details on the estimate document. Defaults to the workflow's pre-text. Example: example.
prices_are_incl_taxboolean- Whether the prices on the estimate are inclusive of tax. Defaults to the workflow's setting. Example: false.
referencestring- Your own reference for this estimate, e.g. a project code or PO number. Visible to the recipient. Example: PO-2026-0042.
remove_estimate_sequence_idstring- Set to `true` to remove the assigned numbering sequence, reverting to the administration default. Example: 401892365587990113.
show_taxboolean- Whether to show tax amounts on the estimate. Useful for non-VAT registered businesses or tax-exempt clients. Defaults to the workflow's setting. Example: true.
workflow_idstring- If value is not provided, the workflow saved in the contact is used. If the contact doesn't have a default workflow, the administration's default workflow is used. Should be a valid workflow id. Example: 401892365587990113.
moneybird_create_external_sales_invoiceImport an external sales invoice issued in another system.WriteCreate External Sales Invoice
Import an external sales invoice issued in another system. Returns the created external sales invoice including id, administration_id, contact_id, contact, date, state, due_date. Use to bring outside revenue into the books.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
contact_idstring- Should be a valid contact id. Example: 401892365587990113.
currencystring- ISO three-character currency code, e.g. EUR or USD. Example: EUR.
datestring- The date of the invoice. Example: 2026-01-31.
details_attributesarray- Array of detail (line item) objects. Each line takes description, price (decimal string such as "125.00"), amount (quantity, default 1), tax_rate_id, ledger_account_id, product_id, project_id and period. To change an existing line on update, include its id; to remove one, include its id with _destroy set to true. Example: [{"description": "Consulting", "price": "125.00", "amount": "2", "tax_rate_id": "401892365587990113"}].
due_datestring- The date by which the invoice should be paid. Example: 2026-02-28.
prices_are_incl_taxboolean- Whether the prices on the invoice are inclusive of tax. Defaults to the administration setting. Example: false.
referencestring- The invoice number or reference from the external system that created this invoice, e.g. a webshop order ID. Example: PO-2026-0042.
sourcestring- The name of the external system that created this invoice, e.g. your webshop or POS system name. Example: example.
source_urlstring- A URL linking back to the invoice in the external system. Example: example.
moneybird_create_general_documentCreate a general document.WriteCreate General Document
Create a general document. Returns the created general document including id, administration_id, contact_id, contact, reference, date, due_date. Use for bookkeeping records that are neither invoices nor receipts.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
contact_idstring- Should be a valid contact id. Example: 401892365587990113.
datestring- **Required**. Example: 2026-01-31.
due_datestring- Date by which the document is due, formatted YYYY-MM-DD. Example: 2026-02-28.
referencestring- **Required**. Example: PO-2026-0042.
reminderobject- Creates a reminder to-do for this document.
reminder_datestring- Date on which Moneybird should remind you about the document, formatted YYYY-MM-DD. Example: 2026-02-14.
moneybird_create_general_journal_documentCreate a general journal document with manual journal entries.WriteCreate General Journal Document
Create a general journal document with manual journal entries. Returns the created general journal document including id, administration_id, reference, date, journal_type, created_at, updated_at. Debits and credits must balance. Use list_ledger_accounts to find ledger_account_id values.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
datestring- Date of the journal entry. Defaults to today. Example: 2026-01-31.
general_journal_document_entries_attributesarray- Array of journal entry lines. Each line takes ledger_account_id, debit or credit (decimal string), description, tax_rate_id, project_id and contact_id; to change a line on update include its id. Total debit must equal total credit. Example: [{"ledger_account_id": "401892365587990113", "debit": "100.00"}, {"ledger_account_id": "401892365587990114", "credit": "100.00"}].
journal_typestring- The only journal type is `fiscal_year_ending`, for the entry that closes a fiscal year. Leave it out for a normal journal entry. Allowed values: fiscal_year_ending.one of
fiscal_year_ending referencestring- Your own reference for this record, for example a project code or order number. Example: PO-2026-0042.
moneybird_create_ledger_accountCreate a new ledger account in the chart of accounts.WriteCreate Ledger Account
Create a new ledger account in the chart of accounts. Returns the created ledger account including id, administration_id, name, account_type, account_id, parent_id, active. Use when a bookkeeping category is missing. Use list_ledger_accounts first to avoid duplicates.
Inputs
account_typestringrequired- Type of ledger account, which decides where it appears in the reports, for example expenses, revenue, non_current_assets or equity. Allowed values: non_current_assets, current_assets, equity, provisions, non_current_liabilities, current_liabilities, revenue, direct_costs, expenses, other_income_expenses.one of
non_current_assetscurrent_assetsequityprovisionsnon_current_liabilitiescurrent_liabilitiesrevenuedirect_costsexpensesother_income_expenses administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
namestringrequired- Should be unique for this combination of administration and account type. Example: Acme.
rgs_codestringrequired- Existing RGS version 3.5 code, e.g. 'WMfoBelMfo'. Example: example.
account_idstring- Optional field, also known as general ledger code. Should be unique. Example: 401892365587990113.
allowed_document_typesstring- Restricts the document types this ledger account can be used on. Defaults to a set derived from the `account_type`. Allowed values: sales_invoice, purchase_invoice, general_journal_document, financial_mutation, payment.one of
sales_invoicepurchase_invoicegeneral_journal_documentfinancial_mutationpayment descriptionstring- Free-text description of this record. Example: Consulting services.
parent_idstring- Id of the parent ledger account. Should be a valid ledger account id. Example: 401892365587990113.
moneybird_create_productCreate a product or service with a default price and tax rate.WriteCreate Product
Create a product or service with a default price and tax rate. Returns the created product including id, administration_id, description, title, identifier, price, currency. Use list_tax_rates and list_ledger_accounts first to find ids.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
ledger_account_idstringrequired- Should be a valid ledger account id. Example: 401892365587990113.
pricestringrequired- An amount of money. Both a decimal and a string '10,95' are accepted. A string is bound to the same range as a number, -1,000,000,000 <= *n* <= 1,000,000,000. Example: 125.00.
checkout_descriptionstring- A description shown on the checkout page when selling this product online via Moneybird checkout. Example: example.
checkout_typestring- Can be `product` or `subscription`. Example: example.
currencystring- ISO three-character currency code, e.g. EUR or USD. Example: EUR.
descriptionstring- A description of the product. Used as the default detail description when adding this product to a document. Example: Consulting services.
document_style_idstring- Should be a valid document style id. Example: 401892365587990113.
frequencyinteger- Should be an integer >= 1. Example: 10.
frequency_presetstring- A predefined billing interval label for subscription products, e.g. `monthly`, `quarterly`, `yearly`. Example: example.
frequency_typestring- Can be `day`, `week`, `month`, `quarter` or `year`. Example: example.
identifierstring- Should be unique for the administration. Example: SKU-1001.
max_amount_per_orderinteger- When `checkout_type` is `subscription`, should be an integer 0 <= *n* < 2. Example: 10.
product_typestring- Can be `digital_service`, `service` or `product`. Example: example.
tax_rate_idstring- Should be a valid tax rate id. Example: 401892365587990113.
titlestring- The name of the product, displayed on invoices and estimates. Example: example.
vat_rate_typestring- Can be `standard` or `reduced`. Example: example.
workflow_idstring- Should be a valid workflow id. Example: 401892365587990113.
moneybird_create_projectCreate a new project.WriteCreate Project
Create a new project. Returns the created project including id, name, state, budget. Use before logging time or booking revenue against a project.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
namestringrequired- Should be unique for the administration. Example: Acme.
budgetstring- The budget for this project in hours. Both a decimal and a string are accepted. Example: 1.0.
moneybird_create_purchase_invoiceCreate a purchase invoice (supplier bill).WriteCreate Purchase Invoice
Create a purchase invoice (supplier bill). Returns the created purchase invoice including id, administration_id, contact_id, contact, reference, date, due_date. Use list_contacts, list_tax_rates and list_ledger_accounts first to find ids.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
contact_idstring- Should be a valid contact id. Example: 401892365587990113.
currencystring- ISO three-character currency code, e.g. EUR or USD. Example: EUR.
datestring- The date on the supplier's invoice. Example: 2026-01-31.
details_attributesarray- Array of detail (line item) objects. Each line takes description, price (decimal string such as "125.00"), amount (quantity, default 1), tax_rate_id, ledger_account_id, product_id, project_id and period. To change an existing line on update, include its id; to remove one, include its id with _destroy set to true. Example: [{"description": "Consulting", "price": "125.00", "amount": "2", "tax_rate_id": "401892365587990113"}].
due_datestring- The date by which the invoice should be paid. Example: 2026-02-28.
fiscal_allocations_attributesarray- Array of fiscal allocation lines, used to book partly private or partly deductible costs. Each line takes ledger_account_id, amount and optionally tax_rate_id. Most documents do not need this.
prices_are_incl_taxboolean- Whether the prices on the purchase invoice are inclusive of tax. Defaults to the administration setting. Example: false.
referencestring- The supplier's invoice number or reference. Example: PO-2026-0042.
revenue_invoiceboolean- When `true`, this purchase invoice is treated as a revenue invoice (e.g. a credit note from a supplier). Revenue invoices are booked as income instead of expenses. Example: true.
moneybird_create_purchase_invoice_paymentRegister a payment on a purchase invoice.WriteCreate Purchase Invoice Payment
Register a payment on a purchase invoice. Returns the created payment including id, administration_id, invoice_type, invoice_id, financial_account_id, user_id, payment_transaction_id. Use list_financial_accounts to find the financial_account_id the money left from.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
payment_datestringrequired- The date on which the payment was made. Example: 2026-01-31.
pricestringrequired- The amount paid in the document's currency. Example: 125.00.
purchase_invoice_idstringrequired- Id of the purchase invoice. Use the matching list tool to find it. Example: 401892365587990113.
financial_account_idstring- The ID of the financial account (bank account or cash register) associated with this payment. Required for `private_payment` and `cash_payment` actions. Should be a valid financial account id. Example: 401892365587990113.
financial_mutation_idstring- The ID of the bank transaction to link this payment to. Required for `bank_transfer` actions. Should be a valid financial mutation id. Example: 401892365587990113.
invoice_idstring- The ID of the document to settle this payment against. Required for `invoices_settlement` actions. Should be a valid document id (sales invoice, purchase invoice, receipt, etc.). Example: 2026-0001.
ledger_account_idstring- The ID of the ledger account to book this payment to. Required for `balance_settlement` actions. Should be a valid ledger account id. Example: 401892365587990113.
manual_payment_actionstring- Can be `private_payment` (needs financial_account_id), `payment_without_proof`, `cash_payment` (needs financial_account_id), `rounding_error`, `bank_transfer` (needs financial_mutation_id), `balance_settlement` (needs ledger_account_id) or `invoices_settlement` (needs invoice_id). `payment_without_proof` is only accepted when the administration allows payments without proof. Example: example.
price_basestring- Amount paid expressed in the base currency of the administration. Required when the document uses a different currency than the administration's base currency. Example: 125.00.
transaction_identifierstring- An external transaction reference, e.g. a bank transaction ID or PSP reference. Used to match the payment with financial mutations. Example: example.
moneybird_create_receiptCreate a receipt for an expense.WriteCreate Receipt
Create a receipt for an expense. Returns the created receipt including id, administration_id, contact_id, contact, reference, date, due_date. Use list_tax_rates and list_ledger_accounts first to find ids.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
contact_idstring- Should be a valid contact id. Example: 401892365587990113.
currencystring- ISO three-character currency code, e.g. EUR or USD. Example: EUR.
datestring- The date of the receipt. Example: 2026-01-31.
details_attributesarray- Array of detail (line item) objects. Each line takes description, price (decimal string such as "125.00"), amount (quantity, default 1), tax_rate_id, ledger_account_id, product_id, project_id and period. To change an existing line on update, include its id; to remove one, include its id with _destroy set to true. Example: [{"description": "Consulting", "price": "125.00", "amount": "2", "tax_rate_id": "401892365587990113"}].
financial_account_idstring- Should be a valid financial account id. Example: 401892365587990113.
fiscal_allocations_attributesarray- Array of fiscal allocation lines, used to book partly private or partly deductible costs. Each line takes ledger_account_id, amount and optionally tax_rate_id. Most documents do not need this.
prices_are_incl_taxboolean- Whether the prices on the receipt are inclusive of tax. Defaults to the administration setting. Example: false.
referencestring- A reference for this receipt, e.g. a receipt number or supplier name. Example: PO-2026-0042.
moneybird_create_receipt_paymentRegister a payment on a receipt.WriteCreate Receipt Payment
Register a payment on a receipt. Returns the created payment including id, administration_id, invoice_type, invoice_id, financial_account_id, user_id, payment_transaction_id. Use list_financial_accounts to find the financial_account_id.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
payment_datestringrequired- The date on which the payment was made. Example: 2026-01-31.
pricestringrequired- The amount paid in the document's currency. Example: 125.00.
receipt_idstringrequired- Id of the receipt. Use the matching list tool to find it. Example: 401892365587990113.
financial_account_idstring- The ID of the financial account (bank account or cash register) associated with this payment. Required for `private_payment` and `cash_payment` actions. Should be a valid financial account id. Example: 401892365587990113.
financial_mutation_idstring- The ID of the bank transaction to link this payment to. Required for `bank_transfer` actions. Should be a valid financial mutation id. Example: 401892365587990113.
invoice_idstring- The ID of the document to settle this payment against. Required for `invoices_settlement` actions. Should be a valid document id (sales invoice, purchase invoice, receipt, etc.). Example: 2026-0001.
ledger_account_idstring- The ID of the ledger account to book this payment to. Required for `balance_settlement` actions. Should be a valid ledger account id. Example: 401892365587990113.
manual_payment_actionstring- Can be `private_payment` (needs financial_account_id), `payment_without_proof`, `cash_payment` (needs financial_account_id), `rounding_error`, `bank_transfer` (needs financial_mutation_id), `balance_settlement` (needs ledger_account_id) or `invoices_settlement` (needs invoice_id). `payment_without_proof` is only accepted when the administration allows payments without proof. Example: example.
price_basestring- Amount paid expressed in the base currency of the administration. Required when the document uses a different currency than the administration's base currency. Example: 125.00.
transaction_identifierstring- An external transaction reference, e.g. a bank transaction ID or PSP reference. Used to match the payment with financial mutations. Example: example.
moneybird_create_recurring_sales_invoiceCreate a recurring sales invoice that is generated on a schedule.WriteCreate Recurring Sales Invoice
Create a recurring sales invoice that is generated on a schedule. Returns the created recurring sales invoice including id, administration_id, contact_id, contact, contact_person_id, contact_person, workflow_id. Use for fixed periodic billing. Use create_subscription for plan-based billing.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
auto_sendboolean- When `true`, each generated invoice is automatically sent to the contact via the configured delivery method. Example: true.
contact_idstring- Should be a valid contact id. Example: 401892365587990113.
contact_person_idstring- Should be a valid contact person id. Example: 401892365587990113.
currencystring- ISO three-character currency code, e.g. EUR or USD. Defaults to the workflow's currency. Example: EUR.
custom_fields_attributesarray- Array of custom field values. Each entry needs the custom field id (from list_custom_fields) and a value. Example: [{"id": "401892365587990113", "value": "PO-123"}].
desired_countstring- The maximum number of invoices to generate. Only applied when `has_desired_count` is `true`. Example: example.
details_attributesarray- Array of detail (line item) objects. Each line takes description, price (decimal string such as "125.00"), amount (quantity, default 1), tax_rate_id, ledger_account_id, product_id, project_id and period. To change an existing line on update, include its id; to remove one, include its id with _destroy set to true. Example: [{"description": "Consulting", "price": "125.00", "amount": "2", "tax_rate_id": "401892365587990113"}].
discountnumber- Discount percentage, e.g. 10,0%. Example: 10.
document_style_idstring- Should be a valid document style id. Example: 401892365587990113.
first_due_intervalinteger- The number of days after the invoice date before each generated invoice is due. Defaults to the first workflow step's due interval. Example: 14.
frequencystring- The interval multiplier. Combined with `frequency_type` to determine the billing cycle, e.g. `frequency=2` with `frequency_type=month` creates an invoice every 2 months. Example: example.
frequency_typestring- Can be `day`, `week`, `month`, `quarter` or `year`. Example: example.
has_desired_countboolean- When `true`, the recurring invoice will stop generating new invoices after `desired_count` invoices have been created. Example: true.
invoice_datestring- Should be in the future. Example: 2026-01-31.
mergeableboolean- When `true`, generated invoices may be merged with other mergeable invoices for the same contact, if they share the same workflow, layout, currency, language and other invoice settings. Example: true.
prices_are_incl_taxboolean- Whether the prices on generated invoices are inclusive of tax. Defaults to the workflow's setting. Example: false.
referencestring- A reference to include on each generated invoice, e.g. a contract or project code. Example: PO-2026-0042.
update_contactboolean- When `true`, the contact's address and other details are refreshed from the current contact record each time a new invoice is generated. Example: true.
workflow_idstring- Should be a valid workflow id. If not provided, the contact's invoice workflow is used. Example: 401892365587990113.
moneybird_create_sales_invoiceCreate a sales invoice in draft state for a contact.WriteCreate Sales Invoice
Create a sales invoice in draft state for a contact. Returns the created sales invoice including id, administration_id, contact_id, contact, contact_person_id, contact_person, invoice_id. Use list_contacts, list_tax_rates and list_ledger_accounts first to find ids. Use send_sales_invoice afterwards to deliver it.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
contact_idstring- The ID of the contact associated with the sales invoice. This is mandatory when setting the contact_person_id. Should be a valid contact id. Example: 401892365587990113.
contact_person_idstring- The ID of the contact person associated with the sales invoice. Should be a valid contact person id. Example: 401892365587990113.
currencystring- ISO three-character currency code, e.g. EUR or USD. Defaults to the workflow's currency. Example: EUR.
custom_fields_attributesarray- Array of custom field values. Each entry needs the custom field id (from list_custom_fields) and a value. Example: [{"id": "401892365587990113", "value": "PO-123"}].
details_attributesarray- Array of detail (line item) objects. Each line takes description, price (decimal string such as "125.00"), amount (quantity, default 1), tax_rate_id, ledger_account_id, product_id, project_id and period. To change an existing line on update, include its id; to remove one, include its id with _destroy set to true. Example: [{"description": "Consulting", "price": "125.00", "amount": "2", "tax_rate_id": "401892365587990113"}].
discountnumber- Discount percentage applied to the entire invoice, e.g. `10.0` for 10%. Example: 10.
document_style_idstring- Default document style is used if value is not provided. Should be a valid document style id. Example: 401892365587990113.
first_due_intervalinteger- The number of days after the invoice date before the invoice is due. Defaults to the first workflow step's due interval. Example: 14.
from_payment_requestboolean- Set to `true` when the invoice was created from a Moneybird payment request. Example: true.
invoice_datestring- When left empty, it is filled in when the invoice is sent. Example: 2026-01-31.
invoice_sequence_idstring- The ID of the numbering sequence to use for the invoice number. If not provided, the administration default is used. Example: 401892365587990113.
original_estimate_idstring- The ID of the estimate this invoice was created from. Used to link an invoice to its originating estimate. Example: 401892365587990113.
payment_conditionsstring- Free-text payment conditions printed on the invoice, e.g. "Payment within 30 days". Defaults to the workflow's payment conditions. Example: Payable within 14 days..
prices_are_incl_taxboolean- Whether the prices on the invoice are inclusive of tax. Defaults to the workflow's setting. Example: false.
referencestring- Your own reference for this invoice, e.g. a project code or PO number. Visible to the recipient. Example: PO-2026-0042.
time_entry_idsarray- Array of time entry ids to bill on this invoice. Use list_time_entries to find them. Example: ["401892365587990113"].
workflow_idstring- If value is not provided, the workflow saved in the contact is used. If the contact doesn't have a default workflow, the administration's default workflow is used. Should be a valid workflow id. Example: 401892365587990113.
moneybird_create_sales_invoice_paymentRegister a payment against a sales invoice.WriteCreate Sales Invoice Payment
Register a payment against a sales invoice. Returns the created payment including id, administration_id, invoice_type, invoice_id, financial_account_id, user_id, payment_transaction_id. Use list_financial_accounts to find the financial_account_id the money arrived in.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
payment_datestringrequired- The date on which the payment was made. Example: 2026-01-31.
pricestringrequired- The amount paid in the document's currency. Example: 125.00.
sales_invoice_idstringrequired- Id of the sales invoice. Use the matching list tool to find it. Example: 401892365587990113.
financial_account_idstring- The ID of the financial account (bank account or cash register) associated with this payment. Required for `private_payment` and `cash_payment` actions. Should be a valid financial account id. Example: 401892365587990113.
financial_mutation_idstring- The ID of the bank transaction to link this payment to. Required for `bank_transfer` actions. Should be a valid financial mutation id. Example: 401892365587990113.
invoice_idstring- The ID of the document to settle this payment against. Required for `invoices_settlement` actions. Should be a valid document id (sales invoice, purchase invoice, receipt, etc.). Example: 2026-0001.
ledger_account_idstring- The ID of the ledger account to book this payment to. Required for `balance_settlement` actions. Should be a valid ledger account id. Example: 401892365587990113.
manual_payment_actionstring- Can be `private_payment` (needs financial_account_id), `payment_without_proof`, `cash_payment` (needs financial_account_id), `rounding_error`, `bank_transfer` (needs financial_mutation_id), `balance_settlement` (needs ledger_account_id) or `invoices_settlement` (needs invoice_id). `payment_without_proof` is only accepted when the administration allows payments without proof. Example: example.
price_basestring- Amount paid expressed in the base currency of the administration. Required when the document uses a different currency than the administration's base currency. Example: 125.00.
transaction_identifierstring- An external transaction reference, e.g. a bank transaction ID or PSP reference. Used to match the payment with financial mutations. Example: example.
moneybird_create_subscriptionCreate a subscription for a contact and product.WriteCreate Subscription
Create a subscription for a contact and product. Returns the created subscription including id, administration_id, start_date, end_date, frequency, frequency_type, reference. Use list_contacts and list_products first to find ids.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
product_idstringrequired- Should be a valid product id. Example: 401892365587990113.
start_datestringrequired- Date the subscription starts, formatted YYYY-MM-DD. Example: 2026-01-01.
amountstring- Quantity of the product billed each period. Example: 1.
contact_idstring- Should be a valid contact id. Example: 401892365587990113.
contact_person_idstring- Should be a valid contact person id. Example: 401892365587990113.
discountnumber- Both a decimal and a string '10,95' are accepted. Example: 10.
document_style_idstring- Should be a valid document style id. Example: 401892365587990113.
end_datestring- Date the subscription ends, formatted YYYY-MM-DD. Leave empty for an open-ended subscription. Example: 2026-12-31.
frequencyinteger- Number of periods between invoices, combined with `frequency_type`. Must be compatible with the product's frequency (e.g. a monthly product can be billed yearly). Defaults to the product's frequency. Example: 10.
frequency_typestring- Length of a single billing period, combined with `frequency`. Defaults to the product's frequency type. Allowed values: day, week, month, quarter, year.one of
dayweekmonthquarteryear mergeableboolean- Merge invoices from this subscription with other mergeable invoices for the same contact before sending. Only applies when invoices are sent automatically. Example: true.
prices_are_incl_taxboolean- Whether the amounts on the generated invoices are inclusive of tax. Example: false.
referencestring- Your own reference for this record, for example a project code or order number. Example: PO-2026-0042.
moneybird_create_time_entryLog a time entry for a user, optionally linked to a contact and project.WriteCreate Time Entry
Log a time entry for a user, optionally linked to a contact and project. Returns the created time entry including id, administration_id, contact_id, project_id, sales_invoice_id, user_id, started_at. Use list_users and list_projects first to find ids.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
descriptionstringrequired- A description on how the time was spent. May be shown on the invoice. Example: Consulting services.
started_atstringrequired- The start time of the time entry. Rounded down to full minutes. Example: example.
user_idstringrequired- The employee for which the time should be entered. Should be a valid user id. Example: 401892365587990113.
billableboolean- Whether this time entry is billable to the client. Example: true.
contact_idstring- Should be a valid contact id. Example: 401892365587990113.
ended_atstring- The end time of the time entry. Rounded down to full minutes. Omit to create a running (active) time entry. Example: example.
paused_durationinteger- Total paused duration in seconds, is rounded down to full minutes. Example: 10.
project_idstring- Should be a valid project id. Example: 401892365587990113.
sales_invoice_idstring- Should be a valid sales invoice id. Example: 401892365587990113.
moneybird_link_financial_mutation_bookingLink a financial mutation (bank line) to an invoice, document or ledger account.WriteLink Financial Mutation Booking
Link a financial mutation (bank line) to an invoice, document or ledger account. Returns the financial mutation including id, administration_id, amount, code, date, message, contra_account_name. Use to reconcile a bank line. Use unlink_financial_mutation_booking to undo.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
financial_mutation_idstringrequired- Id of the financial mutation. Use the matching list tool to find it. Example: 401892365587990113.
booking_idstring- The id of the record to link, of the type set in `booking_type` (e.g. the ledger account id when `booking_type` is `LedgerAccount`). Not allowed for `NewPurchaseInvoice` and `NewReceipt` — those create a new record instead of linking an existing one. To link an existing purchase invoice or receipt, use `booking_type` `Document` with the document's id. Example: 401892365587990113.
booking_typestring- The type of record to link the mutation to. Allowed values: SalesInvoice, Document, LedgerAccount, PaymentTransactionBatch, PurchaseTransaction, NewPurchaseInvoice, NewReceipt, PaymentTransaction, PurchaseTransactionBatch, ExternalSalesInvoice, Payment, VatDocument.one of
SalesInvoiceDocumentLedgerAccountPaymentTransactionBatchPurchaseTransactionNewPurchaseInvoiceNewReceiptPaymentTransactionPurchaseTransactionBatchExternalSalesInvoicePaymentVatDocument descriptionstring- Free-text description of this record. Example: Consulting services.
mark_open_sepa_transaction_as_paidboolean- Set to true to mark an open SEPA transaction of the linked invoice as paid when linking. Example: false.
payment_batch_identifierstring- Identifier of the payment batch to link when booking_type is PaymentTransactionBatch. Example: BATCH-2026-01.
pricestring- Amount in the booking's own currency, used when linking a payment to an invoice. The same positive/negative rules apply as for `price_base` (see the table there). For a foreign-currency invoice both `price` and `price_base` are required; otherwise `price_base` alone is enough. Only used when `booking_type` is `SalesInvoice`, `ExternalSalesInvoice`, `Document` or `VatDocument`; every other booking type takes its amount from `price_base` or ignores it. Example: 125.00.
price_basestring- The booking amount, in the administration's base currency. This is the field that carries the amount for most booking types; when linking a payment to an invoice it is the base-currency counterpart of `price`. For `booking_type` `LedgerAccount` send the amount here — `price` is ignored. Whether to send a positive or a negative amount depends on `booking_type`: | **`booking_type`** | **Amount** | | --- | --- | | `SalesInvoice`, `ExternalSalesInvoice`, `Document` | Always positive. The payment direction is taken from the financial mutation, so refunds and credit notes also take a positive amount, whichever way the money moved | | `LedgerAccount` | Positive books in the same direction as the mutation, negative against it. Splitting a mutation over several bookings takes one request per part: an outgoing mutation of -95 consisting of 100 in costs and 5 received back takes one request with `100` and one with `-5`. One exception: once an incoming mutation has more booked than its own amount (its open amount went negative), positive and negative swap — a positive amount then books against the mutation | | `VatDocument` | The amount as it appears on the VAT return: positive when VAT is payable, negative for a refund | | `NewPurchaseInvoice`, `NewReceipt` | Positive when the mutation is outgoing (a purchase you paid), negative when it is incoming (money received back) | | `Payment`, `PaymentTransaction`, `PaymentTransactionBatch`, `PurchaseTransactionBatch`, `PurchaseTransaction` | Ignored — the amount comes from the record being linked |. Example: 125.00.
project_idstring- Should be a valid project id. Example: 401892365587990113.
moneybird_mark_sales_invoice_uncollectibleMark a sales invoice as uncollectible (bad debt).WriteMark Sales Invoice Uncollectible
Mark a sales invoice as uncollectible (bad debt). Returns the updated sales invoice including id, administration_id, contact_id, contact, contact_person_id, contact_person, invoice_id. Use when payment is no longer expected.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
sales_invoice_idstringrequired- Id of the sales invoice. Use the matching list tool to find it. Example: 401892365587990113.
book_methodstring- Can be `revenue`. Example: example.
uncollectible_datestring- Date the invoice became uncollectible, formatted YYYY-MM-DD. Defaults to today. Example: 2026-01-31.
moneybird_send_estimateSend an estimate to the customer by email, post or manual delivery.WriteSend Estimate
Send an estimate to the customer by email, post or manual delivery. Returns the updated estimate including id, administration_id, contact_id, contact, contact_person_id, contact_person, estimate_id. Use after create_estimate. This delivers the estimate to the customer.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
estimate_idstringrequired- Printed estimate number, for example 2026-0001. Example: 2026-0001.
delivery_methodstring- How to deliver the document: Email, Manual, Post, Simplerinvoicing or Peppol. Defaults to the contact and workflow settings. Allowed values: Email, Manual.one of
EmailManual email_addressstring- Recipient email address. Only used when `delivery_method` is `Email`; defaults to the contact's email address. Example: billing@example.com.
email_messagestring- Message included in the email. Only used when `delivery_method` is `Email`; defaults to the workflow's estimate email text. Example: Please find your invoice attached..
sign_onlineboolean- Set to true to let the customer accept the estimate online. Example: false.
moneybird_send_sales_invoiceSend a sales invoice to the customer now, or schedule sending for a future date.WriteSend Sales Invoice
Send a sales invoice to the customer now, or schedule sending for a future date. Returns the updated sales invoice including id, administration_id, contact_id, contact, contact_person_id, contact_person, invoice_id. Use after create_sales_invoice. This emails or delivers the invoice to the customer.
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
sales_invoice_idstringrequired- Id of the sales invoice. Use the matching list tool to find it. Example: 401892365587990113.
deliver_ublboolean- Attach a UBL (e-invoicing) file to the email. Only used when `delivery_method` is `Email`; defaults to the contact's UBL preference. Example: true.
delivery_methodstring- How to deliver the document: Email, Manual, Post, Simplerinvoicing or Peppol. Defaults to the contact and workflow settings. Allowed values: Email, Peppol, Manual.one of
EmailPeppolManual email_addressstring- Recipient email address. Only used when `delivery_method` is `Email`; overrides the contact's default email address. Example: billing@example.com.
email_messagestring- Message included in the email. Only used when `delivery_method` is `Email`; defaults to the workflow's invoice email text. Example: Please find your invoice attached..
invoice_datestring- When scheduling, the date on which the invoice is sent. Example: 2026-01-31.
mergeableboolean- When multiple scheduled invoices share the same contact, identity, workflow, document style, currency, language and invoice date, merge them into a single invoice before sending. Example: true.
sending_scheduledboolean- Schedule the invoice to be sent in the future instead of immediately. Combine with `invoice_date` to set the date on which it is sent. Example: false.
moneybird_update_contactUpdate fields of an existing contact.WriteUpdate Contact
Update fields of an existing contact. Only the fields you pass are changed. Returns the updated contact including id, administration_id, company_name, firstname, lastname, address1, address2. Use get_contact first to read current values.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
contact_idstringrequired- Id of the contact. Use list_contacts to find it.
address1string- Primary street address of the contact. Example: Keizersgracht 1.
address2string- Secondary address line (e.g. apartment number, building name). Example: Floor 2.
bank_accountstring- The bank account number (IBAN) of the contact. Used for outgoing payments and displayed on documents. Example: NL91ABNA0417164300.
chamber_of_commercestring- The CoC (Chamber of Commerce) registration number of the contact's business. Example: 12345678.
citystring- City or town of the contact's address. Example: Amsterdam.
company_namestring- A contact requires a non-blank `company_name`, `firstname` or `lastname`. Example: Acme B.V..
countrystring- ISO two-character country code, e.g. NL or DE. Example: NL.
custom_fields_attributesarray- Array of custom field values. Each entry needs the custom field id (from list_custom_fields) and a value. Example: [{"id": "401892365587990113", "value": "PO-123"}].
customer_idstring- Will be assigned automatically if empty. Should be unique for the administration. Example: 1042.
delivery_methodstring- Can be `Email`, `Simplerinvoicing`, `Peppol`, `Manual` or `Post`. Example: Email.
direct_debitboolean- When `true`, invoices for this contact are collected via SEPA direct debit. Requires SEPA fields to be configured. Example: true.
email_ublboolean- When `true`, a UBL (Universal Business Language) XML file is attached when emailing invoices to this contact. Enables machine-readable invoice processing. Example: true.
estimate_workflow_idstring- Should be a valid estimate workflow id. Example: 401892365587990113.
firstnamestring- A contact requires a non-blank `company_name`, `firstname` or `lastname`. Example: Jane.
invoice_workflow_idstring- Should be a valid invoice workflow id. Example: 401892365587990113.
lastnamestring- A contact requires a non-blank `company_name`, `firstname` or `lastname`. Example: Doe.
phonestring- Phone number of the contact. Example: +31 20 123 4567.
send_estimates_to_attentionstring- The name of the person to address estimates to (attention line). Example: example.
send_estimates_to_emailstring- Should be one or more valid email addresses, separated by a comma. Example: example.
send_invoices_to_attentionstring- The name of the person to address invoices to (attention line). Example: example.
send_invoices_to_emailstring- Should be one or more valid email addresses, separated by a comma. Example: example.
sepa_activeboolean- When `true`, all other SEPA fields are required. Example: true.
sepa_bicstring- Should be a valid BIC. Example: ABNANL2A.
sepa_ibanstring- Should be a valid IBAN. Example: NL91ABNA0417164300.
sepa_iban_account_namestring- The account holder name for the SEPA direct debit IBAN. Example: example.
sepa_mandate_datestring- Should be a date in the past. Example: 2026-01-31.
sepa_mandate_idstring- Should be unique for the administration. Example: 401892365587990113.
sepa_sequence_typestring- Can be `RCUR`, `FRST`, `OOFF` or `FNAL`. Example: example.
si_identifierstring- The Peppol/e-invoicing identifier value for this contact. The format depends on the `si_identifier_type`. Example: example.
si_identifier_typestring- Can be `0002`, `0007`, `0009`, `0037`, `0060`, `0088`, `0096`, `0097`, `0106`, `0130`, `0135`, `0142`, `0151`, `0183`, `0184`, `0188`, `0190`, `0191`, `0192`, `0193`, `0195`, `0196`, `0198`, `0199`, `0200`, `0201`, `0204`, `0205`, `0208`, `0209`, `0210`, `0211`, `0212`, `0213`, `0215`, `0216`, `0221`, `0230`, `9910`, `9913`, `9914`, `9915`, `9918`, `9919`, `9920`, `9922`, `9923`, `9924`, `9925`, `9926`, `9927`, `9928`, `9929`, `9930`, `9931`, `9932`, `9933`, `9934`, `9935`, `9936`, `9937`, `9938`, `9939`, `9940`, `9941`, `9942`, `9943`, `9944`, `9945`, `9946`, `9947`, `9948`, `9949`, `9950`, `9951`, `9952`, `9953`, `9957` or `9959`. Example: example.
tax_numberstring- The tax identification number (VAT number) of the contact, e.g. `NL123456789B01`. Example: NL123456789B01.
zipcodestring- Postal code or ZIP code of the contact's address. Example: 1011 AB.
moneybird_update_contact_personUpdate a contact person of a contact.WriteUpdate Contact Person
Update a contact person of a contact. Returns the updated contact person including id, contact_id, administration_id, firstname, lastname, phone, email. Only the fields you pass are changed.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
contact_idstringrequired- Id of the contact. Use list_contacts to find it.
contact_person_idstringrequired- Id of the contact person. Use the matching list tool to find it. Example: 401892365587990113.
departmentstring- Department or job title of the contact person, for example Finance. Example: Finance.
emailstring- Should be a valid email addresses. Example: billing@example.com.
firstnamestring- First name of the person. Example: Jane.
lastnamestring- Last name of the person. Example: Doe.
phonestring- Phone number of the person, for example +31 20 123 4567. Example: +31 20 123 4567.
moneybird_update_estimateUpdate a draft estimate.WriteUpdate Estimate
Update a draft estimate. Only the fields you pass are changed. Returns the updated estimate including id, administration_id, contact_id, contact, contact_person_id, contact_person, estimate_id. Use get_estimate first to read current values.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
estimate_idstringrequired- Printed estimate number, for example 2026-0001. Example: 2026-0001.
contact_idstring- Should be a valid contact id. Example: 401892365587990113.
contact_person_idstring- Should be a valid contact person id. Example: 401892365587990113.
currencystring- ISO three-character currency code, e.g. EUR or USD. Example: EUR.
custom_fields_attributesarray- Array of custom field values. Each entry needs the custom field id (from list_custom_fields) and a value. Example: [{"id": "401892365587990113", "value": "PO-123"}].
details_attributesarray- Array of detail (line item) objects. Each line takes description, price (decimal string such as "125.00"), amount (quantity, default 1), tax_rate_id, ledger_account_id, product_id, project_id and period. To change an existing line on update, include its id; to remove one, include its id with _destroy set to true. Example: [{"description": "Consulting", "price": "125.00", "amount": "2", "tax_rate_id": "401892365587990113"}].
discountnumber- Discount percentage, e.g. 10,0%. Should be a number 0 <= *n* <= 100. Example: 10.
document_style_idstring- Default document style is used when value is not provided. Should be a valid document style id. Example: 401892365587990113.
estimate_datestring- The date of the estimate. Example: 2026-01-31.
estimate_sequence_idstring- The ID of the numbering sequence to use for the estimate number. Example: 401892365587990113.
first_due_intervalinteger- The number of days after the estimate date before the estimate expires. Example: 14.
languagestring- Can be `bg`, `cs`, `da`, `de`, `el`, `en`, `es`, `fr`, `hr`, `hu`, `it`, `no`, `nl`, `nl-be`, `pl`, `pt`, `ro`, `sv`, `tr` or `uk`. Example: example.
original_sales_invoice_idstring- The ID of the sales invoice this estimate was created from. Example: 401892365587990113.
post_textstring- Closing text displayed below the details on the estimate document. Example: example.
pre_textstring- Introductory text displayed above the details on the estimate document. Example: example.
prices_are_incl_taxboolean- Whether the prices on the estimate are inclusive of tax. Example: false.
referencestring- Your own reference for this estimate, e.g. a project code or PO number. Visible to the recipient. Example: PO-2026-0042.
remove_estimate_sequence_idstring- Set to `true` to remove the assigned numbering sequence, reverting to the administration default. Example: 401892365587990113.
show_taxboolean- Whether to show tax amounts on the estimate. Example: true.
update_contactboolean- When `true`, the contact's address and other details are updated on the estimate from the current contact record. Example: true.
workflow_idstring- If value is not provided, the workflow saved in the contact is used. If the contact doesn't have a default workflow, the administration's default workflow is used. Should be a valid workflow id. Example: 401892365587990113.
moneybird_update_external_sales_invoiceUpdate an external sales invoice.WriteUpdate External Sales Invoice
Update an external sales invoice. Returns the updated external sales invoice including id, administration_id, contact_id, contact, date, state, due_date. Only the fields you pass are changed.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
external_sales_invoice_idstringrequired- Id of the external sales invoice. Use the matching list tool to find it. Example: 401892365587990113.
contact_idstring- Should be a valid contact id. Example: 401892365587990113.
currencystring- ISO three-character currency code, e.g. EUR or USD. Example: EUR.
datestring- The date of the invoice. Example: 2026-01-31.
details_attributesarray- Array of detail (line item) objects. Each line takes description, price (decimal string such as "125.00"), amount (quantity, default 1), tax_rate_id, ledger_account_id, product_id, project_id and period. To change an existing line on update, include its id; to remove one, include its id with _destroy set to true. Example: [{"description": "Consulting", "price": "125.00", "amount": "2", "tax_rate_id": "401892365587990113"}].
due_datestring- The date by which the invoice should be paid. Example: 2026-02-28.
prices_are_incl_taxboolean- Whether the prices on the invoice are inclusive of tax. Example: false.
referencestring- The invoice number or reference from the external system that created this invoice, e.g. a webshop order ID. Example: PO-2026-0042.
sourcestring- The name of the external system that created this invoice. Example: example.
source_urlstring- A URL linking back to the invoice in the external system. Example: example.
moneybird_update_general_documentUpdate a general document.WriteUpdate General Document
Update a general document. Returns the updated general document including id, administration_id, contact_id, contact, reference, date, due_date. Only the fields you pass are changed.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
general_document_idstringrequired- Id of the general document. Use the matching list tool to find it. Example: 401892365587990113.
contact_idstring- Should be a valid contact id. Example: 401892365587990113.
datestring- **Required**. Example: 2026-01-31.
due_datestring- Date by which the document is due, formatted YYYY-MM-DD. Example: 2026-02-28.
referencestring- **Required**. Example: PO-2026-0042.
reminderobject- Creates a reminder to-do for this document.
reminder_datestring- Date on which Moneybird should remind you about the document, formatted YYYY-MM-DD. Example: 2026-02-14.
remove_contactboolean- Set to true to detach the contact from the document. Example: false.
moneybird_update_ledger_accountUpdate the name, number or settings of an existing ledger account.WriteUpdate Ledger Account
Update the name, number or settings of an existing ledger account. Returns the updated ledger account including id, administration_id, name, account_type, account_id, parent_id, active. Use to rename or renumber a category.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
ledger_account_idstringrequired- Id of the ledger account. Use the matching list tool to find it. Example: 401892365587990113.
account_idstring- Optional field, also known as general ledger code. Should be unique. Example: 401892365587990113.
account_typestring- Type of ledger account, which decides where it appears in the reports, for example expenses, revenue, non_current_assets or equity. Allowed values: non_current_assets, current_assets, equity, provisions, non_current_liabilities, current_liabilities, revenue, direct_costs, expenses, other_income_expenses.one of
non_current_assetscurrent_assetsequityprovisionsnon_current_liabilitiescurrent_liabilitiesrevenuedirect_costsexpensesother_income_expenses allowed_document_typesstring- Restricts the document types this ledger account can be used on. Defaults to a set derived from the `account_type`. Allowed values: sales_invoice, purchase_invoice, general_journal_document, financial_mutation, payment.one of
sales_invoicepurchase_invoicegeneral_journal_documentfinancial_mutationpayment descriptionstring- Free-text description of this record. Example: Consulting services.
namestring- Should be unique for this combination of administration and account type. Example: Acme.
parent_idstring- Id of the parent ledger account. Should be a valid ledger account id. Example: 401892365587990113.
rgs_codestring- Existing RGS version 3.5 code, e.g. 'WMfoBelMfo'. Example: example.
moneybird_update_productUpdate a product.WriteUpdate Product
Update a product. Only the fields you pass are changed. Returns the updated product including id, administration_id, description, title, identifier, price, currency. Use get_product first to read current values.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
product_idstringrequired- Id of the product. Use the matching list tool to find it. Example: 401892365587990113.
checkout_descriptionstring- A description shown on the checkout page when selling this product online. Example: example.
checkout_typestring- Can be `product` or `subscription`. Example: example.
currencystring- ISO three-character currency code, e.g. EUR or USD. Example: EUR.
descriptionstring- A description of the product. Used as the default detail description when adding this product to a document. Example: Consulting services.
document_style_idstring- Should be a valid document style id. Example: 401892365587990113.
frequencyinteger- Should be an integer >= 1. Example: 10.
frequency_presetstring- A predefined billing interval label for subscription products, e.g. `monthly`, `quarterly`, `yearly`. Example: example.
frequency_typestring- Can be `day`, `week`, `month`, `quarter` or `year`. Example: example.
identifierstring- Should be unique for the administration. Example: SKU-1001.
ledger_account_idstring- Should be a valid ledger account id. Example: 401892365587990113.
max_amount_per_orderinteger- When `checkout_type` is `subscription`, should be an integer 0 <= *n* < 2. Example: 10.
pricestring- An amount of money. Both a decimal and a string '10,95' are accepted. A string is bound to the same range as a number, -1,000,000,000 <= *n* <= 1,000,000,000. Example: 125.00.
product_typestring- Can be `digital_service`, `service` or `product`. Example: example.
tax_rate_idstring- Should be a valid tax rate id. Example: 401892365587990113.
titlestring- The name of the product, displayed on invoices and estimates. Example: example.
vat_rate_typestring- Can be `standard` or `reduced`. Example: example.
workflow_idstring- Should be a valid workflow id. Example: 401892365587990113.
moneybird_update_projectUpdate the name or state of a project.WriteUpdate Project
Update the name or state of a project. Returns the updated project including id, name, state, budget. Use to rename or archive a project.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
project_idstringrequired- Id of the project. Use the matching list tool to find it. Example: 401892365587990113.
budgetstring- The budget for this project in hours. Example: 1.0.
namestring- Should be unique for the administration. Example: Acme.
moneybird_update_purchase_invoiceUpdate a purchase invoice.WriteUpdate Purchase Invoice
Update a purchase invoice. Only the fields you pass are changed. Returns the updated purchase invoice including id, administration_id, contact_id, contact, reference, date, due_date. Use get_purchase_invoice first to read current values.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
purchase_invoice_idstringrequired- Id of the purchase invoice. Use the matching list tool to find it. Example: 401892365587990113.
contact_idstring- Should be a valid contact id. Example: 401892365587990113.
currencystring- ISO three-character currency code, e.g. EUR or USD. Example: EUR.
datestring- The date on the supplier's invoice. Example: 2026-01-31.
details_attributesarray- Array of detail (line item) objects. Each line takes description, price (decimal string such as "125.00"), amount (quantity, default 1), tax_rate_id, ledger_account_id, product_id, project_id and period. To change an existing line on update, include its id; to remove one, include its id with _destroy set to true. Example: [{"description": "Consulting", "price": "125.00", "amount": "2", "tax_rate_id": "401892365587990113"}].
due_datestring- The date by which the invoice should be paid. Example: 2026-02-28.
fiscal_allocations_attributesarray- Array of fiscal allocation lines, used to book partly private or partly deductible costs. Each line takes ledger_account_id, amount and optionally tax_rate_id. Most documents do not need this.
prices_are_incl_taxboolean- Whether the prices on the purchase invoice are inclusive of tax. Example: false.
referencestring- The supplier's invoice number or reference. Example: PO-2026-0042.
revenue_invoiceboolean- When `true`, this purchase invoice is treated as a revenue invoice (e.g. a credit note from a supplier). Example: true.
moneybird_update_receiptUpdate a receipt.WriteUpdate Receipt
Update a receipt. Only the fields you pass are changed. Returns the updated receipt including id, administration_id, contact_id, contact, reference, date, due_date. Use get_receipt first to read current values.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
receipt_idstringrequired- Id of the receipt. Use the matching list tool to find it. Example: 401892365587990113.
contact_idstring- Should be a valid contact id. Example: 401892365587990113.
currencystring- ISO three-character currency code, e.g. EUR or USD. Example: EUR.
datestring- The date of the receipt. Example: 2026-01-31.
details_attributesarray- Array of detail (line item) objects. Each line takes description, price (decimal string such as "125.00"), amount (quantity, default 1), tax_rate_id, ledger_account_id, product_id, project_id and period. To change an existing line on update, include its id; to remove one, include its id with _destroy set to true. Example: [{"description": "Consulting", "price": "125.00", "amount": "2", "tax_rate_id": "401892365587990113"}].
financial_account_idstring- Should be a valid financial account id. Example: 401892365587990113.
fiscal_allocations_attributesarray- Array of fiscal allocation lines, used to book partly private or partly deductible costs. Each line takes ledger_account_id, amount and optionally tax_rate_id. Most documents do not need this.
prices_are_incl_taxboolean- Whether the prices on the receipt are inclusive of tax. Example: false.
referencestring- A reference for this receipt, e.g. a receipt number or supplier name. Example: PO-2026-0042.
moneybird_update_recurring_sales_invoiceUpdate a recurring sales invoice template.WriteUpdate Recurring Sales Invoice
Update a recurring sales invoice template. Returns the updated recurring sales invoice including id, administration_id, contact_id, contact, contact_person_id, contact_person, workflow_id. Only the fields you pass are changed.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
recurring_sales_invoice_idstringrequired- Id of the recurring sales invoice. Use the matching list tool to find it. Example: 401892365587990113.
auto_sendboolean- When `true`, each generated invoice is automatically sent to the contact. Example: true.
contact_idstring- Should be a valid contact id. Example: 401892365587990113.
contact_person_idstring- Should be a valid contact person id. Example: 401892365587990113.
currencystring- ISO three-character currency code, e.g. EUR or USD. Example: EUR.
custom_fields_attributesarray- Array of custom field values. Each entry needs the custom field id (from list_custom_fields) and a value. Example: [{"id": "401892365587990113", "value": "PO-123"}].
desired_countstring- The maximum number of invoices to generate. Only applied when `has_desired_count` is `true`. Example: example.
details_attributesarray- Array of detail (line item) objects. Each line takes description, price (decimal string such as "125.00"), amount (quantity, default 1), tax_rate_id, ledger_account_id, product_id, project_id and period. To change an existing line on update, include its id; to remove one, include its id with _destroy set to true. Example: [{"description": "Consulting", "price": "125.00", "amount": "2", "tax_rate_id": "401892365587990113"}].
discountnumber- Discount percentage, e.g. 10,0%. Example: 10.
document_style_idstring- Should be a valid document style id. Example: 401892365587990113.
first_due_intervalinteger- The number of days after the invoice date before each generated invoice is due. Example: 14.
frequencystring- The interval multiplier. Combined with `frequency_type` to determine the billing cycle. Example: example.
frequency_typestring- Can be `day`, `week`, `month`, `quarter` or `year`. Example: example.
has_desired_countboolean- When `true`, the recurring invoice stops after `desired_count` invoices have been created. Example: true.
invoice_datestring- Should be in the future. Example: 2026-01-31.
mergeableboolean- When `true`, generated invoices may be merged with other mergeable invoices for the same contact, if they share the same workflow, layout, currency, language and other invoice settings. Example: true.
prices_are_incl_taxboolean- Whether the prices on generated invoices are inclusive of tax. Example: false.
referencestring- A reference to include on each generated invoice, e.g. a contract or project code. Example: PO-2026-0042.
update_contactboolean- When `true`, the contact's address and other details are refreshed from the current contact record each time a new invoice is generated. Example: true.
workflow_idstring- Should be a valid workflow id. Example: 401892365587990113.
moneybird_update_sales_invoiceUpdate a draft sales invoice.WriteUpdate Sales Invoice
Update a draft sales invoice. Only the fields you pass are changed. Returns the updated sales invoice including id, administration_id, contact_id, contact, contact_person_id, contact_person, invoice_id. Use get_sales_invoice first. Invoices that were already sent have limited editable fields.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
sales_invoice_idstringrequired- Id of the sales invoice. Use the matching list tool to find it. Example: 401892365587990113.
contact_idstring- The ID of the contact associated with the sales invoice. This is mandatory when setting the contact_person_id. Should be a valid contact id. Example: 401892365587990113.
contact_person_idstring- The ID of the contact person associated with the sales invoice. Should be a valid contact person id. Example: 401892365587990113.
currencystring- ISO three-character currency code, e.g. EUR or USD. Example: EUR.
custom_fields_attributesarray- Array of custom field values. Each entry needs the custom field id (from list_custom_fields) and a value. Example: [{"id": "401892365587990113", "value": "PO-123"}].
details_attributesarray- Array of detail (line item) objects. Each line takes description, price (decimal string such as "125.00"), amount (quantity, default 1), tax_rate_id, ledger_account_id, product_id, project_id and period. To change an existing line on update, include its id; to remove one, include its id with _destroy set to true. Example: [{"description": "Consulting", "price": "125.00", "amount": "2", "tax_rate_id": "401892365587990113"}].
discountnumber- Discount percentage applied to the entire invoice, e.g. `10.0` for 10%. Example: 10.
document_style_idstring- Default document style is used if value is not provided. Should be a valid document style id. Example: 401892365587990113.
first_due_intervalinteger- The number of days after the invoice date before the invoice is due. Example: 14.
invoice_datestring- The date of the invoice. Example: 2026-01-31.
invoice_sequence_idstring- The ID of the numbering sequence to use for the invoice number. Example: 401892365587990113.
original_estimate_idstring- The ID of the estimate this invoice was created from. Used to link an invoice to its originating estimate. Example: 401892365587990113.
payment_conditionsstring- Free-text payment conditions printed on the invoice, e.g. "Payment within 30 days". Example: Payable within 14 days..
prices_are_incl_taxboolean- Whether the prices on the invoice are inclusive of tax. Example: false.
referencestring- Your own reference for this invoice, e.g. a project code or PO number. Visible to the recipient. Example: PO-2026-0042.
remove_invoice_sequence_idstring- Set to `true` to remove the assigned numbering sequence, reverting to the administration default. Example: 401892365587990113.
time_entry_idsarray- Array of time entry ids to bill on this invoice. Use list_time_entries to find them. Example: ["401892365587990113"].
update_contactboolean- When `true`, the contact's address and other details are updated on the invoice from the current contact record. Example: true.
workflow_idstring- If value is not provided, the workflow saved in the contact is used. If the contact doesn't have a default workflow, the administration's default workflow is used. Should be a valid workflow id. Example: 401892365587990113.
moneybird_update_subscriptionUpdate a subscription, for example its end date or product.WriteUpdate Subscription
Update a subscription, for example its end date or product. Returns the updated subscription including id, administration_id, start_date, end_date, frequency, frequency_type, reference. Only the fields you pass are changed.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
subscription_idstringrequired- Id of the subscription. Use the matching list tool to find it. Example: 401892365587990113.
amountstring- Quantity of the product billed each period. Example: 1.
contact_person_idstring- Should be a valid contact person id. Example: 401892365587990113.
discountnumber- Both a decimal and a string '10,95' are accepted. Example: 10.
document_style_idstring- Should be a valid document style id. Example: 401892365587990113.
mergeableboolean- Merge invoices from this subscription with other mergeable invoices for the same contact before sending. Only applies when invoices are sent automatically. Example: true.
prices_are_incl_taxboolean- Whether the amounts on the generated invoices are inclusive of tax. Example: false.
product_idstring- Should be a valid product id. Example: 401892365587990113.
referencestring- Your own reference for this record, for example a project code or order number. Example: PO-2026-0042.
start_datestring- Date the subscription starts, formatted YYYY-MM-DD. Example: 2026-01-01.
moneybird_update_time_entryUpdate a time entry.WriteUpdate Time Entry
Update a time entry. Only the fields you pass are changed. Returns the updated time entry including id, administration_id, contact_id, project_id, sales_invoice_id, user_id, started_at. Use get_time_entry first to read current values.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
time_entry_idstringrequired- Id of the time entry. Use the matching list tool to find it. Example: 401892365587990113.
billableboolean- Whether this time entry is billable to the client. Example: true.
contact_idstring- Should be a valid contact id. Example: 401892365587990113.
descriptionstring- A description of how the time was spent. May be shown on the invoice. Example: Consulting services.
ended_atstring- The end time of the time entry. Rounded down to full minutes. A time entry without `ended_at` is considered a running (active) time entry. Example: example.
paused_durationinteger- Total paused duration in seconds, is rounded down to full minutes. Example: 10.
project_idstring- Should be a valid project id. Example: 401892365587990113.
sales_invoice_idstring- Should be a valid sales invoice id. Example: 401892365587990113.
started_atstring- The start time of the time entry. Rounded down to full minutes. Example: example.
moneybird_archive_contactArchive a contact so it no longer appears in default lists.DestructiveArchive Contact
Archive a contact so it no longer appears in default lists. Returns an empty body on success (HTTP 204). Prefer this over delete_contact for contacts that have linked records.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
contact_idstringrequired- Id of the contact. Use list_contacts to find it.
moneybird_delete_contactDelete a contact permanently.DestructiveDelete Contact
Delete a contact permanently. Returns an empty body on success (HTTP 204). Use archive_contact instead when the contact has invoices or other records.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
contact_idstringrequired- Id of the contact. Use list_contacts to find it.
moneybird_delete_estimateDelete an estimate.DestructiveDelete Estimate
Delete an estimate. Returns an empty body on success (HTTP 204). Use change_estimate_state to reject or archive an estimate you want to keep.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
estimate_idstringrequired- Printed estimate number, for example 2026-0001. Example: 2026-0001.
moneybird_delete_general_documentDelete a general document.DestructiveDelete General Document
Delete a general document. Returns an empty body on success (HTTP 204). Use only for documents entered by mistake.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
general_document_idstringrequired- Id of the general document. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_delete_general_journal_documentDelete a general journal document.DestructiveDelete General Journal Document
Delete a general journal document. Returns an empty body on success (HTTP 204). Use only for manual entries made by mistake.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
general_journal_document_idstringrequired- Id of the general journal document. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_delete_productDelete a product.DestructiveDelete Product
Delete a product. Returns an empty body on success (HTTP 204). Existing invoice lines that use the product are kept.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
product_idstringrequired- Id of the product. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_delete_purchase_invoiceDelete a purchase invoice.DestructiveDelete Purchase Invoice
Delete a purchase invoice. Returns an empty body on success (HTTP 204). Use only for bills entered by mistake.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
purchase_invoice_idstringrequired- Id of the purchase invoice. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_delete_purchase_invoice_paymentRemove a registered payment from a purchase invoice.DestructiveDelete Purchase Invoice Payment
Remove a registered payment from a purchase invoice. Returns an empty body on success (HTTP 204). Use to undo a payment registered by mistake.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
payment_idstringrequired- Id of the payment. Use the get tool of the parent record to see its payments. Example: 401892365587990113.
purchase_invoice_idstringrequired- Id of the purchase invoice. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_delete_receiptDelete a receipt.DestructiveDelete Receipt
Delete a receipt. Returns an empty body on success (HTTP 204). Use only for receipts entered by mistake.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
receipt_idstringrequired- Id of the receipt. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_delete_recurring_sales_invoiceDelete a recurring sales invoice template.DestructiveDelete Recurring Sales Invoice
Delete a recurring sales invoice template. Returns an empty body on success (HTTP 204). Already generated invoices are kept.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
recurring_sales_invoice_idstringrequired- Id of the recurring sales invoice. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_delete_sales_invoiceDelete a draft sales invoice.DestructiveDelete Sales Invoice
Delete a draft sales invoice. Returns an empty body on success (HTTP 204). Use create_credit_invoice instead for invoices that were already sent.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
sales_invoice_idstringrequired- Id of the sales invoice. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_delete_sales_invoice_paymentRemove a registered payment from a sales invoice.DestructiveDelete Sales Invoice Payment
Remove a registered payment from a sales invoice. Returns an empty body on success (HTTP 204). Use to undo a payment registered by mistake.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
payment_idstringrequired- Id of the payment. Use the get tool of the parent record to see its payments. Example: 401892365587990113.
sales_invoice_idstringrequired- Id of the sales invoice. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_delete_subscriptionCancel and delete a subscription.DestructiveDelete Subscription
Cancel and delete a subscription. Returns an empty body on success (HTTP 204). Use update_subscription to set an end date instead when you want to keep history.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
subscription_idstringrequired- Id of the subscription. Use the matching list tool to find it. Example: 401892365587990113.
end_datestring- Date the subscription ends, formatted YYYY-MM-DD. Leave empty for an open-ended subscription. Example: 2026-12-31.
moneybird_delete_time_entryDelete a time entry.DestructiveDelete Time Entry
Delete a time entry. Returns an empty body on success (HTTP 204). Use only for entries logged by mistake.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
time_entry_idstringrequired- Id of the time entry. Use the matching list tool to find it. Example: 401892365587990113.
moneybird_unlink_financial_mutation_bookingRemove a booking link from a financial mutation.DestructiveUnlink Financial Mutation Booking
Remove a booking link from a financial mutation. Returns an empty body on success (HTTP 204). Use to undo a reconciliation made by mistake.
- Idempotent
Inputs
administration_idstringrequired- Id of the Moneybird administration (bookkeeping account) to work in. Use list_administrations to find it.
booking_idstringrequired- A unique record identifier. Example: 401892365587990113.
booking_typestringrequired- Can be `Payment` or `LedgerAccountBooking`. Allowed values: Payment, LedgerAccountBooking.one of
PaymentLedgerAccountBooking financial_mutation_idstringrequired- Id of the financial mutation. Use the matching list tool to find it. Example: 401892365587990113.
No tools match.