# Freeagent

Cloud-based accounting software for freelancers and small businesses

- **Category:** accounting
- **Auth:** OAUTH2
- **Composio Managed App Available?** Yes
- **Tools:** 79
- **Triggers:** 0
- **Slug:** `FREEAGENT`
- **Version:** 20260212_00

## Tools

### Cashflow summary for a date range

**Slug:** `FREEAGENT_CASHFLOW_SUMMARY_FOR_A_GIVEN_DATE_RANGE`

Tool to retrieve cashflow summary for a given date range from FreeAgent. Use when you need to analyze cash inflow and outflow over a specific period. Provides net cashflow balance, incoming and outgoing totals, and monthly breakdowns.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to_date` | string | Yes | End date for the cashflow summary in YYYY-MM-DD format. This marks the end of the date range for which you want to retrieve cashflow data. |
| `from_date` | string | Yes | Start date for the cashflow summary in YYYY-MM-DD format. This marks the beginning of the date range for which you want to retrieve cashflow data. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Company Details

**Slug:** `FREEAGENT_COMPANY_DETAILS`

Tool to retrieve company details from FreeAgent. Use when you need information about the company's registration, accounting periods, or settings.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a Journal Set

**Slug:** `FREEAGENT_CREATE_A_JOURNAL_SET`

Tool to create a journal set in FreeAgent. Use when you need to create manual journal entries for accounting corrections or adjustments. All journal entries must balance to zero (total debits equal total credits).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `tag` | string | No | Tag to identify journal sets created by your application. Tagged journal sets can only be edited or deleted via the API. |
| `dated_on` | string | No | Date for the journal entries in YYYY-MM-DD format. If not specified, defaults to today's date. |
| `description` | string | Yes | Free-text description of the journal set to explain its purpose. |
| `journal_entries` | array | Yes | Array of journal entry objects. Each entry must have category and debit_value. The sum of all debit_value amounts must equal zero (balanced entries). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Sales Tax Period

**Slug:** `FREEAGENT_CREATE_A_SALES_TAX_PERIOD`

Tool to create a sales tax period in FreeAgent. Use when you need to establish a new sales tax period with specific rates and settings for tax reporting.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `is_locked` | boolean | No | Boolean to lock changes |
| `locked_reason` | string | No | Reason for locking |
| `effective_date` | string | Yes | When the period takes effect in YYYY-MM-DD format |
| `sales_tax_name` | string | Yes | Name of the sales tax (e.g., VAT, GST, Sales Tax) |
| `sales_tax_rate_1` | string | No | First tax rate as a decimal string |
| `sales_tax_rate_2` | string | No | Second tax rate as a decimal string |
| `sales_tax_rate_3` | string | No | Third tax rate as a decimal string |
| `sales_tax_is_value_added` | boolean | Yes | Boolean indicating tax reclaim eligibility |
| `sales_tax_registration_number` | string | No | Tax registration number (if required) |
| `sales_tax_registration_status` | string ("Not Registered" | "Registered") | Yes | Either 'Not Registered' or 'Registered' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Task Under Project

**Slug:** `FREEAGENT_CREATE_A_TASK_UNDER_A_CERTAIN_PROJECT`

Tool to create a task under a specific project in FreeAgent. Use when you need to add a new task to an existing project for tracking billable or non-billable work.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Name of the task |
| `status` | string | No | Task status (e.g., Active, Completed, Hidden). Defaults to Active if not specified. |
| `project` | string | Yes | URL of the project this task belongs to (e.g., https://api.freeagent.com/v2/projects/4547238) |
| `currency` | string | No | Currency code for billing (e.g., GBP, USD, EUR). Required if task is billable. |
| `is_billable` | boolean | No | Whether clients are charged for this task. Set to true if the task should be billed to clients. |
| `billing_rate` | string | No | Billing rate as decimal string (e.g., '50.0', '100.00'). Required if task is billable. |
| `billing_period` | string ("hour" | "day") | No | Billing period unit: 'hour' or 'day'. Required if task is billable. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create A Timeslip

**Slug:** `FREEAGENT_CREATE_A_TIMESLIP`

Tool to create a new timeslip in FreeAgent. Use when you need to log time worked on a project task by a specific user on a given date.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task` | string | Yes | The task URL that was worked on (e.g., https://api.freeagent.com/v2/tasks/789). This specifies the type of work performed. |
| `user` | string | Yes | The user URL who is logging the time (e.g., https://api.freeagent.com/v2/users/123). This identifies who performed the work. |
| `hours` | string | Yes | The number of hours worked as a string (e.g., '2.5' for 2 hours 30 minutes, '1.0' for 1 hour). Use decimal format. |
| `comment` | string | No | Optional free-text comment describing the work performed. Use this to add context or details about the timeslip. |
| `project` | string | Yes | The project URL this timeslip belongs to (e.g., https://api.freeagent.com/v2/projects/456). This links the time entry to a specific project. |
| `dated_on` | string | Yes | The date the work was performed in YYYY-MM-DD format. This cannot be in the future. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create a User

**Slug:** `FREEAGENT_CREATE_A_USER`

Tool to create a new user in FreeAgent. Use when you need to add a new team member with specific role and permissions. Requires 'Tax, Accounting & Users' permission level.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `role` | string ("Owner" | "Director" | "Partner" | "Company Secretary" | "Employee" | "Shareholder" | "Accountant") | Yes | User's role in the organization. Note: Certain roles cannot be set depending on company type (e.g., sole traders cannot have Directors or Partners). |
| `email` | string | Yes | Login email address for the new user |
| `last_name` | string | Yes | User's last name |
| `ni_number` | string | No | UK National Insurance Number |
| `first_name` | string | Yes | User's first name |
| `opening_mileage` | number | No | Opening mileage as of company start date |
| `send_invitation` | boolean | No | Whether to send a password setup invitation email to the new user |
| `permission_level` | integer | No | Access level for the user (0-8 scale): 0=No Access, 1=Time, 2=My Money, 3=Contacts & Projects, 4=Invoices/Estimates/Files, 5=Bills, 6=Banking, 7=Tax/Accounting/Users, 8=Full |
| `unique_tax_reference` | string | No | 10-digit UK Tax Reference number |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Bank Account

**Slug:** `FREEAGENT_CREATE_BANK_ACCOUNT`

Tool to create a bank account in FreeAgent. Use when you need to add a new bank account, PayPal account, or credit card account to track financial transactions.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the bank account |
| `type` | string ("StandardBankAccount" | "PaypalAccount" | "CreditCardAccount") | Yes | The type of bank account to create. StandardBankAccount is the default type for regular bank accounts, PaypalAccount for PayPal accounts (requires email field), and CreditCardAccount for credit card accounts (requires account_number field). |
| `email` | string | No | Email address for PayPal accounts. Required when type is 'PaypalAccount'. |
| `status` | string ("active" | "hidden") | No | The status of the account. Use 'active' for accounts in use or 'hidden' to hide the account. Defaults to 'active'. |
| `currency` | string | Yes | The currency code for the account (e.g., 'GBP', 'USD', 'EUR'). Must be a valid 3-letter ISO currency code. |
| `is_personal` | boolean | No | Whether the account is personal (true) or business (false). Defaults to false for business accounts. |
| `account_number` | string | No | Last 4 digits of the account number for credit card accounts. Required when type is 'CreditCardAccount'. |
| `opening_balance` | string | No | The opening balance of the account as a decimal string (e.g., '0.0', '1000.50'). Defaults to '0.0' if not provided. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Bill with Attachment

**Slug:** `FREEAGENT_CREATE_BILL_WITH_ATTACHMENT`

Tool to create a bill with optional attachment in FreeAgent. Use when you need to record a supplier bill with line items and optionally attach supporting documentation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `due_on` | string | Yes | Payment due date in YYYY-MM-DD format |
| `contact` | string | Yes | URI reference to the contact (supplier) associated with this bill |
| `dated_on` | string | Yes | Bill date in YYYY-MM-DD format |
| `reference` | string | Yes | Free-text reference identifier for the bill |
| `attachment` | object | No | Represents an attachment to be added to a bill. |
| `bill_items` | array | Yes | Array of bill item objects. Maximum 40 items per bill. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Category

**Slug:** `FREEAGENT_CREATE_CATEGORY`

Tool to create a custom category in FreeAgent. Use when you need to add a new category for classifying income or costs. Note that tax_reporting_name is required for cost_of_sales, admin_expenses, current_assets, and liabilities. The allowable_for_tax field is required for cost_of_sales and admin_expenses.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `description` | string | Yes | Category name to display in FreeAgent |
| `nominal_code` | string | Yes | Unique identifier code within the specified range. Income: 001-049, Cost of sales: 050-199, Admin expenses: 200-699, Drawings: 700-799, Assets: 800-900, Current assets: 901-999, Liabilities: 1000+ |
| `category_group` | string | Yes | Type designation: 'income', 'cost_of_sales', 'admin_expenses', 'current_assets', 'liabilities', etc. |
| `allowable_for_tax` | boolean | No | Required for cost_of_sales and admin_expenses categories. Indicates whether this cost is tax-deductible. |
| `tax_reporting_name` | string | No | Required for cost_of_sales, admin_expenses, current_assets, and liabilities categories. Statutory accounts reporting location. |
| `auto_sales_tax_rate` | string | No | VAT rate classification. Defaults to 'Standard rate' if not specified. Examples: 'Standard rate', 'Zero rate', 'Exempt' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Contact

**Slug:** `FREEAGENT_CREATE_CONTACT`

Tool to create a new contact in FreeAgent. Use when you need to add a new client, supplier, or business contact with their details.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `town` | string | No | Town or city name |
| `email` | string | No | Primary email address for the contact |
| `locale` | string | No | Locale code for invoice language and formatting preferences |
| `mobile` | string | No | Mobile phone number |
| `region` | string | No | Region, state, or county |
| `country` | string | No | Country name |
| `address1` | string | No | Address line 1 (street address) |
| `address2` | string | No | Address line 2 (additional address information) |
| `address3` | string | No | Address line 3 (additional address information) |
| `postcode` | string | No | Postal code or ZIP code |
| `last_name` | string | No | Contact's last name. Either first_name/last_name or organisation_name should be provided. |
| `first_name` | string | No | Contact's first name. Either first_name/last_name or organisation_name should be provided. |
| `phone_number` | string | No | Primary phone number |
| `billing_email` | string | No | Billing email address for invoices and financial communications |
| `charge_sales_tax` | string | No | Sales tax charging mode: Auto (based on location), Always (always charge), or Never (never charge) |
| `organisation_name` | string | No | Organization or company name. Either first_name/last_name or organisation_name should be provided. |
| `contact_name_on_invoices` | boolean | No | Whether to display contact name with organization name on invoices. Set to true to show both. |
| `default_payment_terms_in_days` | integer | No | Default payment terms duration in days for invoices sent to this contact |
| `sales_tax_registration_number` | string | No | Sales tax or VAT registration number for the contact |
| `uses_contact_invoice_sequence` | boolean | No | Whether this contact uses a separate invoice numbering sequence. Set to true for contact-specific numbering. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Credit Note

**Slug:** `FREEAGENT_CREATE_CREDIT_NOTE`

Tool to create a credit note in FreeAgent. Use when you need to issue a credit note to a contact for refunds or adjustments. The credit note is created with 'Draft' status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `due_on` | string | No | Due date in YYYY-MM-DD format |
| `contact` | string | Yes | URI reference to the contact being credited (e.g., https://api.freeagent.com/v2/contacts/123) |
| `project` | string | No | URI reference to project |
| `comments` | string | No | Additional comments for the credit note |
| `currency` | string | No | Currency code (e.g., GBP, USD, EUR). Defaults to company's native currency |
| `dated_on` | string | Yes | Date of the credit note in YYYY-MM-DD format |
| `reference` | string | No | Credit note reference number (auto-generated if omitted) |
| `omit_header` | boolean | No | Boolean flag to hide logo/address on credit note |
| `bank_account` | string | No | URI reference to bank account for remittance advice |
| `discount_percent` | string | No | Discount percentage as decimal string |
| `credit_note_items` | array | No | Array of line items for the credit note |
| `payment_terms_in_days` | integer | Yes | Payment terms in days (set to 0 for 'Due on Receipt') |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Credit Note Reconciliation

**Slug:** `FREEAGENT_CREATE_CREDIT_NOTE_RECONCILIATION`

Tool to create a credit note reconciliation in FreeAgent. Use when you need to reconcile a credit note against an invoice, offsetting the invoice amount with the credit note.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `invoice` | string | Yes | Full URL reference to the invoice being reconciled (e.g., 'https://api.freeagent.com/v2/invoices/123'). This is the invoice that will be offset by the credit note. |
| `currency` | string | Yes | The currency code for the reconciliation (e.g., 'GBP', 'USD', 'EUR'). Must be a valid 3-letter ISO currency code. |
| `dated_on` | string | Yes | The date of the reconciliation in YYYY-MM-DD format. This is the effective date when the reconciliation occurs. |
| `credit_note` | string | Yes | Full URL reference to the credit note being applied (e.g., 'https://api.freeagent.com/v2/credit_notes/123'). This credit note will be used to offset the specified invoice. |
| `gross_value` | string | Yes | The gross value of the reconciliation as a decimal string (e.g., '25.0', '100.50'). This is the amount being reconciled between the credit note and invoice. |
| `exchange_rate` | string | Yes | The exchange rate as a decimal string for conversion to the company's native currency (e.g., '1.0' for same currency, '1.25' for foreign exchange). Use '1.0' when the currency matches the company's base currency. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Estimate

**Slug:** `FREEAGENT_CREATE_ESTIMATE`

Tool to create a new estimate in FreeAgent. Use when you need to create an estimate, quote, or proposal for a client. Requires contact, reference, date, type, status, and at least one estimate item with position, item_type, quantity, price, and description.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `notes` | string | No | Additional notes or description for the estimate |
| `status` | string | Yes | Initial status of the estimate. Must be one of: Draft, Sent, Open, Approved, Rejected, Invoiced |
| `contact` | string | Yes | URI of the contact for whom the estimate is created (e.g., https://api.freeagent.com/v2/contacts/123) |
| `project` | string | No | URI of the project to associate with the estimate (e.g., https://api.freeagent.com/v2/projects/123) |
| `currency` | string | No | Currency code for the estimate (e.g., GBP, USD, EUR). If not specified, defaults to the contact's currency |
| `dated_on` | string | Yes | Date of the estimate in YYYY-MM-DD format |
| `ec_status` | string | No | VAT status for reporting purposes. One of: UK/Non-EC, EC Goods, EC Services, Reverse Charge, EC VAT MOSS |
| `reference` | string | Yes | Free-text reference identifier for the estimate |
| `estimate_type` | string | Yes | Type of estimate document. Must be one of: Estimate, Quote, or Proposal |
| `estimate_items` | array | Yes | List of items to include in the estimate. At least one item is required. |
| `place_of_supply` | string | No | Place of supply for VAT purposes. Required when ec_status is 'EC VAT MOSS' |
| `discount_percent` | string | No | Discount percentage applied across the entire estimate as a decimal string |
| `client_contact_name` | string | No | Overrides the default contact name on the estimate |
| `include_sales_tax_on_total_value` | boolean | No | Whether sales tax should be included in the total value. Defaults to true |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Estimate Item

**Slug:** `FREEAGENT_CREATE_ESTIMATE_ITEM`

Tool to create an estimate item in FreeAgent. Use when you need to add a line item to an existing estimate with details like position, type, quantity, price, and optional description.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `estimate` | string | Yes | URL of the estimate where the item should be added. |
| `estimate_item` | object | Yes | Details of the estimate item to create including position, type, quantity, and price. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Duplicate Estimate

**Slug:** `FREEAGENT_CREATE_ESTIMATES_DUPLICATE`

Tool to duplicate an existing estimate in FreeAgent. Use when you need to create a copy of an estimate. The duplicated estimate will always have status=Draft, the next reference in the sequence, and dated_on set to today.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the estimate to duplicate |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Send Estimate Email

**Slug:** `FREEAGENT_CREATE_ESTIMATES_SEND_EMAIL`

Tool to email an estimate in FreeAgent. Use when you need to send an estimate to a contact via email with customizable subject, body, and attachments. You can use an existing email template (use_template=true) or provide manual email fields.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The estimate identifier (numeric ID or full URL path) |
| `estimate` | object | Yes | Root object containing email configuration |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Invoice

**Slug:** `FREEAGENT_CREATE_INVOICE`

Tool to create an invoice in FreeAgent. Use when you need to generate a new invoice for a contact. The invoice will be created in 'Draft' status and can be modified or sent later.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `due_on` | string | Yes | Due date in YYYY-MM-DD format |
| `contact` | string | Yes | URL of the contact being invoiced (e.g., https://api.freeagent.com/v2/contacts/123) |
| `comments` | string | No | Invoice comments or notes |
| `currency` | string | No | Currency code (e.g., 'GBP', 'USD', 'EUR'). Defaults to company native currency if not provided. |
| `dated_on` | string | Yes | Invoice date in YYYY-MM-DD format |
| `reference` | string | No | Invoice reference number (optional, auto-generated if omitted) |
| `invoice_items` | array | No | Array of invoice line items to add to the invoice |
| `send_reminder_emails` | boolean | No | Send payment reminder emails |
| `payment_terms_in_days` | integer | Yes | Payment term duration in days |
| `send_thank_you_emails` | boolean | No | Send thank you emails after payment |
| `send_new_invoice_emails` | boolean | No | Send new invoice notification emails to the contact |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Invoice Item

**Slug:** `FREEAGENT_CREATE_INVOICE_ITEM`

Tool to create an invoice item in FreeAgent. Use when you need to add a line item to an existing invoice with details like type, quantity, price, and description.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `invoice` | string | Yes | URL of the invoice where the item should be added. |
| `invoice_item` | object | Yes | Details of the invoice item to create including type, quantity, price, and description. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Duplicate Invoice

**Slug:** `FREEAGENT_CREATE_INVOICES_DUPLICATE`

Tool to duplicate an existing invoice in FreeAgent. Use when you need to create a new invoice based on an existing one. The duplicated invoice is always created with status 'Draft', today's date, and the next reference number in sequence.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the invoice to duplicate. Extract from invoice URL (e.g., '85939041' from 'https://api.freeagent.com/v2/invoices/85939041') |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Note

**Slug:** `FREEAGENT_CREATE_NOTES`

Tool to create a note for a contact or project in FreeAgent. Use when you need to add documentation, reminders, or context to contacts or projects.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `note` | string | Yes | The text content of the note to create |
| `contact` | string | No | URL of the contact to attach the note to (e.g., https://api.freeagent.com/v2/contacts/123). Either contact or project is required. |
| `project` | string | No | URL of the project to attach the note to (e.g., https://api.freeagent.com/v2/projects/123). Either contact or project is required. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Price List Item

**Slug:** `FREEAGENT_CREATE_PRICE_LIST_ITEMS`

Tool to create a price list item in FreeAgent. Use when you need to add a new item to the price list with code, description, pricing, and tax information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `code` | string | Yes | Unique identifier code for the item. Used for invoice/estimate reference. |
| `price` | string | Yes | Unit price per item as a decimal string in the company currency. |
| `category` | string | No | Income accounting category URI reference. Must be a valid FreeAgent category API URL. |
| `quantity` | string | Yes | Item quantity as a decimal string. For single items, use '1.0'. |
| `item_type` | string | Yes | Category of the item such as Products, Services, Hours, Days, etc. |
| `vat_status` | string | No | VAT status for UK accounts. Options: 'standard', 'reduced', 'zero', or 'out_of_scope'. Leave empty for non-UK accounts. |
| `description` | string | Yes | Free-text description of the item. |
| `sales_tax_rate` | string | No | Sales tax rate as a decimal string for Universal/US accounts. For example, '0.20' for 20% tax. Leave empty for UK accounts. |
| `second_sales_tax_rate` | string | No | Secondary sales tax rate as a decimal string for Universal accounts with multiple tax jurisdictions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Project

**Slug:** `FREEAGENT_CREATE_PROJECT`

Tool to create a project in FreeAgent. Use when you need to set up a new project for tracking time, expenses, and billing against a specific client or internal initiative.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | Free-text project name |
| `budget` | number | Yes | Project budget amount (use zero if none exists). Must be non-negative. |
| `status` | string ("Active" | "Completed" | "Cancelled" | "Hidden") | Yes | Project status. Active = in progress, Completed = finished, Cancelled = abandoned, Hidden = archived from view. |
| `contact` | string | Yes | Contact to bill for the project - URI reference like https://api.freeagent.com/v2/contacts/{id} |
| `ends_on` | string | No | Project end date in YYYY-MM-DD format |
| `is_ir35` | boolean | No | Indicates IR35 employment classification status for UK tax purposes |
| `currency` | string | Yes | ISO currency code (e.g., USD, GBP, EUR). Must be a valid 3-letter ISO currency code. |
| `starts_on` | string | No | Project start date in YYYY-MM-DD format |
| `budget_units` | string ("Hours" | "Days" | "Monetary") | Yes | Budget tracking unit. Hours = time-based in hours, Days = time-based in days, Monetary = financial amount. |
| `hours_per_day` | number | No | Daily hours for day-based billing. Typically 7.5 or 8.0. Must be positive. |
| `billing_period` | string ("hour" | "day") | No | Billing period for the normal_billing_rate. Required when normal_billing_rate is specified. |
| `normal_billing_rate` | number | No | Standard billing rate amount. Must be non-negative. |
| `contract_po_reference` | string | No | Contract or purchase order reference number |
| `uses_project_invoice_sequence` | boolean | Yes | Indicates if invoicing follows project-level sequencing. Set to true for project-specific invoice numbering, false to use company-wide sequence. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Bank Transaction Explanation

**Slug:** `FREEAGENT_DELETE_BANK_TRANSACTION`

Tool to delete a bank transaction explanation in FreeAgent. Use when you need to remove an explanation from a bank transaction.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the bank transaction explanation to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Estimates Default Additional Text

**Slug:** `FREEAGENT_DELETE_ESTIMATES_DEFAULT_ADDITIONAL_TEXT`

Tool to delete default additional text for estimates in FreeAgent. Use when you need to remove the default additional text that appears on estimates.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Note

**Slug:** `FREEAGENT_DELETE_NOTES1`

Tool to delete a note by its ID. Use when you need to permanently remove a note from FreeAgent.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the note to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Invoice Timeline

**Slug:** `FREEAGENT_GET_INVOICE_TIMELINE`

Tool to retrieve invoice timeline showing chronological record of invoice-related events. Use when you need to track invoice payment history and related activities.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Mileage Settings

**Slug:** `FREEAGENT_GET_MILEAGE_SETTINGS`

Tool to retrieve mileage settings including engine type/size options and reimbursement rates. Use when you need to determine valid engine configurations or current mileage rates for expense claims.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Opening Balances

**Slug:** `FREEAGENT_GET_OPENING_BALANCES`

Tool to retrieve the Opening Balances journal set for a company. Use when you need to access initial account balances including journal entries, bank accounts, and stock items.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Personal Profile

**Slug:** `FREEAGENT_GET_PERSONAL_PROFILE`

Tool to retrieve the authenticated user's personal profile from FreeAgent. Use when you need information about the current user's details, role, or permissions.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get the Opening Balances

**Slug:** `FREEAGENT_GET_THE_OPENING_BALANCES`

Tool to retrieve the opening balances from the trial balance summary. Use when you need to get the initial balance amounts for all account categories at the start of the accounting period.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get the P&L summary

**Slug:** `FREEAGENT_GET_THE_PL_SUMMARY`

Tool to retrieve the Profit and Loss summary for a specified period from FreeAgent. Use when you need financial performance overview including income, expenses, and retained profit.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to_date` | string | No | End date in YYYY-MM-DD format. Defaults to today if not specified. Date periods must be ≤12 months or within a single accounting year. |
| `from_date` | string | No | Start date in YYYY-MM-DD format. Defaults to start of current accounting period if not specified. Date periods must be ≤12 months or within a single accounting year. |
| `accounting_period` | string | No | Accounting period in YYYY/YY format (e.g., 2022/23). Alternative to using from_date and to_date. Cannot be used together with from_date or to_date. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Trial Balance Summary

**Slug:** `FREEAGENT_GET_THE_TRIAL_BALANCE_SUMMARY`

Tool to get the trial balance summary from FreeAgent. Use when you need to retrieve the trial balance report data for accounting purposes.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to_date` | string | No | End date in YYYY-MM-DD format. When used alone, returns trial balance from accounting period start to this date. When not specified, uses current date. |
| `from_date` | string | No | Start date in YYYY-MM-DD format. When combined with to_date, returns trial balance for custom date range. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Balance Sheet

**Slug:** `FREEAGENT_LIST_ACCOUNTING_BALANCE_SHEET`

Tool to retrieve the balance sheet for a FreeAgent account. Use when you need to get financial position data including assets, liabilities, and equity. Returns balance sheet data for the specified date or current date if not specified.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `as_at_date` | string | No | Date for which balance sheet values are calculated. Format: YYYY-MM-DD. If not specified, returns values as at current date from the accounting period start. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Opening Balances

**Slug:** `FREEAGENT_LIST_ACCOUNTING_BALANCE_SHEET2`

Tool to retrieve opening balances for the balance sheet from FreeAgent. Use when you need to get the initial financial position values including capital assets, current assets, liabilities, and equity.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Accounting Transactions

**Slug:** `FREEAGENT_LIST_ACCOUNTING_TRANSACTIONS`

Tool to list all accounting transactions from FreeAgent. Use when you need to retrieve transaction history for accounting purposes. Filter by date range or nominal code to narrow results.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to_date` | string | No | End of transaction period in YYYY-MM-DD format. Requested date periods must be equal or less than 12 months or be contained within a single accounting year. Example: '2024-12-31' |
| `from_date` | string | No | Start of transaction period in YYYY-MM-DD format. Requested date periods must be equal or less than 12 months or be contained within a single accounting year. Example: '2024-01-01' |
| `nominal_code` | string | No | Filter transactions by nominal code. Use this to retrieve transactions for a specific accounting category. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List All CIS Bands

**Slug:** `FREEAGENT_LIST_ALL_CIS_BANDS_FOR_A_COMPANY`

Tool to list all CIS (Construction Industry Scheme) bands for a company. Use when you need to retrieve the available CIS bands configured for a UK company enrolled in CIS for Subcontractors. The bands include gross, standard, and higher rate bands with their respective deduction rates and nominal codes.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List All Expenses

**Slug:** `FREEAGENT_LIST_ALL_EXPENSES`

Tool to list all expenses from FreeAgent. Use when you need to retrieve expense records, optionally filtered by view type (recent/recurring), date range, project, or last update timestamp.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `view` | string | No | Filter type: 'recent' displays only recent expenses, 'recurring' shows recurring expenses. Leave empty for all expenses. |
| `project` | string | No | Filter by specific project URI. Use the full project URI from FreeAgent API (e.g., 'https://api.freeagent.com/v2/projects/123'). |
| `to_date` | string | No | End date for expense range in YYYY-MM-DD format. Use to filter expenses up to this date. |
| `from_date` | string | No | Start date for expense range in YYYY-MM-DD format. Use to filter expenses from this date onwards. |
| `updated_since` | string | No | ISO 8601 timestamp filter to return only expenses modified after this datetime. Format: YYYY-MM-DDTHH:MM:SSZ |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List All Price List Items

**Slug:** `FREEAGENT_LIST_ALL_PRICE_LIST_ITEMS`

Tool to list all price list items from FreeAgent. Use when you need to retrieve all price list items with optional sorting by creation date, code, or update date.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string ("created_at" | "-created_at" | "code" | "-code" | "updated_at" | "-updated_at") | No | Sort order for the results. Options: 'created_at' (default) orders by creation time, 'code' orders by item code, 'updated_at' orders by modification timestamp. Prepend with '-' (e.g., '-created_at') to reverse the order. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List All Properties

**Slug:** `FREEAGENT_LIST_ALL_PROPERTIES`

Tool to list all properties in FreeAgent. Use when you need to retrieve property records for UK unincorporated landlord companies. Supports pagination for large result sets.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. Default is 1. |
| `per_page` | integer | No | Number of records to return per page. Maximum 100, default 25. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List All Recurring Invoices

**Slug:** `FREEAGENT_LIST_ALL_RECURRING_INVOICES`

Tool to retrieve a list of recurring invoices from FreeAgent. Use when you need to query recurring invoices by status or contact. Supports filtering by draft, active, or inactive status and can include nested invoice line items.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `view` | string ("draft" | "active" | "inactive") | No | Filter by invoice status: draft (draft recurring invoices), active (active recurring invoices), inactive (inactive recurring invoices) |
| `contact` | string | No | Filter by contact URL (e.g., 'https://api.freeagent.com/v2/contacts/123') |
| `nested_invoice_items` | boolean | No | Include nested invoice items in the response. When true, invoice_items array will be populated with line items |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List All Sales Tax Periods

**Slug:** `FREEAGENT_LIST_ALL_SALES_TAX_PERIODS_FOR_A_COMPANY`

Tool to list all sales tax periods for a company in FreeAgent. Use when you need to retrieve sales tax configuration history including rates, registration status, and effective dates. Available for US and Universal companies only.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List All Stock Items

**Slug:** `FREEAGENT_LIST_ALL_STOCK_ITEMS`

Tool to list all stock items from FreeAgent. Use when you need to retrieve stock items with optional sorting by creation date, description, or update date.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string ("created_at" | "-created_at" | "description" | "-description" | "updated_at" | "-updated_at") | No | Sort order for the results. Options: 'created_at' (default) orders by creation time, 'description' orders alphabetically by item description, 'updated_at' orders by modification timestamp. Prepend with '-' (e.g., '-created_at') to reverse the order. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List All Tasks

**Slug:** `FREEAGENT_LIST_ALL_TASKS`

Tool to list all tasks in FreeAgent. Use when you need to retrieve tasks with optional filtering by status, project, or update date, and sorting options.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string ("name" | "project" | "billing_rate" | "created_at" | "updated_at") | No | Sort order for tasks: name (default), project, billing_rate, created_at, updated_at |
| `view` | string ("all" | "active" | "completed" | "hidden") | No | Filter tasks by status: all (default), active, completed, hidden |
| `project` | string | No | Filter tasks by project URL (e.g., https://api.freeagent.com/v2/projects/2) |
| `updated_since` | string | No | Filter tasks updated since this date. ISO date format (e.g., 2017-04-06) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List All Timeslips

**Slug:** `FREEAGENT_LIST_ALL_TIMESLIPS`

Tool to list all timeslips from FreeAgent. Use when you need to retrieve time tracking records with optional filtering by date range, user, project, task, billing status, or last update timestamp.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `task` | string | No | Filter by task URI. Use the full task URI from FreeAgent API (e.g., 'https://api.freeagent.com/v2/tasks/456'). |
| `user` | string | No | Filter by user URI. Use the full user URI from FreeAgent API (e.g., 'https://api.freeagent.com/v2/users/123'). |
| `view` | string | No | Filter timeslips by status: 'all' (default), 'unbilled', or 'running'. Use 'unbilled' for timeslips not yet invoiced, 'running' for active timers. |
| `nested` | boolean | No | Return associated resources (user, project, task) as nested JSON objects instead of URI references. Set to true for detailed nested data. |
| `project` | string | No | Filter by project URI. Use the full project URI from FreeAgent API (e.g., 'https://api.freeagent.com/v2/projects/789'). |
| `to_date` | string | No | Filter by end date in YYYY-MM-DD format. Returns timeslips up to this date. |
| `from_date` | string | No | Filter by start date in YYYY-MM-DD format. Returns timeslips from this date onwards. |
| `updated_since` | string | No | Filter by update timestamp in ISO 8601 format. Returns only timeslips updated after this datetime. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List All Users

**Slug:** `FREEAGENT_LIST_ALL_USERS`

Tool to list users in FreeAgent. Use when you need to retrieve users with optional filtering by type (all, staff, advisors). Requires 'Tax, Accounting & Users' permission scope.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `view` | string ("all" | "staff" | "active_staff" | "advisors" | "active_advisors") | No | Filter users by type. Options: 'all' (show all users, default), 'staff' (show users with a role as an Owner, Director, Partner, Company Secretary, Employee or Shareholder), 'active_staff' (show non-hidden users with staff roles), 'advisors' (show users with an Accountant role), 'active_advisors' (show non-hidden users with Accountant role) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Bank Accounts

**Slug:** `FREEAGENT_LIST_BANK_ACCOUNTS`

Tool to list bank accounts in FreeAgent. Use when you need to retrieve all bank accounts or filter by account type (standard, credit card, or PayPal).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `view` | string ("standard_bank_accounts" | "credit_card_accounts" | "paypal_accounts") | No | Filter results by account type: standard_bank_accounts, credit_card_accounts, or paypal_accounts. If not provided, returns all account types. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Bank Feeds

**Slug:** `FREEAGENT_LIST_BANK_FEEDS`

Tool to list all bank feeds for a company. Use when you need to retrieve the list of bank feeds and their current status.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Bank Transactions

**Slug:** `FREEAGENT_LIST_BANK_TRANSACTIONS`

Tool to list all bank transactions under a certain bank account in FreeAgent. Use when you need to retrieve transaction history, reconcile accounts, or find specific transactions for a bank account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `view` | string ("all" | "unexplained" | "explained" | "manual" | "imported" | "marked_for_review") | No | Filter transactions by status. 'all' returns all transactions (default), 'unexplained' returns transactions requiring explanation, 'explained' returns fully explained transactions, 'manual' returns manually entered transactions, 'imported' returns imported transactions from bank feeds, 'marked_for_review' returns transactions flagged for review. |
| `to_date` | string | No | End date for filtering transactions in YYYY-MM-DD format. Returns transactions dated on or before this date. |
| `from_date` | string | No | Start date for filtering transactions in YYYY-MM-DD format. Returns transactions dated on or after this date. |
| `bank_account` | string | Yes | The bank account URL identifier (e.g., 'https://api.freeagent.com/v2/bank_accounts/1840732'). This is required to filter transactions for a specific bank account. |
| `last_uploaded` | boolean | No | If true, returns only transactions from the most recently uploaded bank statement. Useful for processing new transactions. |
| `updated_since` | string | No | Returns transactions updated after this timestamp. Must be in ISO 8601 format (e.g., '2024-01-15T10:30:00Z'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Bills

**Slug:** `FREEAGENT_LIST_BILLS`

Tool to retrieve a list of bills from FreeAgent. Use when you need to view bills with optional filters by status, date range, contact, or project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `view` | string | No | Filter by status: all, open, overdue, open_or_overdue, paid, recurring, hire_purchase, cis. |
| `contact` | string | No | Filter by contact API URL. |
| `project` | string | No | Filter by project API URL. |
| `to_date` | string | No | End date filter in YYYY-MM-DD format. |
| `from_date` | string | No | Start date filter in YYYY-MM-DD format. |
| `updated_since` | string | No | Filter by update time in ISO 8601 timestamp format. |
| `nested_bill_items` | boolean | No | Include bill items in response when set to true. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Business Categories

**Slug:** `FREEAGENT_LIST_BUSINESS_CATEGORIES`

Tool to retrieve all available business categories from FreeAgent. Use when you need to get the complete list of industry classifications for company categorization.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Categories

**Slug:** `FREEAGENT_LIST_CATEGORIES`

Tool to retrieve all categories for the current FreeAgent company. Categories are used to classify income or costs for estimate items, invoice items, expenses, bills, and bank transaction explanations. Returns four category sets: admin expenses, cost of sales, income, and general. Use sub_accounts parameter to include sub-accounts instead of top-level accounts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sub_accounts` | boolean | No | When set to true, includes sub accounts in the response instead of top-level accounts where they exist. Sub accounts can be identified by a nominal code containing a dash (e.g., '602-1'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Contacts

**Slug:** `FREEAGENT_LIST_CONTACTS`

Tool to list contacts in FreeAgent. Use when you need to retrieve contacts with optional filtering by type, sort order, or update date.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string | No | Sort order: name (default), created_at, updated_at. Prefix with - for descending order (e.g., -name) |
| `view` | string | No | Filter contacts by type: all, active (default), clients, suppliers, active_projects, completed_projects, open_clients, open_suppliers, hidden |
| `updated_since` | string | No | ISO 8601 format datetime - only return contacts updated since the provided date and time |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Credit Note Reconciliations

**Slug:** `FREEAGENT_LIST_CREDIT_NOTE_RECONCILIATIONS`

Tool to retrieve all credit note reconciliations from FreeAgent. Use when you need to list credit notes that have been reconciled against invoices. Optionally filter by update timestamp or date range.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `to_date` | string | No | Filter by reconciliation date to (inclusive) in YYYY-MM-DD format. Only returns reconciliations dated on or before this date. |
| `from_date` | string | No | Filter by reconciliation date from (inclusive) in YYYY-MM-DD format. Only returns reconciliations dated on or after this date. |
| `updated_since` | string | No | Filter by update timestamp in ISO 8601 format (e.g., 2017-05-22T09:00:00.000Z). Only returns reconciliations updated after this timestamp. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Credit Notes

**Slug:** `FREEAGENT_LIST_CREDIT_NOTES`

Tool to list credit notes from FreeAgent. Use when you need to retrieve credit notes with optional filtering by contact, project, status, or date range. Requires 'Estimates and Invoices' permission.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string | No | Sort results by 'created_at' or 'updated_at'. Prefix with hyphen for descending order (e.g., '-updated_at') |
| `view` | string ("all" | "recent_open_or_overdue" | "open" | "overdue" | "open_or_overdue" | "draft" | "refunded") | No | Filter results by view type. Options: 'all' (default), 'recent_open_or_overdue', 'open', 'overdue', 'open_or_overdue', 'draft', 'refunded'. You can also use 'last_N_months' format like 'last_3_months'. |
| `contact` | string | No | Filter by specific contact URL (e.g., 'https://api.freeagent.com/v2/contacts/123') |
| `project` | string | No | Filter by specific project URL (e.g., 'https://api.freeagent.com/v2/projects/456') |
| `updated_since` | string | No | Retrieve records modified after specified timestamp (ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ) |
| `nested_credit_note_items` | boolean | No | When true, includes credit note items nested in response. Increases payload size but eliminates need for separate item requests. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List EC MOSS Sales Tax Rates

**Slug:** `FREEAGENT_LIST_EC_MOSS_SALES_TAX_RATES`

Tool to retrieve EC VAT MOSS sales tax rates for a specific EU country and date. Use when you need to determine the applicable VAT rates for cross-border digital services within the EU.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `date` | string | Yes | Transaction date in YYYY-MM-DD format. Required to retrieve the tax rates that were applicable on that specific date. |
| `country` | string | Yes | An EU member state name (e.g., Austria, France, Germany, Spain, Italy). Required to retrieve the applicable VAT rates for that country. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Estimates

**Slug:** `FREEAGENT_LIST_ESTIMATES`

Tool to list estimates in FreeAgent. Use when you need to retrieve estimates with optional filtering by status, date range, contact, project, or invoice. Set nested_estimate_items to true to include estimate items in the response.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `view` | string | No | Filter estimates by status: all (default), recent, draft, non_draft, sent, approved, rejected, invoiced |
| `contact` | string | No | Filter estimates for a specific contact. Provide the contact URI |
| `invoice` | string | No | Filter estimates related to a specific invoice. Provide the invoice URI |
| `project` | string | No | Filter estimates for a specific project. Provide the project URI |
| `to_date` | string | No | Filter estimates up to this date. Format: YYYY-MM-DD |
| `from_date` | string | No | Filter estimates from this date onwards. Format: YYYY-MM-DD |
| `updated_since` | string | No | Returns estimates updated after specified timestamp. Format: ISO 8601 timestamp |
| `nested_estimate_items` | boolean | No | Include estimate items nested within each estimate in the response. Set to true to eliminate the need for separate requests to retrieve estimate items |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Default Estimates Additional Text

**Slug:** `FREEAGENT_LIST_ESTIMATES_DEFAULT_ADDITIONAL_TEXT`

Tool to retrieve the default additional text for estimates. Use when you need to get the default text that appears on all estimate documents.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Final Accounts Reports

**Slug:** `FREEAGENT_LIST_FINAL_ACCOUNTS_REPORTS`

Tool to list final accounts reports for a company in FreeAgent. Use when you need to retrieve all final accounts reports with their filing status and period dates.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Hire Purchases

**Slug:** `FREEAGENT_LIST_HIRE_PURCHASES`

Tool to retrieve all hire purchases for the authorized FreeAgent account. Use when you need to view existing hire purchase agreements. Requires 'Bills' access level and is only available for UK companies.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Default Additional Text

**Slug:** `FREEAGENT_LIST_INVOICES_DEFAULT_ADDITIONAL_TEXT`

Tool to get the default additional text shown on all invoices. Use when you need to retrieve the default invoice text.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Notes

**Slug:** `FREEAGENT_LIST_NOTES`

Tool to retrieve a list of notes for a contact or project. Use when you need to view all notes associated with a specific contact or project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `contact` | string | No | Filter notes by contact URL (e.g., https://api.freeagent.com/v2/contacts/123). Either contact or project can be specified, not both. |
| `project` | string | No | Filter notes by project URL (e.g., https://api.freeagent.com/v2/projects/456). Either contact or project can be specified, not both. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Projects

**Slug:** `FREEAGENT_LIST_PROJECTS`

Tool to list projects in FreeAgent. Use when you need to retrieve projects with optional filtering by status and sorting. Requires 'Contacts and Projects' permission scope.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `sort` | string | No | Order by: name, contact_name, contact_display_name, created_at, or updated_at. Prefix with '-' for descending order (e.g., '-created_at'). |
| `view` | string ("active" | "completed" | "cancelled" | "hidden") | No | Filter by status: active, completed, cancelled, hidden. If not specified, returns all projects. |
| `nested` | boolean | No | Include full contact details as nested object. If false or not specified, returns only contact URL reference. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List VAT Returns

**Slug:** `FREEAGENT_LIST_VAT_RETURNS`

Tool to list VAT returns for a company in FreeAgent. Use when you need to retrieve VAT return records, their filing status, and payment information.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Show Tax Timeline

**Slug:** `FREEAGENT_SHOW_TAX_TIMELINE`

Tool to retrieve the company's tax timeline showing upcoming tax events and deadlines. Use when you need to view VAT returns, corporation tax payments, Companies House filings, and other tax-related events with their due dates and amounts.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Bank Transaction Explanation

**Slug:** `FREEAGENT_UPDATE_BANK_TRANSACTION_EXPLANATIONS`

Tool to update a bank transaction explanation in FreeAgent. Use when you need to modify an existing explanation's details such as description, category, amounts, or tax information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The numeric identifier of the bank transaction explanation to update. This is the ID from the explanation's URL. |
| `bank_transaction_explanation` | object | Yes | Root element containing the bank transaction explanation data to update. Include only the fields you want to modify. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Estimates Default Additional Text

**Slug:** `FREEAGENT_UPDATE_ESTIMATES_DEFAULT_ADDITIONAL_TEXT`

Tool to update the default additional text for estimates in FreeAgent. Use when you need to set or change the standard text that appears on all estimates.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `default_additional_text` | string | Yes | The text to display on all estimates. Use this to set standard terms, conditions, or instructions for estimate recipients. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Convert Estimate to Invoice

**Slug:** `FREEAGENT_UPDATE_ESTIMATES_TRANSITIONS_CONVERT`

Tool to convert an estimate to an invoice in FreeAgent. Use when an estimate has been approved and needs to be converted into a billable invoice. The estimate's status will transition to 'Invoiced' and a new invoice will be created automatically.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the estimate to convert to an invoice. Can be the numeric ID or full URL path. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Expense

**Slug:** `FREEAGENT_UPDATE_EXPENSES`

Tool to update an existing expense in FreeAgent. Use when you need to modify expense details such as description, amount, date, category, or tax information. Only the fields you provide will be updated; omitted fields remain unchanged.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the expense to update. Extract from the expense URL (e.g., '60124452' from 'https://api.freeagent.com/v2/expenses/60124452'). |
| `user` | string | No | URL reference to the expense claimant (user who claimed the expense). Format: 'https://api.freeagent.com/v2/users/{id}' |
| `mileage` | string | No | Number of miles travelled for mileage expenses. Only applicable when category is 'Mileage'. |
| `project` | string | No | URL reference to a project for rebilling this expense. Format: 'https://api.freeagent.com/v2/projects/{id}' |
| `category` | string | No | URL reference to the accounting category or the literal string 'Mileage' for mileage expenses. Format: 'https://api.freeagent.com/v2/categories/{id}' |
| `currency` | string | No | Three-letter ISO 4217 currency code for the expense. If omitted, uses company's default currency. |
| `dated_on` | string | No | Date of the expense in YYYY-MM-DD format. |
| `description` | string | No | Free-text description of the expense. Use to provide context or details about the expense. |
| `gross_value` | string | No | Total expense amount as a decimal string. Required if category is not 'Mileage'. Can be negative for refunds. |
| `rebill_type` | string | No | Type of rebilling: 'cost' (at cost), 'markup' (with markup), or 'price' (fixed price). Required if expense is being rebilled to a project. |
| `vehicle_type` | string | No | Type of vehicle for mileage claims: 'Car', 'Motorcycle', or 'Bicycle'. |
| `rebill_factor` | string | No | Rebilling amount as a decimal string. Required if rebill_type is 'markup' or 'price'. |
| `sales_tax_rate` | string | No | Standard sales tax rate as a decimal string (e.g., '20.0' for 20%). Note: Sales tax on foreign currency expenses is generally not reclaimable. |
| `reclaim_mileage` | integer | No | Whether to reclaim mileage: 0 for no, 1 for yes. |
| `sales_tax_value` | string | No | Total sales tax amount as a decimal string. |
| `receipt_reference` | string | No | Reference identifier for the receipt. |
| `manual_sales_tax_amount` | string | No | Manually specified sales tax amount in the company's native currency as a decimal string. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Invoices Default Additional Text

**Slug:** `FREEAGENT_UPDATE_INVOICES_DEFAULT_ADDITIONAL_TEXT`

Tool to update the default additional text shown on all invoices. Use when you need to set or change the default invoice text that appears at the bottom of all invoices.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `default_additional_text` | string | Yes | The text to display at the bottom of all invoices. This value replaces any existing default text. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Convert Invoice to Credit Note

**Slug:** `FREEAGENT_UPDATE_INVOICES_TRANSITIONS_CONVERT`

Tool to convert a draft negative invoice to a credit note in FreeAgent. Use when you need to transform a draft invoice with a negative value into a credit note. The invoice must be in draft status and have a negative value before conversion.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the draft negative invoice to convert. Extract from invoice URL (e.g., '85939329' from 'https://api.freeagent.com/v2/invoices/85939329'). The invoice must be in draft status with a negative value. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update a Journal Set

**Slug:** `FREEAGENT_UPDATE_JOURNAL_SETS`

Tool to update a journal set in FreeAgent. Use when you need to modify journal entries, change description, date, or tag. Can add new entries, modify existing ones, or remove entries using _destroy flag.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the journal set to update. Extract from the journal set URL (e.g., '6738617' from 'https://api.freeagent.com/v2/journal_sets/6738617'). |
| `tag` | string | No | Tag to identify journal sets created by your application. Tagged journal sets can only be edited or deleted via the API. |
| `dated_on` | string | No | Date for the journal entries in YYYY-MM-DD format. If not specified, the existing date remains unchanged. |
| `description` | string | No | Free-text description of the journal set. If not specified, the existing description remains unchanged. |
| `journal_entries` | array | No | Array of journal entry objects to add, modify, or remove. Include url field to modify/remove existing entries, omit url to add new entries. Set _destroy=true with url to delete entries. All journal entries must balance to zero. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Note

**Slug:** `FREEAGENT_UPDATE_NOTES1`

Tool to update an existing note in FreeAgent. Use when you need to modify the text content of a note attached to a contact or project.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the note to update |
| `note` | string | Yes | The updated text content of the note |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Price List Item

**Slug:** `FREEAGENT_UPDATE_PRICE_LIST_ITEMS`

Tool to update a price list item in FreeAgent. Use when you need to modify existing price list item fields like description, price, code, quantity, or tax settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the price list item to update |
| `code` | string | No | Unique identifier code for the item. Used for invoice/estimate reference. |
| `price` | string | No | Unit price per item as a decimal string in the company currency. |
| `category` | string | No | Income accounting category URI reference. Must be a valid FreeAgent category API URL. |
| `quantity` | string | No | Item quantity as a decimal string. For single items, use '1.0'. |
| `item_type` | string | No | Category of the item such as Products, Services, Hours, Days, etc. |
| `vat_status` | string | No | VAT status for UK accounts. Options: 'standard', 'reduced', 'zero', or 'out_of_scope'. Leave empty for non-UK accounts. |
| `description` | string | No | Free-text description of the item. |
| `sales_tax_rate` | string | No | Sales tax rate as a decimal string for Universal/US accounts. For example, '0.20' for 20% tax. Leave empty for UK accounts. |
| `second_sales_tax_rate` | string | No | Secondary sales tax rate as a decimal string for Universal accounts with multiple tax jurisdictions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Personal Profile

**Slug:** `FREEAGENT_UPDATE_USERS_ME`

Tool to update the authenticated user's personal profile in FreeAgent. Use when you need to modify user details such as name, email, role, or tax information.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `role` | string | No | User's role in the organization. Must be one of: Owner, Director, Partner, Company Secretary, Employee, Shareholder, or Accountant. |
| `email` | string | No | Login email address. Update this to change the email used for authentication. |
| `last_name` | string | No | User's last name |
| `ni_number` | string | No | UK National Insurance Number. Format: two letters, six digits, one letter (e.g., AB123456C). |
| `first_name` | string | No | User's first name |
| `opening_mileage` | integer | No | Opening mileage value for expense tracking. Set this to the vehicle's mileage at the start of the accounting period. |
| `permission_level` | integer | No | Permission level for access control. Range: 0-8, where 8 represents full access and 0 represents minimal access. |
| `unique_tax_reference` | string | No | 10-digit UK Unique Tax Reference (UTR) number for self-assessment or corporation tax. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload a Bank Statement

**Slug:** `FREEAGENT_UPLOAD_A_BANK_STATEMENT`

Tool to upload a bank statement to FreeAgent. Use when you need to import multiple bank transactions at once for a specific bank account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `statement` | array | Yes | Array of transaction objects to upload. Each transaction represents a bank statement entry with date, amount, and other details |
| `bank_account` | string | Yes | URL of the bank account to upload the statement to. Must be a valid FreeAgent bank account API URL in the format https://api.freeagent.com/v2/bank_accounts/{id} |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | object | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
