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
string
bearer_token
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": 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

Python
1from composio import Composio
2from openai import OpenAI
3import json
4
5openai = OpenAI()
6composio = Composio()
7
8# User ID must be a valid UUID format
9user_id = "0000-0000-0000" # Replace with actual user UUID from your database
10
11tools = composio.tools.get(user_id=user_id, toolkits=["MONEYBIRD"])
12
13print("[!] Tools:")
14print(json.dumps(tools))
15
16def invoke_llm(task = "What can you do?"):
17 completion = openai.chat.completions.create(
18 model="gpt-4o",
19 messages=[
20 {
21 "role": "user",
22 "content": task, # Your task here!
23 },
24 ],
25 tools=tools,
26 )
27
28 # Handle Result from tool call
29 result = composio.provider.handle_tool_calls(user_id=user_id, response=completion)
30 print(f"[!] Completion: {completion}")
31 print(f"[!] Tool call result: {result}")
32
33invoke_llm()

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
string
completed_at
string
completed_by_id
string
created_at
stringRequired
data
objectRequired
entity_id
stringRequired
entity_type
stringRequired
error
string
id
stringRequired
note
stringRequired
successful
booleanRequired
todo
booleanRequired
todo_type
string
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
string
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
string
address2
string
administration_id
integerRequired
bank_account
string
chamber_of_commerce
string
city
string
company_name
string
country
custom_fields_attributes
object
customer_id
string
delivery_method
string
estimate_workflow_id
integer
firstname
string
invoice_workflow_id
integer
lastname
string
phone
string
send_estimates_to_email
send_invoices_to_email
sepa_active
boolean
sepa_bic
string
sepa_iban
string
sepa_iban_account_name
string
sepa_mandate_date
string
sepa_mandate_id
string
sepa_sequence_type
string
si_identifier
string
si_identifier_type
string
tax_number
string
zipcode
string

Action Response

data
objectRequired
error
string
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
string
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
string
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
string
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
string
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
string
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
string
first_name
string
include_archived
boolean
last_name
string
per_page
integer
updated_after
string

Action Response

data
arrayRequired
error
string
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
string
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
string
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
string
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
string
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
string
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
string
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
string
include_archived
boolean

Action Response

data
arrayRequired
error
string
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
string
page
integer
per_page
integer

Action Response

data
arrayRequired
error
string
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
integer

Action Response

data
objectRequired
error
string
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
string
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
string
email
string
firstname
string
lastname
string
phone
string

Action Response

data
objectRequired
error
string
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
string
successful
booleanRequired