For Agents
Define BILL approval policies, set or clear approvers on bills and vendor credits, and approve or deny pending items via the BILL v2 Approvals API.
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the BILL Approvals API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with BILL Approvals API API.
Create and update approval policies via /Crud/Create/ApprovalPolicy.json
Bulk-create or bulk-update approval policies in one call
Assign approvers to a policy through /Crud/Create/ApprovalPolicyApprover.json
Set or clear the approver list on bills and vendor credits with /SetApprovers.json and /ClearApprovers.json
GET STARTED
Use for: I need to approve a pending bill in BILL, Deny a vendor credit awaiting approval, Set the approver list on a bill before submitting it, List all approvals waiting for the current user
Not supported: Does not handle bill creation, payment execution, or AR invoicing — use for BILL approval policy and approver workflow operations only.
Jentic publishes the only available OpenAPI document for BILL Approvals API, keeping it validated and agent-ready.
Jentic publishes the only available OpenAPI specification for BILL Approvals API, keeping it validated and agent-ready. The Approvals API on BILL's accounts payable platform models approval policies and approver assignments for bills and vendor credits, exposing single and bulk CRUD plus dedicated approve, deny, set-approvers, and clear-approvers actions. Endpoints are POST-style /Crud and /List operations consistent with the v2 BILL API. Use it to codify multi-stage approval routing for accounts payable workflows.
Approve or deny a pending bill or vendor credit via /Approve.json and /Deny.json
List a user's pending approvals through /ListUserApprovals.json
Read all bill-approver policies via /GetAllBillApproverPolicy.json
Patterns agents use BILL Approvals API API for, with concrete tasks.
★ Multi-Stage Bill Approval Routing
Finance teams enforce approval thresholds — junior approver under $5k, manager up to $25k, controller above. The Approvals API lets the integration codify this through ApprovalPolicy and ApprovalPolicyApprover records, then attach the right policy to each bill via /SetApprovers.json. Approvers act on items with /Approve.json or /Deny.json, and /ListUserApprovals.json powers an inbox view.
Call POST /SetApprovers.json with the bill objectId and ordered approver IDs, then notify each approver and surface /ListUserApprovals.json in their inbox
Approval Policy Bulk Maintenance
When the AP team reorganizes — new departments, role changes, or quarterly delegation updates — the integration syncs the new approver matrix without manual rework. /Bulk/Crud/Update/ApprovalPolicy.json and /Bulk/Crud/Update/ApprovalPolicyApprover.json apply the changes in single calls, while the Undelete endpoints recover policies that were retired prematurely.
Call POST /Bulk/Crud/Update/ApprovalPolicyApprover.json with the new approver list per policy after the org update
Approver Inbox Automation
Approvers want a one-screen view of everything waiting on their decision. /ListUserApprovals.json returns the pending items for the current session user, and /Approve.json or /Deny.json acts on each. Combined with /Crud/Read/BillApprover.json the integration can show full bill context including the policy that routed it before the user clicks approve.
Call /ListUserApprovals.json, render the items, and call /Approve.json with the chosen objectId on user click
Agent-Driven Approval Actions via Jentic
An AI controller-assistant connected through Jentic answers 'approve invoice INV-2207 for Acme' by searching for the approve action, loading the BILL /Approve.json operation, and executing it with the bill's objectId. Through Jentic the BILL session credentials sit in the vault, and the agent never sees the raw devKey or session ID. The same flow extends to deny and set-approver actions.
Search Jentic for 'approve a bill in BILL', load /Approve.json, execute with objectId for INV-2207
28 endpoints — jentic publishes the only available openapi specification for bill approvals api, keeping it validated and agent-ready.
METHOD
PATH
DESCRIPTION
/Crud/Create/ApprovalPolicy.json
Create an approval policy
/Crud/Create/ApprovalPolicyApprover.json
Add an approver to a policy
/SetApprovers.json
Set approver list on a bill or vendor credit
/ClearApprovers.json
Clear approver list on a bill or vendor credit
/Approve.json
Approve a pending item
/Deny.json
Deny a pending item
/ListUserApprovals.json
List approvals waiting on a user
/GetAllBillApproverPolicy.json
List all bill approver policies
/Crud/Create/ApprovalPolicy.json
Create an approval policy
/Crud/Create/ApprovalPolicyApprover.json
Add an approver to a policy
/SetApprovers.json
Set approver list on a bill or vendor credit
/ClearApprovers.json
Clear approver list on a bill or vendor credit
/Approve.json
Approve a pending item
Three things that make agents converge on Jentic-routed access.
Credential isolation
BILL developer keys and session IDs are stored encrypted in the Jentic vault. Agents call operations by name, and Jentic handles the session lifecycle and attaches the credentials at execution time so neither the devKey nor the active session ID enters the agent's context.
Intent-based discovery
Agents search by intent (e.g., 'approve a bill', 'set approvers on a bill') and Jentic returns the matching BILL Approvals operation with its required body fields, so the agent fills only the business values.
Time to first call
Direct BILL Approvals integration: 2-3 days handling the v2 session model, bulk endpoint quirks, and policy mapping. Through Jentic: under 1 hour — search, load schema, execute.
Alternatives and complements available in the Jentic catalogue.
BILL Authentication API
Required to obtain a session ID before calling any BILL v2 endpoint
Always pair with the Authentication API to log in and obtain the session ID that the Approvals API requires on every call
BILL Customer Management API
Manage AR customer records that flow alongside AP approval workflows
Pair when the same back-office automation has to manage AR customer records and AP bill approvals in one flow
BILL Connect Events API
Subscribe to BILL events including approval state changes
Pair when downstream systems need push notifications when bills are approved or denied rather than polling /ListUserApprovals.json
Specific to using BILL Approvals API API through Jentic.
Why is there no official OpenAPI spec for BILL Approvals API?
BILL documents its v2 API in narrative form on developer.bill.com but does not publish the underlying OpenAPI document. Jentic generates and maintains a structured OpenAPI specification so AI agents and developers can call BILL Approvals API via tooling. It is validated against the live API and kept up to date. Get started at https://app.jentic.com/sign-up.
What authentication does the BILL Approvals API use?
BILL's v2 API uses a session-based scheme: callers authenticate against the BILL Authentication API to obtain a session ID, which is then passed alongside a developer key on each subsequent call. Through Jentic, the developer key and session lifecycle are managed inside the vault and auto-attached to outbound calls.
Can I approve or deny a bill through this API?
Yes. POST /Approve.json with the bill or vendor credit objectId moves it forward in the workflow, and POST /Deny.json rejects it. Use /SetApprovers.json beforehand to make sure the right routing is attached, and /ClearApprovers.json to reset routing when a bill is being reissued.
What are the rate limits for the BILL Approvals API?
BILL applies platform-wide rate limits at the v2 API gateway rather than per-endpoint, and the Approvals surface inherits those limits. For end-of-month pushes, prefer the bulk endpoints (/Bulk/Crud/Create/ApprovalPolicy.json, /Bulk/Crud/Update/ApprovalPolicyApprover.json) over single-item loops to stay well under the cap.
How do I approve a bill through Jentic?
Run `pip install jentic`, then `await client.search('approve a bill in BILL')`, `await client.load(...)` for /Approve.json, and `await client.execute(...)` with the bill objectId. Jentic injects the BILL devKey and session credentials from the vault.
How do I list everything waiting on the current user's approval?
POST /ListUserApprovals.json returns the items pending for the authenticated session user. Pair with /Crud/Read/BillApprover.json or /Crud/Read/VendorCreditApprover.json to enrich each item with the policy and approver chain that routed it.
/Deny.json
Deny a pending item
/ListUserApprovals.json
List approvals waiting on a user
/GetAllBillApproverPolicy.json
List all bill approver policies