Moneybird

Learn how to use Moneybird with Composio

Overview

SLUG: MONEYBIRD

Description

Moneybird is an online invoicing and accounting platform designed for small businesses and freelancers, offering features like invoicing, expense tracking, and financial reporting.

Authentication Details

client_id
stringRequired
client_secret
stringRequired
oauth_redirect_uri
stringDefaults to https://backend.composio.dev/api/v1/auth-apps/add
scopes
stringDefaults to sales_invoices
bearer_token
stringRequired
generic_id
stringRequired

Connecting to Moneybird

Create an auth config

Use the dashboard to create an auth config for the Moneybird toolkit. This allows you to connect multiple Moneybird accounts to Composio for agents to use.

1

Select App

Navigate to Moneybird.

2

Configure Auth Config Settings

Select among the supported auth schemes of and configure them here.

3

Create and Get auth config ID

Click “Create Moneybird Auth Config”. After creation, copy the displayed ID starting with ac_. This is your auth config ID. This is not a sensitive ID — you can save it in environment variables or a database. This ID will be used to create connections to the toolkit for a given user.

Connect Your Account

Using OAuth2

1from composio import Composio
2
3# Replace these with your actual values
4moneybird_auth_config_id = "ac_YOUR_MONEYBIRD_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/application
6
7composio = Composio()
8
9
10def authenticate_toolkit(user_id: str, auth_config_id: str):
11 connection_request = composio.connected_accounts.initiate(
12 user_id=user_id,
13 auth_config_id=auth_config_id,
14 )
15
16 print(
17 f"Visit this URL to authenticate Moneybird: {connection_request.redirect_url}"
18 )
19
20 # This will wait for the auth flow to be completed
21 connection_request.wait_for_connection(timeout=15)
22 return connection_request.id
23
24
25connection_id = authenticate_toolkit(user_id, moneybird_auth_config_id)
26
27# You can also verify the connection status using:
28connected_account = composio.connected_accounts.get(connection_id)
29print(f"Connected account: {connected_account}")

Using API Key

1from composio import Composio
2
3# Replace these with your actual values
4moneybird_auth_config_id = "ac_YOUR_MONEYBIRD_CONFIG_ID" # Auth config ID created above
5user_id = "0000-0000-0000" # UUID from database/app
6
7composio = Composio()
8
9def authenticate_toolkit(user_id: str, auth_config_id: str):
10 # Replace this with a method to retrieve an API key from the user.
11 # Or supply your own.
12 user_api_key = input("[!] Enter API key")
13
14 connection_request = composio.connected_accounts.initiate(
15 user_id=user_id,
16 auth_config_id=auth_config_id,
17 config={"auth_scheme": "API_KEY", "val": {"generic_api_key": user_api_key}}
18 )
19
20 # API Key authentication is immediate - no redirect needed
21 print(f"Successfully connected Moneybird for user {user_id}")
22 print(f"Connection status: {connection_request.status}")
23
24 return connection_request.id
25
26
27connection_id = authenticate_toolkit(user_id, moneybird_auth_config_id)
28
29# You can verify the connection using:
30connected_account = composio.connected_accounts.get(connection_id)
31print(f"Connected account: {connected_account}")

Tools

Executing tools

To prototype you can execute some tools to see the responses and working on the Moneybird toolkit’s playground

For code examples, see the Tool calling guide and Provider examples.

Tool List

Tool Name: Add Note to Contact

Description

Tool to add a note or to-do to a contact. Use when you need to record a comment or assign a task to a contact.

Action Parameters

administration_id
integerRequired
contact_id
stringRequired
note
objectRequired

Action Response

administration_id
integerRequired
assignee_id
completed_at
completed_by_id
created_at
stringRequired
data
objectRequired
entity_id
stringRequired
entity_type
stringRequired
error
id
stringRequired
note
stringRequired
successful
booleanRequired
todo
booleanRequired
todo_type
updated_at
stringRequired
user_id
integerRequired

Tool Name: Archive Contact

Description

Tool to archive a contact. Use when a contact is no longer needed and should be hidden permanently.

Action Parameters

administration_id
integerRequired
contact_id
integerRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Create Moneybird Contact

Description

Tool to create a new contact in Moneybird. Use after you have an administration ID and need to onboard a new company/person. Provide either company_name or both firstname and lastname.

Action Parameters

