Spend Management
Bill
API integration
Ship Spend Management features without building the integration. Full Bill API access via Proxy and 130+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Talk to usUse Cases
Why integrate with Bill
Common scenarios for SaaS companies building Bill integrations for their customers.
Automate vendor payouts from your vertical SaaS platform
If your platform manages workflows that end in paying vendors, contractors, or suppliers, integrating with Bill lets your users push approved payables directly into their Bill account for payment execution — no manual re-entry required.
Pull real-time AP data for cash flow forecasting
FP&A and treasury tools need visibility into upcoming and outstanding payables. By reading Bills and Payments from your users' Bill accounts, you can power accurate cash burn forecasts and liquidity dashboards without asking users to export CSVs.
Sync procurement approvals into Bill for payment execution
Procurement and spend intake platforms handle the request-and-approve workflow, but the actual money movement happens in Bill. Integrating lets your users seamlessly hand off fully coded bills to their finance team for final payment release.
Stage bills automatically from industry-specific workflows
Practice management, construction, or property management SaaS platforms generate payable events as part of their core workflow. Pushing these as pre-coded Bills into your users' Bill accounts eliminates double-entry and accelerates payment cycles.
Issue invoices and track receivables through Bill's AR capabilities
Subscription billing or usage-based billing platforms can create customer invoices in Bill's Accounts Receivable module, giving end users a low-friction ACH payment option and keeping AR data in sync with their general ledger.
What You Can Build
Ship these features with Truto + Bill
Concrete product features your team can ship faster by leveraging Truto’s Bill integration instead of building from scratch.
One-click vendor creation and network lookup
Automatically create vendors in your users' Bill accounts and leverage the Bill Network to skip manual bank detail collection when the vendor already exists.
Automated bill staging with document attachment
Push fully coded bill line items along with the original invoice PDF into Bill so finance teams can review and approve without context-switching.
Payment status webhook listener
Subscribe to Bill's payment status webhooks to reflect real-time statuses like Scheduled, Cleared, or Failed directly in your product's UI.
Accounts payable sync for cash flow dashboards
Pull unpaid, scheduled, and historical bills and payments from Bill to build real-time cash position and burn rate visualizations.
Virtual card provisioning and budget controls
Use Bill's Spend & Expense APIs to generate virtual cards for employees and enforce per-department or per-project spending limits from within your platform.
Embedded Bill workflows via Bill Elements
Drop Bill's embeddable UI components into your product so users can complete approval and payment flows without leaving your application.
SuperAI
Bill AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
bill_session_login
Sign in to your BILL developer account and create an API session. Returns: sessionId, organizationId, userId, trusted. Required: devKey, username, password, organizationId. Sessions expire after 35 minutes of inactivity.
bill_session_logout
Sign out of your BILL developer account and terminate the current API session. Returns an empty response on success. You must sign in again with login before making further API calls.
bill_session_partner_login
Sign in as a BILL partner to create an API session. Returns: sessionId, organizationId, userId, trusted. Required: appKey, username, password. The generated sessionId is used in all subsequent API calls.
bill_session_get_info
Get details about the current BILL API session including organization, user, and MFA status. Returns: organizationId, userId, mfaStatus, mfaBypass, sessionId, trusted.
list_all_bill_organizations
List BILL organizations accessible with the current API session. Returns: organizations, consoleOrganizations. 100 results per page.
get_single_bill_organization_by_id
Get a single BILL organization by id. Returns: id, timestamp, code, severity, category, message. Required: id.
update_a_bill_organization_by_id
Update a BILL organization's details including name, address, phone, tax ID, business category, and processing options. Returns the updated organization object with id, archived, name, displayName, address, phone, accountType, createdTime, and updatedTime. Required: id. The organization ID begins with `008`; organizations cannot be archived via the API.
bill_health_check
Check the health status of the BILL API. Returns: status, openapi, info, servers, paths, components. No required parameters.
list_all_bill_bill_approval_policies
List bill approval policies in BILL. Returns: id, policyName, status, rules, approvers. Each policy contains rule definitions (key, op, values) and approver information.
create_a_bill_bill_approval_policy
Create a bill approval policy in BILL. Returns: id, policyName, status, rules, approvers. Required: policyName, rules, approvers. Policy rules are applied in the specified order and approvals are requested in the specified order.
update_a_bill_bill_approval_policy_by_id
Update a bill approval policy in BILL by id. Returns: id, policyName, status, rules, approvers, sessionId, organizationId, userId, trusted. Required: id, policyName, rules. Policy rules are applied in the specified order and each rule requires a list of approver user IDs.
delete_a_bill_bill_approval_policy_by_id
Delete a bill approval policy in BILL by id. Returns: status, sessionId, organizationId, userId, trusted. Required: id.
list_all_bill_bank_accounts
List bank accounts in BILL with optional filtering and sorting. Returns each bank account's id, status, type, routingNumber, accountNumber, nameOnAccount, ownerType, bankName, and default AP/AR settings.
get_single_bill_bank_account_by_id
Get a single bank account in BILL by id. Returns: id, archived, status, createdBy, routingNumber, accountNumber, nameOnAccount, type, ownerType, bankName, accessToAdmins, createdTime, updatedTime, chartOfAccountId. Required: id.
list_all_bill_card_funding_purposes
List card funding purposes in BILL for a given vendor and card brand. Returns: category, subCategories. Required: vendorId, brand. Use a subCategories value for AMEX, VISA, or MASTERCARD card brands; use a category value for all other card brands.
list_all_bill_partner_users
List BILL partner users with optional filtering and sorting. Returns: id, archived, firstName, lastName, email, role, createdTime, updatedTime. Max 100 results per page.
create_a_bill_partner_user
Create a new BILL partner user. Returns the created user object including id, firstName, lastName, email, archived, role, createdTime, and updatedTime. Required: firstName, email, username, acceptTermsOfService.
get_single_bill_partner_user_by_id
Get a single BILL partner user by id. Returns: id, archived, firstName, lastName, email, role, createdTime, updatedTime. Required: id.
list_all_bill_bills
List bills in BILL with filtering and sorting support. Returns: id, recordStatus, archived, vendorId, vendorName, fundingAmount, amount, paidAmount, dueAmount, scheduledAmount, creditAmount, exchangeRate, description, dueDate, paymentTermId, invoice, billLineItems, payFromChartOfAccountId, paymentStatus, approvalStatus, createdBy, createdTime, updatedTime, classifications, purchaseOrderNumber,…
create_a_bill_bill
Create a new bill in BILL. Returns: id, recordStatus, archived, vendorId, vendorName, fundingAmount, amount, paidAmount, dueAmount, scheduledAmount, creditAmount, exchangeRate, description, dueDate, paymentTermId, invoice, billLineItems, payFromChartOfAccountId, paymentStatus, approvalStatus, createdBy, createdTime, updatedTime, classifications, purchaseOrderNumber, approvers. Required: vendorId,…
get_single_bill_bill_by_id
Get details of a single BILL bill by id. Returns: id, recordStatus, archived, vendorId, vendorName, fundingAmount, amount, paidAmount, dueAmount, scheduledAmount, creditAmount, exchangeRate, description, dueDate, paymentTermId, invoice, billLineItems, payFromChartOfAccountId, paymentStatus, approvalStatus, createdBy, createdTime, updatedTime, classifications, purchaseOrderNumber, approvers.…
update_a_bill_bill_by_id
Update an existing BILL bill by id, including line item details. Returns: id, recordStatus, archived, vendorId, vendorName, fundingAmount, amount, paidAmount, dueAmount, scheduledAmount, creditAmount, exchangeRate, description, dueDate, paymentTermId, invoice, billLineItems, payFromChartOfAccountId, paymentStatus, approvalStatus, createdBy, createdTime, updatedTime, classifications,…
bill_bills_archive
Archive an existing BILL bill by bill_id. Returns: id, recordStatus, archived, vendorId, vendorName, fundingAmount, amount, paidAmount, dueAmount, scheduledAmount, creditAmount, exchangeRate, description, dueDate, paymentTermId, invoice, billLineItems, payFromChartOfAccountId, paymentStatus, approvalStatus, createdBy, createdTime, updatedTime, classifications, purchaseOrderNumber. Required:…
bill_bills_restore
Restore an archived BILL bill by bill_id. The `archived` field is set as `false` in the response and any valid BILL operation can be performed on the restored bill. Returns: id, archived, vendorId, fundingAmount, amount, paidAmount, dueAmount, scheduledAmount, creditAmount, exchangeRate, description, dueDate, paymentTermId, invoice, billLineItems, payFromChartOfAccountId, paymentStatus,…
bill_bills_record_payment
Record an offline AP payment made to a vendor in BILL. BILL applies the recorded payment amount to one or more bills but does not process or transfer funds. Returns: id, toPrintCheck, payments. Required: vendorId, processDate, toPrintCheck, payments.
bill_bills_bulk_create
Create multiple bills in BILL with a single request, up to 100 per call. If any bill fails, the entire request fails and no bills are created. Returns an array of created bills including id, vendorId, amount, dueDate, paymentStatus, approvalStatus, and billLineItems. Required: body (array of bill objects, each requiring vendorId, dueDate, invoice, and billLineItems).
bill_bills_partial_update
Update a bill's details and line items in BILL by id. The PATCH operation modifies line item details such as amount and description without changing the line item id. Returns the updated bill including id, vendorId, amount, dueDate, paymentStatus, approvalStatus, billLineItems, and approvers. Required: id, paymentTermId.
list_all_bill_vendors
List vendors in BILL with optional sorting and filtering. Returns: id, archived, name, shortName, accountNumber, accountType, email, phone, address, paymentInformation, additionalInfo, rppsId, bankAccountStatus, recurringPayments, billCurrency, createdTime, updatedTime, balance, autoPay, networkStatus, paymentNetworkId. Max 100 results per page.
create_a_bill_vendor
Create a vendor in BILL. Returns the created vendor including id, archived, name, accountType, email, address, paymentInformation, additionalInfo, billCurrency, balance, autoPay, createdTime, updatedTime, and networkStatus. Required: name, address. Enabling autoPay requires an MFA-trusted API session.
get_single_bill_vendor_by_id
Get details about a specific vendor in BILL by id. Returns: id, address. Required: id.
update_a_bill_vendor_by_id
Update a BILL vendor's details including name, contact info, address, payment information, auto-pay, and bill currency. Returns the full vendor object: id, archived, name, email, phone, address, paymentInformation, additionalInfo, createdTime, updatedTime, balance, autoPay, networkStatus, paymentNetworkId. Required: id. billCurrency can only be updated if the vendor has no bills or payments;…
bill_vendors_archive
Archive a BILL vendor, marking it as archived. Returns the full vendor object: id, archived, name, email, phone, address, paymentInformation, additionalInfo, createdTime, updatedTime, balance, autoPay, networkStatus, paymentNetworkId. Required: vendor_id.
bill_vendors_restore
Restore an archived vendor in BILL. Returns the restored vendor object including id, archived, name, accountType, address, paymentInformation, additionalInfo, balance, autoPay, and networkStatus. Required: vendor_id.
bill_vendors_get_configuration
Get vendor configuration for international payments in BILL. Returns the vendor configuration including internationalPayments with paymentPurpose (required, type, codes) and validations (fields with name, description, regularExpression, required). Required: vendor_id.
bill_vendors_get_intl_config
Get international payments configuration for BILL vendors by country, currency, and account type. Returns: address. Required: country, billCurrency, accountType.
bill_vendors_bulk_create
Create multiple vendors in BILL with a single bulk request. Returns: address. Required: body (array of vendor objects, each with name and address).
list_all_bill_customers
List BILL customers with optional sorting and filtering. Returns: id, archived, name, companyName, contact, description, invoiceCurrency, accountType, paymentTermId, accountNumber, billingAddress, shippingAddress, balance, hasBankAccount, authorizedToCharge, createdTime, updatedTime. Max 100 results per page.
create_a_bill_customer
Create a new customer in BILL. Returns the created customer object including id, name, contact, billingAddress, and createdTime. Required: name and contact.email.
get_single_bill_customer_by_id
Get a single BILL customer by id. Returns: id, archived, name, companyName, contact, description, invoiceCurrency, accountType, paymentTermId, accountNumber, billingAddress, shippingAddress, balance, hasBankAccount, authorizedToCharge, createdTime, updatedTime. Required: id.
update_a_bill_customer_by_id
Update a BILL customer by id. Returns the updated customer object including id, name, contact, billingAddress, and updatedTime. Required: id.
bill_customers_archive
Archive a BILL customer by customer_id. Returns the archived customer object including id, archived, name, and updatedTime. Required: customer_id.
bill_customers_restore
Restore an archived customer in BILL. Returns the full customer object including id, name, email, archived, contact, billingAddress, shippingAddress, and createdTime. Required: customer_id.
list_all_bill_invoices
List invoices in BILL with optional filtering and sorting. Returns each invoice with id, invoiceNumber, customerId, totalAmount, dueAmount, status, createdTime, invoiceLineItems, and payments. Max 100 results per page.
create_a_bill_invoice
Create a new invoice in BILL. Returns the created invoice including id, invoiceNumber, customerId, totalAmount, status, createdTime, invoiceLineItems, and payments. Required: customer, invoiceLineItems.
get_single_bill_invoice_by_id
Get a single BILL invoice by id. Returns: id, archived, recordStatus, invoiceNumber, invoiceDate, dueDate, paymentTermId, customerId, totalAmount, dueAmount, scheduledAmount, creditAmount, status, exchangeRate, createdBy, createdTime, updatedTime, invoiceLineItems, payments, salesTaxItemId, salesTaxTotal, salesTaxPercentage, enableCardPayment, convenienceFee, invoicePdfId. Required: id.
update_a_bill_invoice_by_id
Update a BILL invoice by id. Returns the full invoice object including id, invoiceNumber, status, totalAmount, dueAmount, invoiceLineItems, payments, classifications, and createdTime. Required: id.
bill_invoices_archive
Archive a BILL invoice by invoice_id. Returns the full invoice object including id, archived, recordStatus, status, totalAmount, invoiceLineItems, and payments. Required: invoice_id.
bill_invoices_restore
Restore an archived invoice in BILL. Returns the restored invoice object including id, archived, recordStatus, status, totalAmount, invoiceLineItems, and payments. Required: invoice_id.
bill_invoices_send
Send a BILL invoice to a customer by email with sender and recipient details. Returns a 200 response on success. Required: invoice_id, replyTo, recipient.
list_all_bill_recurring_invoices
List recurring invoices in BILL. Returns: id, customerId, paymentTermId, description, archived, schedule, recurringInvoiceLineItems, classifications, sendEmail, createdTime, updatedTime. Supports sorting and filtering.
create_a_bill_recurring_invoice
Create a recurring invoice in BILL. Returns: id, customerId, paymentTermId, description, archived, schedule, recurringInvoiceLineItems, classifications, sendEmail, createdTime, updatedTime. Required: customerId, schedule, recurringInvoiceLineItems.
get_single_bill_recurring_invoice_by_id
Get a single recurring invoice in BILL by id. Returns: id, customerId, paymentTermId, description, archived, schedule, recurringInvoiceLineItems, classifications, sendEmail, createdTime, updatedTime. Required: id.
update_a_bill_recurring_invoice_by_id
Update a recurring invoice in BILL by id. Returns: id, customerId, paymentTermId, description, archived, schedule, recurringInvoiceLineItems, classifications, sendEmail, createdTime, updatedTime. Required: id.
bill_recurring_invoices_archive
Archive a recurring invoice in BILL. Returns: id, customerId, paymentTermId, description, archived, schedule, recurringInvoiceLineItems, classifications, sendEmail, createdTime, updatedTime. Required: recurring_invoice_id.
list_all_bill_payments
List payment objects in BILL. Returns a paginated collection of payment records including id, createdTime, and status. Supports compound filtering via `filters` (e.g. `id:eq:
create_a_bill_payment
Create a payment in BILL to pay a vendor. Returns the created payment object including its id (begins with `stp`), status, amount, vendorId, fundingAccountId, and processDate. Requires an MFA-trusted API session. Use the Get list of vendor payment options endpoint first to retrieve valid payment options and process dates.
bill_payments_create_mass
Create a mass payment request in BILL for up to 2000 bills processed asynchronously. Returns a BILL-generated paymentBatchId that can be used to track the current status of each payment in the batch via the get mass payment endpoint. Max 2000 bills per request.
bill_payments_get_mass
Get details about an existing BILL mass payment batch by its batch ID. Returns the per-status breakdown of all payments in the batch — `scheduled`, `completed`, and `failed` payment lists — along with a `count` of the total number of payments. BILL begins processing completed payments based on each payment's `processDate`. Required: mas_id.
bill_payments_list_options
List vendor payment options available in bill based on the funding accounts in the signed-in organization and the payment methods accepted by the specified vendor. Returns a collection of payment option objects whose fields describe available funding account and disbursement method combinations. Required: vendorId, amount.
bill_payments_get_exchange_rate
Get the current BILL exchange rate and exchange rate batch ID for a single international vendor. Returns: billCurrency, paymentCurrency, baseCurrency, exchangeRate, exchangeRateBatchId, vendorId, amountRange, expirationTime. Required: vendorId, amount. The batch is valid for up to 20 minutes in production; use the returned exchangeRateBatchId when creating a payment with POST /v3/payments or POST…
bill_payments_get_exchange_rates
Get the current BILL exchange rates and exchange rate batch ID for multiple international vendors in a single request. Returns: exchangeRateBatchId, exchangeRates, exchangeRate, expirationTime. Required: a request body array with at least one item containing vendorId and amount. The batch is valid for up to 20 minutes in production; use the returned exchangeRateBatchId when creating payments with…
get_single_bill_payment_by_id
Get payment details. Returns: id, vendorId, vendorName, billId, billPayments, description, processDate, fundingAccount. Required: id.
bill_payments_cancel
Cancel an existing payment in BILL. A payment can only be canceled when its `singleStatus` is `SCHEDULED`; once BILL starts processing the payment its status changes and cancellation is no longer possible — use the void endpoint instead. Returns the updated payment object including id and singleStatus. Required: payment_id.
bill_payments_void
Void an existing BILL payment that has started processing and can no longer be canceled. Use this for payments made both with BILL (online) and outside BILL (offline). Returns the updated payment object including id and singleStatus. Required: payment_id, type, reason.
bill_payments_get_check_image
Get scanned check image data for an existing payment in BILL. Returns a downloadLink that can be used to download the front and back images of the check once the vendor bank has processed the payment. BILL polls the bank every 30 minutes for availability; the image file format is determined by the vendor bank. Required: payment_id.
bill_payments_bulk_create
Create a bulk payment request in BILL to pay up to 50 existing bills in a single call. All bill payments in the request must succeed — if any fails, the entire request is rolled back and no bills are paid. Returns a payments array where each item includes id, vendorId, billId, amount, status, processDate, confirmationNumber, and disbursementInfo. Max 50 bills per request.
list_all_bill_vendor_credits
List vendor credit objects in BILL. Returns: id, vendorId, referenceNumber, creditDate, description, archived, applyToChartOfAccountId, applyToBankAccountId, amount, appliedAmount, status, createdTime, updatedTime, vendorCreditLineItems, usage. Supports filtering and sorting via the filters and sort query parameters. Maximum 100 results per page.
create_a_bill_vendor_credit
Create a vendor credit in BILL to adjust the amount owed to a vendor. Returns the created vendor credit object including id, vendorId, creditDate, amount, appliedAmount, and vendorCreditLineItems.
get_single_bill_vendor_credit_by_id
Get vendor credit details. Returns: id, vendorId, referenceNumber, creditDate, description, archived, applyToChartOfAccountId, applyToBankAccountId. Required: id.
update_a_bill_vendor_credit_by_id
Replace a vendor credit in BILL by id, updating line items and other details. New line items receive a generated id; omitting an existing line item id removes it. Returns the updated vendor credit object including id, vendorId, creditDate, amount, appliedAmount, and vendorCreditLineItems. Required: id.
bill_vendor_credits_archive
Archive an existing vendor credit in BILL. Returns the archived vendor credit object including id, vendorId, creditDate, amount, appliedAmount, and vendorCreditLineItems, with `archived` set to `true`. An archived vendor credit cannot be restored. Required: vendor_credit_id.
bill_vendor_credits_partial_update
Update details of an existing BILL vendor credit by id. Use PATCH to modify line item details such as amount, quantity, and description; the line item id does not change. Returns the updated vendor credit object including its id, vendorId, lineItems, and status. Required: id.
bill_vendor_credits_bulk_create
Create multiple vendor credits in BILL with a single API request. Returns the created vendor credit objects, each identified by an id beginning with `vcr`, along with archived status and credit details. Max 50 vendor credits per request.
bill_vendor_credits_bulk_replace
Replace line items in multiple BILL vendor credits with one request. Using PUT semantics, omitting an existing line item `id` removes it, while supplying a new line item entry generates a new line item `id`. Returns a bulk response containing the updated vendor credit records. Max 50 vendor credits per request.
bill_vendor_credits_bulk_update
Update line item details across multiple BILL vendor credits in a single PATCH request. Modifiable line item fields include amount, quantity, and description; the line item id is preserved. Returns an array of updated vendor credit objects including id, vendorId, and lineItems. Accepts 1–50 vendor credit objects per request.
bill_vendor_credits_bulk_archive
Archive multiple vendor credits in BILL with a single API request. Returns a list of vendor credit objects with the `archived` field set to `true` for each archived record. Note: an archived vendor credit cannot be restored. Required: ids (comma-separated BILL-generated vendor credit IDs, each beginning with `vcr`).
list_all_bill_recurring_bills
List BILL recurring bills with support for filtering and sorting. Returns each recurring bill with id, archived, vendorId, schedule, recurringBillLineItems, processingOptions, paymentInformation, createdTime, and updatedTime. Max 100 results per page.
create_a_bill_recurring_bill
Create a new recurring bill in BILL. Returns the created recurring bill including id, archived, vendorId, schedule, recurringBillLineItems, processingOptions, and paymentInformation. Required: vendorId, schedule, recurringBillLineItems. Enabling autoPayment requires an MFA-trusted API session.
get_single_bill_recurring_bill_by_id
Get a single BILL recurring bill by id. Returns: id, archived, vendorId, description, schedule, recurringBillLineItems, processingOptions, paymentInformation, createdTime, updatedTime. Required: id.
update_a_bill_recurring_bill_by_id
Update an existing BILL recurring bill by id. Returns the updated recurring bill including id, archived, vendorId, schedule, recurringBillLineItems, processingOptions, and paymentInformation. Required: id. Enabling autoPayment requires an MFA-trusted API session.
bill_recurring_bills_archive
Archive a BILL recurring bill. Returns the archived recurring bill with archived set to true, including id, vendorId, schedule, recurringBillLineItems, and paymentInformation. Required: recurring_bill_id.
bill_recurring_bills_restore
Restore an archived recurring bill in BILL. Returns the full recurring bill object including id, archived, vendorId, schedule, recurringBillLineItems, processingOptions, paymentInformation, createdTime, and updatedTime. Required: recurring_bill_id.
bill_recurring_bills_partial_update
Partially update a recurring bill in BILL by id. Returns the updated recurring bill including id, archived, vendorId, schedule, recurringBillLineItems, createdTime, and updatedTime. Required: id. Enabling autoPayment requires an MFA-trusted API session.
create_a_bill_vendor_bank_account
Create a vendor bank account in BILL for electronic payments. Returns: type, address. Required: vendor_id, accountNumber.
list_all_bill_vendor_bank_accounts
Get vendor bank account details in BILL. Returns: type, address. Required: vendor_id.
bill_vendor_bank_accounts_bulk_delete
Delete a vendor bank account in BILL. Returns an empty 204 response on success. Required: vendor_id.
list_all_bill_credit_memos
List credit memos in BILL. Returns: id, customerId, referenceNumber, creditDate, description, archived, salesTaxItemId, payToChartOfAccountId, payToBankAccountId, amount, appliedAmount, salesTaxTotal, salesTaxPercentage, status, createdTime, updatedTime, creditMemoLineItems, classifications, usage. Max 100 results per page.
create_a_bill_credit_memo
Create a credit memo in BILL. Returns the created credit memo object including id, customerId, referenceNumber, creditDate, amount, status, and line items. Required: customerId, referenceNumber, creditDate, creditMemoLineItems. You can set only one of payToChartOfAccountId or payToBankAccountId.
get_single_bill_credit_memo_by_id
Get a single BILL credit memo by id. Returns the full credit memo object including id, customerId, referenceNumber, creditDate, amount, status, line items, classifications, and usage. Required: id.
bill_credit_memos_archive
Archive a BILL credit memo by id. Returns the updated credit memo object including id, archived, status, amount, and line items. Required: credit_memo_id.
bill_credit_memos_restore
Restore an archived BILL credit memo by id. Returns the restored credit memo object including id, archived, status, amount, and line items. Required: credit_memo_id.
update_a_bill_credit_memo_by_id
Update a credit memo in BILL by id. Returns: id, customerId, referenceNumber, creditDate, description, archived, salesTaxItemId, payToChartOfAccountId, payToBankAccountId, amount, appliedAmount, salesTaxTotal, salesTaxPercentage, status, createdTime, updatedTime, creditMemoLineItems, classifications. Required: id. You can set only one of payToChartOfAccountId or payToBankAccountId.
bill_credit_memos_bulk_create
Create multiple credit memos in BILL with one API request. Returns: creditMemos. Required: customerId, referenceNumber, creditDate, and creditMemoLineItems for each array item. You can set only one of payToChartOfAccountId or payToBankAccountId.
bill_credit_memos_bulk_replace
Replace multiple credit memos in BILL with one API request, fully replacing line items. Returns: creditMemos. Required: id, customerId, referenceNumber, creditDate, and creditMemoLineItems for each array item. You can set only one of payToChartOfAccountId or payToBankAccountId.
bill_credit_memos_bulk_update
Update multiple BILL credit memos in a single batch request by sending an array of credit memo update objects. Returns: creditMemos. Required: body (array of update objects; each item requires id). You can set only one of payToChartOfAccountId or payToBankAccountId per credit memo.
bill_credit_memos_bulk_archive
Archive multiple BILL credit memos in a single request by providing comma-separated credit memo IDs. Returns: creditMemos. Required: ids.
bill_credit_memos_bulk_restore
Restore multiple archived credit memos in BILL. Returns: creditMemos. Required: ids (comma-separated credit memo IDs beginning with `ccr`).
bill_credit_memos_partial_update
Partially update a credit memo in BILL by modifying details such as line items, customer, description, or tax settings. Returns the updated credit memo including id, customerId, amount, status, creditMemoLineItems, and classifications. Required: id.
bill_mfa_generate_challenge
Generate an MFA challenge in BILL for creating an MFA-trusted API sign-in session. A six-digit validation token is sent to the registered phone number. Returns: challengeId, timestamp, code, severity, category, message.
bill_mfa_validate_challenge
Validate an MFA challenge in BILL to complete MFA sign-in and create an MFA-trusted API session. Returns: rememberMeId. Required: challengeId, token.
bill_mfa_list_phones
List MFA phone numbers registered in BILL. Returns: type, last4digits, primary.
bill_mfa_setup
Add a phone number for MFA setup in BILL. The validation token is sent to the provided phone number. Returns: setupId. Required: phone, type.
bill_mfa_validate_setup
Validate an MFA phone setup in BILL by confirming the token sent to the registered phone number. Returns: status. Required: setupId, type, token.
bill_mfa_step_up
Perform an MFA step-up for a BILL API session using a rememberMeId from a prior challenge validation. Returns: trusted.
bill_bill_approvals_approve_deny
Approve or deny a bill in BILL. Returns: status.
bill_bill_approvals_list_pending
List bills pending approval for the current user in BILL. Returns: billId, vendorId, amount, dueDate.
list_all_bill_payment_terms
List payment terms for a BILL organization. Returns each payment term with id, name, daysDue, createdTime, and updatedTime. Required: organization_id.
get_single_bill_payment_term_by_id
Get a single payment term by id in a BILL organization. Returns: id, toPrintCheck, payments. Required: organization_id, id.
list_all_bill_billing_statements
List billing statements for a BILL organization. Returns: id, invoiceNumber, invoiceDate, description, billingPeriod, paymentStatus, paymentDate, amount. Required: organization_id. invoiceDateFrom and invoiceDateTo are mutually required — each must be provided if the other is set.
bill_audit_trail_get_vendor
Get audit trail records for a specific vendor in BILL. Returns an array of audit trail entries including source, type, createdTime, user, and field. Required: vendor_id.
list_all_bill_users
List BILL organization users with optional sorting and filtering. Returns: id, archived, firstName, lastName, email, role, createdTime, updatedTime. Max 100 results per page.
get_single_bill_user_by_id
Get a single BILL organization user by id. Returns: id, archived, firstName, lastName, email, role, createdTime, updatedTime. Required: id.
create_a_bill_user
Create a new organization user in BILL. Returns the created user object including id, archived, firstName, lastName, email, role (with id, type, and description), createdTime, and updatedTime. Required: firstName, email, username, and acceptTermsOfService. The username must be a unique alphanumeric value of 40 characters or fewer and must not be an email address or PII. If roleId is omitted, the…
list_all_bill_roles
List available BILL user roles. Returns: id, type, description, createdTime, updatedTime. Supports standard BILL list filtering and sorting via the `filters` and `sort` query parameters.
list_all_bill_chart_of_accounts
Get list of chart of accounts. Returns: id, archived, name, description, parentId, account, createdTime, updatedTime.
get_single_bill_chart_of_account_by_id
Get details about an existing chart of accounts in BILL by its id. Returns the chart of accounts object including id, name, archived, description, parentId, account, createdTime, and updatedTime. Required: id.
create_a_bill_chart_of_account
Create a new chart of accounts classification in bill. Returns the created chart of accounts object including id, name, archived, description, parentId, account, createdTime, and updatedTime. Required: name.
update_a_bill_chart_of_account_by_id
Update a chart of accounts. Returns: id, archived, name, description, parentId, account, createdTime, updatedTime. Required: id.
bill_chart_of_accounts_archive
Archive an existing chart of accounts in BILL. Returns the updated chart of accounts object with the `archived` field set to `true`, along with id, name, description, account, createdTime, and updatedTime. Required: chart_of_account_id.
bill_chart_of_accounts_bulk_create
Create up to 50 chart of accounts in bill with a single API request by sending a JSON array of account objects. Returns an array of the created chart of accounts records, each including id, createdTime, and archived. Max 50 items per request.
bill_chart_of_accounts_bulk_update
Update multiple chart of accounts. Returns: chartOfAccounts.
list_all_bill_departments
List department objects in BILL with optional filtering and sorting. Returns: id, name, shortName, description, parentId, archived, createdTime, updatedTime. Results default to 20 per page (up to 100 supported).
get_single_bill_department_by_id
Get details about an existing department in BILL by its BILL-generated id (begins with `0de`). Returns the department object including its id, name, and createdTime. Required: id.
create_a_bill_department
Create a department. Returns: id, name, shortName, description, parentId, archived, createdTime, updatedTime. Required: name.
update_a_bill_department_by_id
Update details about an existing department in bill by id. Returns the updated department object including its id, archived status, and createdTime. Required: id.
bill_departments_archive
Archive an existing department in bill. Returns the department object with the `archived` field set to `true`, including id, name, and archived status. Required: department_id.
list_all_bill_locations
List location objects in BILL. Returns location records including id, createdTime, and archived. Supports field-based filtering (via filters) and sorting (via sort). Defaults to 20 results per page; maximum 100 per page.
get_single_bill_location_by_id
Get details about an existing location in BILL by its BILL-generated id (a string beginning with `loc`). Returns the location object including its id, archived status, and createdTime. Required: id.
create_a_bill_location
Create a new location classification in BILL. Returns the created location object, including its id and archived status.
update_a_bill_location_by_id
Update a location. Returns: id, name, shortName, description, parentId, archived, createdTime, updatedTime. Required: id.
bill_locations_archive
Archive a location. Returns: id, name, shortName, description, parentId, archived, createdTime, updatedTime. Required: location_id.
bill_locations_bulk_create
Create up to 50 locations in BILL with a single API request. Returns an array of the newly created location records, each including id, archived, and createdTime. Max 50 locations per request.
bill_risk_verifications_add_phone
Add a phone number for the currently signed-in user in BILL. BILL requires the signed-in user to have a linked phone number before initiating KYC/KYB risk verification for an organization. Returns an empty 200 response on success. Required: phoneNumber, phoneType.
bill_risk_verifications_initiate
Initiate KYC/KYB risk verification for a BILL organization. BILL performs identity and business checks based on the organization's existing information and sends an email notification; once the check completes, the organization is approved for AP and AR operations. Returns: processingStatus, decision, referenceId. No request body parameters are required.
bill_invoice_attachments_upload
Upload an attachment to a specific invoice in BILL. Returns the created attachment including its id. Required: invoice_id.
delete_a_bill_invoice_attachment_by_id
Delete a specific attachment from a BILL invoice. Returns an empty 204 response on success. Required: invoice_id, id.
Why Truto
Why use Truto’s MCP server for Bill
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with Bill in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Bill account
Use Truto’s frontend SDK to connect your customer’s Bill account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Bill
Truto’s Proxy API is a 1-to-1 mapping of the Bill API. You call us, we call Bill, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Bill’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Bill on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
What authentication method does the Bill API use?
Bill's v3 API uses OAuth 2.0 for authentication. Truto handles the full OAuth flow, token refresh, and credential storage so your team doesn't need to manage auth lifecycle per connected account.
Is the Bill integration available as a prebuilt Unified API on Truto?
Bill is not yet mapped to a Truto Unified API. It is built on request — contact Truto to scope the integration, and the team will build and maintain the connector tailored to your use case.
Does Bill support webhooks for real-time data updates?
Yes. Bill's v3 API supports webhooks for key events, most notably payment status changes (Scheduled, Cleared, Voided, Failed). This lets your application react in real time rather than polling.
What are the core API objects available in Bill's v3 API?
The primary objects include Vendors, Bills, Payments, Documents, Customers, Invoices (AR), and Spend & Expense resources like virtual cards and budgets. These cover both AP and AR workflows.
Are there rate limits on the Bill API?
Yes, Bill enforces rate limits on its v3 API. Truto manages request throttling, pagination, and retries on your behalf to ensure your integration stays within limits without dropped requests.
Can I attach invoice documents when creating a Bill via the API?
Yes. Bill's v3 API has a dedicated documents endpoint that lets you upload PDFs or images and associate them with a Bill object, so finance teams see the source invoice alongside the coded payable.
From the Blog
Bill integration guides
Deep dives, architecture guides, and practical tutorials for building Bill integrations.
Bill
Get Bill integrated into your app
Our team understands what it takes to make a Bill integration successful. A short, crisp 30 minute call with folks who understand the problem.