Integration

BILL Spend & Expense integration

BILL Spend & Expense (formerly Divvy) manages company card spending. With this API an agent can list and manage budgets and their members' assigned funds, create, update, freeze, unfreeze and delete vendor cards, read card transactions and set their budget and custom fields, manage the custom fields used to categorize spend, and review, update, approve or deny reimbursement requests. Writes act on real money: they change spend limits, create spendable cards and decide reimbursements. The rate limit is 60 calls per API token per minute. Not exposed: card numbers (the PAN token route), 3D Secure challenge answers, receipt and reimbursement image uploads (pre-signed upload URLs) and therefore reimbursement creation, which requires a receipt, user creation, update and deletion (roles up to ADMIN and email changes are left to the BILL app), and changing which user a reimbursement repays. Receipt URLs, card expiry (validThru), user phone numbers and receipt-forwarding email addresses are not returned. The AP & AR API is not included: it signs in with a session that expires after 35 idle minutes. Authentication is a Spend & Expense API token from the production BILL web app, sent in the apiToken header.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in BILL Spend & Expense.Built from the 42 BILL Spend & Expense tools below, on the connection you add once.

What you can do with BILL Spend & Expense

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Card, 7 operations

  • create_vendor_cardCreate vendor cardPOSTCreates a vendor virtual card for real, linked to a user and a budget, with a spend limit. The card can be used for payments at once. Returns the card (not its number).
  • delete_vendor_cardDelete vendor cardDELETEDeletes a vendor card for real. BILL says a deleted card cannot be restored. Optionally give the reason.
  • freeze_cardFreeze cardPOSTFreezes a card for real (virtual or physical); a frozen card cannot be used for payments until unfreeze_card. Returns the card.
  • get_cardGet cardGETGets one card: name, type, status, user, budget, last four digits and current-period limit and spend. The card number and expiry are not returned.
  • list_cardsList cardsGETLists cards (physical, member and vendor virtual cards) with status, budget, user, last four digits and current-period limit and spend. First page by default; pass nextPage for more.
  • unfreeze_cardUnfreeze cardPOSTUnfreezes a frozen card for real (virtual or physical), so it can be used for payments again. Returns the card.
  • update_vendor_cardUpdate vendor cardPATCHUpdates a vendor card for real: name, budget, spend limits, expiration or renewal policy. Only the fields you send change. Returns the card.

Budget, 5 operations

  • create_budgetCreate budgetPOSTCreates a budget for real, with its owners, members, spend limit and reset interval. Members can then spend from it with their cards. Returns the new budget.
  • delete_budgetDelete budgetDELETEDeletes (retires) a budget for real; it leaves the list of budgets. The API cannot restore it, but it can be unretired in the BILL web or mobile app.
  • get_budgetGet budgetGETGets one budget: limits, reset interval, sharing rule and current-period amounts assigned and spent.
  • list_budgetsList budgetsGETLists budgets with their limits, reset interval and current-period spend. First page by default; pass the returned nextPage to get the next one.
  • update_budgetUpdate budgetPATCHUpdates a budget for real (limits, reset interval, overspend rules, name); limit changes change how much money its members and cards can spend. Only the fields you send change. Returns the updated budget.

Budget member, 5 operations

  • delete_budget_memberDelete budget memberDELETERemoves a user from a budget for real; they can no longer spend from it.
  • get_budget_memberGet budget memberGETGets one user's membership of a budget: role, funds assigned for this and future periods, and amount spent.
  • list_budget_membersList budget membersGETLists the users of a budget with their role (MEMBER, OWNER, OBSERVER), assigned funds and spend. First page by default; pass the returned nextPage for the next one.
  • upsert_budget_memberUpsert budget memberPUTAdds a user to a budget or updates their membership, for real: sets their role and the funds they can spend now and in future periods. Returns the membership.
  • upsert_budget_membersUpsert budget membersPUTAdds or updates several users of a budget in one call, for real: role and the funds each can spend now and in future periods. Returns a request status.