address1
address2
administration_id
integerRequired
bank_account
chamber_of_commerce
city
company_name
country
custom_fields_attributes
customer_id
delivery_method
estimate_workflow_id
firstname
invoice_workflow_id
lastname
phone
send_estimates_to_email
send_invoices_to_email
sepa_active
sepa_bic
sepa_iban
sepa_iban_account_name
sepa_mandate_date
sepa_mandate_id
sepa_sequence_type
si_identifier
si_identifier_type
tax_number
zipcode

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Create Contact Person

Description

Tool to create a new contact person. Use when you have the contact ID and need to add a person after confirming their firstname and lastname.

Action Parameters

administration_id
integerRequired
contact_id
integerRequired
contact_person
objectRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Create Sales Invoice

Description

Tool to create a new sales invoice. Use when you need to bill a contact with specified line items.

Action Parameters

administration_id
integerRequired
sales_invoice
objectRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Delete Contact

Description

Tool to delete a contact. Use after confirming that contact should be removed.

Action Parameters

administration_id
integerRequired
contact_id
integerRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Delete Contact Note

Description

Tool to delete a note from a contact. Use when a note is no longer needed and should be removed permanently.

Action Parameters

administration_id
integerRequired
contact_id
integerRequired
note_id
integerRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Delete Contact Person

Description

Tool to delete a contact person from a contact. Use after confirming the administration_id, contact_id, and contact_person_id.

Action Parameters

administration_id
integerRequired
contact_id
integerRequired
contact_person_id
integerRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Filter Contacts

Description

Tool to filter contacts. Use when you need to retrieve contacts matching specific criteria like created_after or first_name.

Action Parameters

administration_id
integerRequired
created_after
first_name
include_archived
boolean
last_name
per_page
updated_after

Action Response

data
arrayRequired
error
successful
booleanRequired

Tool Name: Get Additional Charges

Description

Tool to get additional charges for a contact. Use when you need to view pending (or optionally billed) usage or recurring charges.

Action Parameters

administration_id
integerRequired
contact_id
stringRequired
include_billed
boolean

Action Response

data
arrayRequired
error
successful
booleanRequired

Tool Name: Get Contact

Description

Tool to retrieve all information about a specific contact by ID. Use when you need the full details of a contact, for example before generating invoices.

Action Parameters

administration_id
integerRequired
contact_id
stringRequired
include_archived
boolean

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get Contact by Customer ID

Description

Tool to retrieve full contact details by customer ID. Use when you need all fields of a contact given its customer_id.

Action Parameters

administration_id
integerRequired
customer_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get Contact Person

Description

Tool to get all information about a contact person. Use when you have the administration, contact, and contact person IDs and need full details before updating.

Action Parameters

administration_id
integerRequired
contact_id
integerRequired
contact_person_id
integerRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Get Sales Invoice

Description

Tool to get a single sales invoice by ID. Use when you need detailed invoice data for a known invoice ID.

Action Parameters

administration_id
integerRequired
invoice_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: List Administrations

Description

Tool to list all administrations accessible by the authenticated user. Use when you need to obtain administration_id for subsequent operations like create_contact.

Action Parameters

Action Response

data
arrayRequired
error
successful
booleanRequired

Tool Name: List Contacts Synchronization

Description

Tool to list all contact IDs and versions for synchronization. Use when you need to detect which contacts have changed and update local data accordingly.

Action Parameters

administration_id
integerRequired
filter
include_archived

Action Response

data
arrayRequired
error
successful
booleanRequired

Tool Name: List Sales Invoices

Description

Tool to list all sales invoices in an administration. Use when you need an overview of invoices for a given administration.

Action Parameters

administration_id
integerRequired
filter
page
per_page

Action Response

data
arrayRequired
error
successful
booleanRequired

Tool Name: Request Payments Mandate URL

Description

Tool to request a URL for setting up a Payments mandate. Use when you need to generate a direct-debit authorization link for a contact (valid for 14 days).

Action Parameters

administration_id
integerRequired
contact_id
integerRequired
identity_id

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Update Contact

Description

Tool to update a contact. Use when you need to modify existing contact details by ID. Only provided fields will be changed.

Action Parameters

administration_id
integerRequired
contact
objectRequired
contact_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Update Contact Person

Description

Tool to update a contact person. Use after selecting a specific contact person when you need to change their details.

Action Parameters

administration_id
integerRequired
contact_id
stringRequired
contact_person_id
stringRequired
department
email
firstname
lastname
phone

Action Response

data
objectRequired
error
successful
booleanRequired

Tool Name: Update Sales Invoice

Description

Tool to update an existing sales invoice by ID. Use when modifying invoice header or line items.

Action Parameters

administration_id
integerRequired
sales_invoice
objectRequired
sales_invoice_id
stringRequired

Action Response

data
objectRequired
error
successful
booleanRequired