Firmao

Learn how to use Firmao with Composio

Overview

SLUG: FIRMAO

Description

Firmao is a business information platform offering data and insights on companies, industries, and markets, providing tools for company research, industry analysis, and market intelligence.

Authentication Details

subdomain
stringRequired
basic_encoded
stringRequired

Connecting to Firmao

Create an auth config

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

1

Select App

Navigate to Firmao.

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 Firmao 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 API Key

1from composio import Composio
2
3# Replace these with your actual values
4firmao_auth_config_id = "ac_YOUR_FIRMAO_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 Firmao 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, firmao_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 Firmao 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=["FIRMAO"])
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: Create Invoice

Description

Tool to create an invoice. Use after gathering all invoice details.

Action Parameters

autoNumber
boolean
calculateFromGross
boolean
createNewCustomerIfNeeded
boolean
currency
stringRequired
customer
integer
customerAddress
object
customerName
string
emails
array
invoiceAnnotations
string
invoiceDate
stringRequired
invoicePatternId
integer
issuingPerson
string
mode
stringDefaults to SALE
organization_id
stringRequired
paid
boolean
paidValue
number
paymentDate
string
paymentType
string
phones
array
restOfPaidValue
number
splitPayment
boolean
transactionBruttoPrice
numberRequired
transactionDate
stringRequired
transactionEntries
arrayRequired
transactionNettoPrice
numberRequired
transactionNumber
string
transactionVatPrice
numberRequired
type
stringDefaults to INVOICE

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Company Setting

Description

Tool to delete a specific company setting. Use when you need to remove a company setting by its unique ID after confirming the ID is valid.

Action Parameters

organization_id
string
setting_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Contact

Description

Tool to delete a contact by marking it as deleted. Use when you need to soft-delete a contact after confirming its existence.

Action Parameters

contact_id
integerRequired
organization_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Invoice

Description

Tool to delete an invoice. Use when you need to soft-delete a specific invoice by marking it deleted=true. Implements robust endpoint fallbacks and graceful degradation to ensure a validated response even when the API denies access or returns unexpected shapes.

Action Parameters

invoice_id
integerRequired
organization_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Delete Offer

Description

Tool to delete an offer. Use when you need to soft-delete an existing offer by marking its deleted flag to true. After this call, the offer is considered deleted within the system.

Action Parameters

offer_id
integerRequired
organization_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Invoice

Description

Tool to retrieve a specific invoice by its ID. Use when you need the full invoice data by its unique ID.

Action Parameters

invoice_id
integerRequired
organization_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Offer

Description

Tool to retrieve offer details. Use when you need complete information for a specific offer by ID.

Action Parameters

dataFormat
stringDefaults to MEDIUM
offer_id
integerRequired
organization_id
stringRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Get Task

Description

Tool to retrieve details of a specific task by its ID. Use when you need to fetch a task after knowing its ID.

Action Parameters

dataFormat
string
dir
string
limit
integer
organization_id
stringRequired
sort
string
start
integer
task_id
integerRequired

Action Response

data
arrayRequired
dir
string
error
string
sort
string
successful
booleanRequired
totalSize
integer

Tool Name: List Company Settings

Description

Tool to list company settings. Use when retrieving custom configurations for a company, optionally filtered by organization or company ID.

Action Parameters

company_id
integer
limit
integer
organization_id
string
start
integer

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: List Invoices

Description

Tool to list invoices. Use when retrieving a list of invoices with optional pagination and filtering.

Action Parameters

customer(eq)
integer
dataFormat
string
dir
string
limit
integer
mode(eq)
string
organization_id
stringRequired
sort
string
start
integer

Action Response

data
arrayRequired
dir
stringRequired
error
string
sort
stringRequired
successful
booleanRequired
totalSize
integerRequired

Tool Name: List Tasks

Description

Tool to retrieve a list of tasks. Use when browsing tasks with pagination, sorting, or filters after confirming organization ID.

Action Parameters

dataFormat
string
dir
string
filters
object
limit
integer
organization_id
stringRequired
sort
string
start
integer

Action Response

data
arrayRequired
dir
string
error
string
sort
string
successful
booleanRequired
totalSize
integerRequired

Tool Name: Update Contact

Description

Tool to update a contact. Use when you need to modify an existing contact by its ID after retrieving its details.

Action Parameters

contact_id
integerRequired
customer
integer
description
string
emails
array
firstName
string
label
string
lastName
string
organization_id
stringRequired
phones
array
position
string
tags
array

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Invoice

Description

Tool to update an invoice. Use when you need to modify an existing invoice by its ID after retrieving its details.

Action Parameters

autoNumber
boolean
calculateFromGross
boolean
createNewCustomerIfNeeded
boolean
currency
string
customer
integer
customerAddress
object
customerName
string
emails
array
invoiceAnnotations
string
invoiceDate
string
invoicePatternId
integer
invoice_id
integerRequired
issuingPerson
string
mode
stringRequired
nipNumber
string
organization_id
stringRequired
paid
boolean
paidValue
number
paymentDate
string
paymentType
string
phones
array
restOfPaidValue
number
splitPayment
boolean
transactionBruttoPrice
number
transactionDate
string
transactionEntries
array
transactionNettoPrice
number
transactionNumber
string
transactionVatPrice
number
type
stringDefaults to INVOICE

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Offer

Description

Tool to update an existing offer. Use when you need to modify offer fields after creation.

Action Parameters

annotations
string
calculateFromGross
boolean
contact
object
currency
string
customer
integer
customerAddress
object
customerName
string
daysToDueDate
integer
description
string
entries
array
issuingPerson
string
mode
string
name
string
number
string
offerDate
string
offerStatus
string
offer_id
integerRequired
organization_id
stringRequired
paymentDate
string
paymentType
string
project
integer
reminderAdvance
string
tags
array
task
integer
type
string
validFrom
string

Action Response

data
objectRequired
error
string
successful
booleanRequired

Tool Name: Update Task

Description

Tool to update an existing task. Use when you need to modify one or more fields of a task after confirming its current details.

Action Parameters

description
string
estimatedHours
number
name
string
organization_id
stringRequired
parent
integer
percentDone
number
plannedEndDate
string
plannedEndDateType
string
plannedStartDate
string
plannedStartDateType
string
priority
integer
responsibleUsers
array
status
string
tags
array
task_id
integerRequired

Action Response

data
objectRequired
error
string
successful
booleanRequired