Custom field, 5 operations

  • create_custom_fieldCreate custom fieldPOSTCreates a custom field for real, for categorizing transactions, optionally with its first values and the budgets where it is available or required. Returns the field.
  • delete_custom_fieldDelete custom fieldDELETEDeletes a custom field for real. BILL says a deleted custom field cannot be restored and leaves the list of custom fields.
  • get_custom_fieldGet custom fieldGETGets one custom field: name, type (CUSTOM_SELECTOR or NOTE), whether it is required, and the budgets where it applies.
  • list_custom_fieldsList custom fieldsGETLists the custom fields used to categorize transactions and reimbursements, with type and the budgets where each applies. First page by default; pass nextPage for more.
  • update_custom_fieldUpdate custom fieldPATCHUpdates a custom field for real: name, description, requirement rules and budgets. Only the fields you send change. Returns the field.

Reimbursement, 5 operations

  • approve_or_deny_reimbursementApprove or deny reimbursementPOSTApproves or denies a reimbursement request for real; an approved request goes on to payment to the user. Only users with the ADMIN role can do this. Returns the reimbursement.
  • delete_reimbursementDelete reimbursementDELETEDeletes a reimbursement request for real. BILL says a deleted reimbursement cannot be restored.
  • get_reimbursementGet reimbursementGETGets one reimbursement request: amount, merchant, note, status, fulfillment type (ACH or PAYROLL), approval history and custom fields.
  • list_reimbursementsList reimbursementsGETLists reimbursement requests with amount, merchant, status, user, budget and approval history. First page by default; pass nextPage for more.
  • update_reimbursementUpdate reimbursementPATCHUpdates a reimbursement request for real: amount, merchant, note, date, custom fields or the budget it is paid from. Changing the amount changes what is repaid. Only the fields you send change. The user to be repaid cannot be changed here.

Custom field value, 4 operations

  • create_custom_field_valuesCreate custom field valuesPOSTAdds new values (choices) to a custom field, for real. Returns the created values with their IDs.
  • delete_custom_field_valuesDelete custom field valuesDELETEDeletes values of a custom field for real. BILL says deleted values cannot be restored or assigned to transactions again.
  • get_custom_field_valueGet custom field valueGETGets one value of a custom field.
  • list_custom_field_valuesList custom field valuesGETLists the values of a custom field (the choices users pick). First page by default; pass nextPage for more.

Transaction, 3 operations

  • get_transactionGet transactionGETGets one card transaction: type, status, amounts and fees, merchant and location, user, budget, card, reviews and custom fields. A negative amount is a reversal or refund.
  • list_transactionsList transactionsGETLists card transactions (authorizations, clears, declines, refunds) with amount, merchant, user, budget, card and receipt status. First page by default; pass nextPage for more.
  • update_transaction_budgetUpdate transaction budgetPUTMoves a transaction to another budget for real, so its amount is charged to that budget's spend instead. Returns the updated transaction.

Transaction custom field, 2 operations

  • list_transaction_custom_fieldsList transaction custom fieldsGETLists the custom fields applied to a transaction with their selected values or note.
  • update_transaction_custom_fieldsUpdate transaction custom fieldsPUTSets custom field values or notes on a transaction, for real. Locked transactions (isLocked true) cannot be changed. Returns a request status.

User, 2 operations

  • get_userGet userGETGets one Spend & Expense user: name, email, role and whether the user is retired.
  • list_usersList usersGETLists the Spend & Expense users of the company with ID, name, email and role. First page by default; pass the returned nextPage for the next one.

Current user, 1 operation

  • get_current_userGet current userGETGets the user who generated the API token: ID, name, email and role. Use it to check the connection and the token's role.

Reimbursement receipt, 1 operation

  • delete_reimbursement_receiptDelete reimbursement receiptDELETEDeletes a receipt from a reimbursement for real. BILL says a deleted receipt cannot be restored.

Transaction custom field value, 1 operation

  • list_transaction_custom_field_valuesList transaction custom field valuesGETLists the values of one custom field selected on a transaction. First page by default; pass nextPage for more.

Transaction receipt, 1 operation

  • delete_transaction_receiptDelete transaction receiptDELETEDeletes a receipt from a transaction for real. BILL says a deleted receipt cannot be restored.

Use BILL Spend & Expense from Claude Code, Cursor or Codex

Connect BILL Spend & Expense in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its BILL Spend & Expense operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect BILL Spend & Expense

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect BILL Spend & Expense once

    Add your BILL Spend & Expense connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

BILL Spend & Expense integration FAQ

What can you do with the BILL Spend & Expense integration?

LiveContext exposes 42 operations on BILL Spend & Expense, covering card, budget, budget member and custom field.

Popular integrations

Browse the whole catalog