Summary
BILL (Bill.com) accounts payable and receivable: vendors, bills, recurring bills, vendor credits, bill approvals and approval policies, AP payments, customers, invoices, credit memos and received payments. BILL v3 API with a developer key and user sign-in; approving bills is included but installed switched off.
Guided setup
Connect BILL to Microsoft Copilot in 2 minutes
Start a free trial on AnythingMCP Cloud, connect BILL in the guided setup, then add your MCP URL to Microsoft Copilot. No code and no server to run.
No credit card · 7-day trial · Self-host alternative available
Try asking
Example prompts for BILL
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → BILL, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
BILL (Bill.com) + Microsoft Copilot
BILL (Bill.com) accounts payable and receivable: vendors, bills, recurring bills, vendor credits, bill approvals and approval policies, AP payments, customers, invoices, credit memos and received payments. BILL v3 API with a developer key and user sign-in; approving bills is included but installed switched off.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
BILL_API_URL, BILL_DEV_KEY, BILL_ORGANIZATION_ID, BILL_USERNAME, BILL_PASSWORD
Step 1 — Get credentials
- BILL API access needs a developer key. An administrator generates it in the BILL web app under Settings → Sync & Integrations → Manage Developer Keys → Generate developer key. To try it first, sign up for a sandbox developer account at
https://developer.bill.com, which comes with a sandbox key. Paste the key intoBILL_DEV_KEY. - Copy the organization id from the bottom of the same Manage Developer Keys page into
BILL_ORGANIZATION_ID. It starts with008. - Enter the e-mail and password of a BILL user of that organization in
BILL_USERNAMEandBILL_PASSWORD. Use a dedicated API user: its role in BILL limits what the AI can see and do. - Set
BILL_API_URLtohttps://gateway.prod.bill.com/connectfor production or tohttps://gateway.stage.bill.com/connectfor the sandbox. A sandbox developer key does not work on production, and the reverse. - Install the connector and run
bill_com_get_sessionfirst. It checks the sign-in and shows the organization and user the connector works as.
Sessions: the connector signs in as that user and handles the session by itself. A session ends after 35 minutes without activity, and the connector simply signs in again.
What it reads: BILL (formerly Bill.com) runs accounts payable and receivable for US businesses. On the payables side the AI reads vendors, bills with due dates and payment and approval status, recurring bills, vendor credits, payments made to vendors, approval policies and the bills waiting for your approval. On the receivables side it reads customers, invoices, credit memos and payments received.
Good places to start: ask for the unpaid and partly paid bills sorted by due date, the bills waiting for your approval, or the customer invoices that are still open or partly paid.
Approvals are switched off at install: bill_com_approve_or_deny_bills approves or denies bills that wait for the signed-in user's approval, with an optional comment per bill, and approved bills can then be paid. Turn it on only if the AI should approve bills for that user; it starts from the list in bill_com_list_pending_approvals. Everything else is read-only.
Limits: 20,000 requests per developer key per hour, 3 concurrent requests per organization and 200 sign-ins per developer key per hour. The errors BDC_1144 and BDC_1322 mean a limit was reached: wait and retry.
The connector does not make payments and does not create bills or invoices.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Microsoft Copilot
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Microsoft Copilot uses MCP servers through agents built in Copilot Studio: you add AnythingMCP to an agent as a tool, then publish the agent to Microsoft 365 Copilot and Teams. Copilot Studio connects from Microsoft's cloud over Streamable HTTP, which AnythingMCP supports.
- In Copilot Studio, open your agent (or create one), go to Tools and choose Add a tool → New tool → Model Context Protocol.
- Enter a Server name (for example
AnythingMCP), a Server description that says what the connector does, and the Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio uses the description to decide when to call the server. - Under authentication, choose API key, set Type to Header and the header name to
X-API-Key, then select Create. - In Add tool, choose Create a new connection, paste an MCP API key from AnythingMCP (MCP Servers → your server → API keys) and select Add to agent.
- Try it in the agent's Test pane: ask for something that needs the
BILL (Bill.com)tools. - Select Publish, then Channels → Microsoft 365 and Microsoft Teams, keep Make agent available in Microsoft Copilot selected and choose Add channel. See agent in Teams installs it for you; in Microsoft 365 Copilot, type @ and pick the agent.
Prefer per-user sign-in? Choose OAuth 2.0 → Dynamic discovery instead of an API key: each user then signs in to AnythingMCP the first time the agent calls it.
Self-hosting? Use your instance's public HTTPS address instead of https://cloud.anythingmcp.com. Copilot Studio connects from Microsoft's cloud, so localhost does not work.
Available tools
| Tool | What it does |
|---|---|
bill_com_get_session | Get the current API session: organization id, user id and whether the session is MFA trusted |
bill_com_list_organizations | List the BILL organizations the signed-in user can access, with organization id and name, including Accountant Console organizations |
bill_com_list_vendors | List vendors (payees) with id, name, contact, address, payment details status, bill currency and balance |
bill_com_get_vendor | Get one vendor by id with contact data, address, payment method and network status, bill currency, balance and accounting links |
bill_com_list_customers | List customers (AR) with id, name, contact, address, invoice currency, balance and whether they can be charged |
bill_com_get_customer | Get one customer by id with contact data, billing and shipping address, payment terms, invoice currency and balance |
bill_com_list_bills | List bills (AP invoices from vendors) with id, vendor, invoice number and date, due date, amount, due amount, payment and approval status |
bill_com_get_bill | Get one bill by id with vendor, invoice number, dates, line items with accounts and classifications, amounts, payment status and approval… |
bill_com_list_recurring_bills | List recurring bill templates with vendor, schedule, amount and next due date |
bill_com_list_vendor_credits | List vendor credits (amounts a vendor owes back) with vendor, credit date, amount, applied amount and status |
bill_com_list_invoices | List AR invoices with id, customer, invoice number and date, due date, total, due amount and status |
bill_com_get_invoice | Get one AR invoice by id with customer, number, dates, line items, totals, amount due, status and payment link details |
bill_com_list_credit_memos | List AR credit memos with customer, reference number, credit date, amount, applied amount and status |
bill_com_list_payments | List AP payments made to vendors with id, vendor, amount, process date, disbursement type, status and the bills paid |
bill_com_get_payment | Get one AP payment by id with vendor, amount, funding account, process and expected arrival dates, status, disbursement type and bills paid |
bill_com_list_received_payments | List payments received from customers (AR) with customer, amount, payment date, type, status and the invoices they settle |
bill_com_get_received_payment | Get one received payment by id with customer, amount, payment date, method, status and the invoices it was applied to |
bill_com_list_pending_approvals | List the bills waiting for approval by the signed-in user, with bill, vendor, amount and due date |
bill_com_list_approval_policies | List the bill approval policies of the organization: rules (for example amount thresholds or vendors) and the approvers in order |
bill_com_approve_or_deny_bills | Approve or deny bills waiting for the signed-in user's approval, with an optional comment per bill |
Example prompts
- "Which bills are unpaid or partly paid, sorted by due date, and how much falls due in the next 14 days?"
- "Which bills are waiting for my approval, from which vendors and for how much?"
- "List the open customer invoices that are past their due date, with the amount still owed."
- "Which vendor payments went out this month, and which bills did they settle?"
FAQ
Which Copilot is this for? Microsoft 365 Copilot at work, through agents built in Copilot Studio. The Microsoft Copilot app for personal accounts has no option to add your own MCP server.
What do I need? A work account with access to Copilot Studio (a license or a trial) to build the agent. People who use it in Microsoft 365 Copilot or Teams need access to the agent: share it with them, or ask an admin to publish it to the organization. If your organization applies data policies to Power Platform connectors, they cover MCP servers too.
The agent doesn't call the tools. Check that the header name is exactly X-API-Key and that the key belongs to the same MCP server as the URL, and make the server description specific: Copilot Studio uses it to decide when to call the server. Publish the agent again after each change; in an open chat, type "start over" to get the new version.
Next steps
- Connector landing page
- Connect to Claude
- Connect to ChatGPT
- Connect to Cursor
- Connect to Gemini
- Connect to Meta Muse
Was this guide helpful?