canonical: https://jentic.com/apis/acrual.com/acrual-main

# Acrual API

Jentic publishes the only available OpenAPI specification for Acrual API, keeping it validated and agent-ready. Acrual is a business management platform for manufacturing and construction businesses that exposes endpoints for clients, employees, jobs, quotes, invoices, purchase orders, time entries, suppliers, and variations. The API supports webhook subscriptions and third-party integration handshakes, so back-office tools can react to changes in jobs and invoices in near real time. Authentication uses bearer tokens, and the spec covers 46 operations across 11 resource groups under the /v1.0 path prefix.

## For AI agents

Manage construction and manufacturing back-office records - clients, jobs, quotes, invoices, purchase orders, time entries, and webhooks - through Acrual's REST API.

## Scope

Does not handle general ledger accounting, payroll, or bank reconciliation - use for construction and manufacturing job, invoice, and time tracking only.

## Capabilities

- Create and update construction or manufacturing jobs and attach files via /v1.0/jobs and /v1.0/jobs/{id}/files
- Issue invoices and purchase orders linked to jobs and clients through /v1.0/invoices and /v1.0/purchase-orders
- Capture and reconcile employee time entries against specific jobs via /v1.0/time-entries
- Generate, send, and convert quotes into jobs through the /v1.0/quotes resource
- Subscribe to job, invoice, and quote events with webhook registrations on /v1.0/hooks
- Track variations and supplier records to keep project costs aligned with the original quote

## Use cases

### Construction job invoicing automation

Trades and construction businesses use Acrual to track jobs from quote to completion, then invoice the client. An agent can read job status from /v1.0/jobs/{id}, generate an invoice through /v1.0/invoices when the job is marked complete, and attach the invoice to the job folder. This removes the manual step of bookkeepers re-keying job data into separate accounting software.

Example prompt: Fetch the job at /v1.0/jobs/123, confirm status is 'completed', then POST a new invoice to /v1.0/invoices referencing that job and its client

### Time entry reconciliation

Operations managers reconcile timesheets weekly, matching employee time entries to specific jobs and validating against quoted hours. An agent can pull time entries via /v1.0/time-entries, group by job, compare totals to the quote on /v1.0/quotes/{id}, and flag overruns. This shortens a half-day reconciliation pass to a few API calls.

Example prompt: List time entries from the last 7 days for job 456, sum total hours, and compare to the quoted hours on the linked quote

### Webhook-driven accounting sync

Businesses that mirror Acrual records into a separate accounting tool register webhooks on /v1.0/hooks for invoice and purchase order events. An agent can subscribe to invoice.created and purchase_order.updated, then push each payload into Xero or QuickBooks. The integration handshake endpoints under /v1.0/integrations also let agents complete OAuth-style links to external systems.

Example prompt: Register a webhook on /v1.0/hooks for the 'invoice.paid' event and route incoming payloads to a downstream accounting endpoint

### AI agent build assistant

Developers building agent assistants for trade businesses use Jentic to expose Acrual operations alongside accounting and scheduling APIs. Through Jentic's intent search, an agent can find 'create a job' or 'issue an invoice' without browsing Acrual docs, and the bearer token is stored in Jentic's vault rather than handled by the agent. Integration moves from days of manual wiring to under an hour.

Example prompt: Search Jentic for 'create an invoice in Acrual', load the operation schema, and execute it with values for client_id, job_id, and line items

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /v1.0/jobs | List jobs |
| POST | /v1.0/jobs | Create a job |
| POST | /v1.0/invoices | Issue an invoice |
| GET | /v1.0/quotes | List quotes |
| POST | /v1.0/hooks | Register a webhook subscription |
| GET | /v1.0/time-entries | List time entries |
| GET | /v1.0/clients | List clients |
| GET | /v1.0/purchase-orders | List purchase orders |

## Key resources

- **Jobs** — Create, update, and manage construction or manufacturing jobs and attached files
- **Invoices** — Issue and retrieve invoices linked to clients and jobs
- **Quotes** — Manage estimates and convert accepted quotes into jobs
- **Purchase Orders** — Track POs raised against suppliers for materials
- **Time Entries** — Log and reconcile employee hours against specific jobs
- **Clients** — Manage customer records and contact details
- **Hooks** — Register webhook subscriptions for resource events
- **Integrations** — Initiate, complete, and unlink third-party integration connections

## Why Jentic

- **Setup:** Wiring the Acrual API by hand means holding its bearer token, attaching the Authorization header on every call, and coordinating jobs, invoices, quotes, and webhooks yourself. Through Jentic you install once, import the Acrual API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** These collection endpoints take job, invoice, and hook details in the request body rather than a resource id in the URL, so limit the agent to the operations it needs, such as creating an invoice or registering a job webhook. You choose the operations it may call, so reading purchase orders or time entries is not included unless you add them.
- **Credential handling:** Your Acrual bearer token is stored once, encrypted, by your own Jentic One instance and injected as the Authorization header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create an Acrual invoice' or 'register a job webhook', and Jentic returns the matching Acrual operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Xero Accounting API** — Pair Acrual job and invoice data with Xero's general ledger and bank feeds.
- **Actionstep API** — Practice management for legal firms - same idea of jobs, time, and invoicing for a different industry.
- **Sage API** — Sync Acrual invoices and purchase orders into Sage for full accounting and payroll.

## FAQ

### Why is there no official OpenAPI spec for Acrual API?

Acrual does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Acrual API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Acrual API use?

Acrual uses HTTP bearer token authentication. You pass an Authorization: Bearer <token> header on every request. Through Jentic, the bearer token is stored encrypted in your Jentic One instance and never enters the agent's context - the agent receives a scoped execution handle instead of the raw secret.

### Can I create invoices and purchase orders with the Acrual API?

Yes. POST to /v1.0/invoices to issue an invoice and POST to /v1.0/purchase-orders to raise a PO. Both can be linked back to a job and a client record. The spec covers 46 operations in total across jobs, invoices, quotes, purchase orders, time entries, suppliers, and webhooks.

### What are the rate limits for the Acrual API?

The OpenAPI spec does not declare explicit rate limits, so check Acrual's developer portal for the current ceiling. Build retries with exponential backoff around 429 responses, and prefer webhook subscriptions on /v1.0/hooks for change notifications instead of polling.

### How do I subscribe to invoice events with the Acrual API through Jentic?

Run pip install jentic, search Jentic for 'register an Acrual webhook', load the schema for POST /v1.0/hooks, and execute it with the target URL and event type. Jentic handles the bearer auth via its vault, so the only inputs your agent needs are the callback URL and the event filter.

### Does the Acrual API support file attachments on jobs?

Yes. The /v1.0/jobs/{id}/files and /v1.0/jobs/{id}/files/folder endpoints let you upload and organise files inside a job folder, which is how construction crews keep site photos, drawings, and signed variations attached to the job record.

### Can I limit what my agent is allowed to do with the Acrual API?

Yes. Because Jentic One is self-hosted, you decide which Acrual operations the agent may call, and your own rules determine the credentials it can use. Many of these endpoints, such as creating an invoice on /v1.0/invoices or registering a job webhook on /v1.0/hooks, take the job, invoice, or hook details in the request body rather than a resource id in the URL, so you scope the agent to just the operations it needs. Reading purchase orders on /v1.0/purchase-orders or time entries on /v1.0/time-entries stays off unless you explicitly add those operations.
