canonical: https://jentic.com/apis/avaza.com/avaza

# Avaza API

The Avaza API is the integration surface for Avaza's all-in-one project management, time tracking, expenses, quotes, and invoicing platform. It exposes 87 operations across projects, tasks, timesheets, schedules, leave, bills, invoices, and customer records, secured by OAuth 2.0 implicit flow with access tokens that last one day and refresh tokens that last 180 days. The API respects the security roles assigned to the authenticating Avaza user and filters returned data accordingly.

## For AI agents

Manage projects, tasks, timesheets, schedules, expenses, and invoices in Avaza so agents can drive end-to-end professional-services workflows.

## Scope

Does not handle payment processing, full general-ledger accounting, or HR payroll - use for project, time, schedule, and invoicing workflows only.

## Capabilities

- Create and update projects with task lists and team assignments through `/api/Project` endpoints
- Log time entries against tasks and projects via the timesheet endpoints, ready for invoicing or payroll
- Schedule billable bookings and leave for team members through ScheduleSeries operations
- Issue customer invoices and bills, including line items, taxes, and payment status, via `/api/Invoice` and `/api/Bill`
- Manage customer records, contacts, and tags so timesheets and invoices link to the correct account

## Use cases

### Time Tracking and Invoice Generation

Professional-services teams use the Avaza API to capture timesheets against project tasks and then convert unbilled time into invoices for clients. The flow links `/api/Timesheet` entries to projects and customers and rolls them into `/api/Invoice` records, replacing manual exports between spreadsheets and accounting tools.

Example prompt: List timesheet entries for project {id} since the last invoice date, group by user and task, and create a draft invoice with one line per task at the user's billable rate

### Project and Task Orchestration

Agencies orchestrate project setup by creating projects, assigning team members, and seeding task lists straight from a brief. Avaza's project, task, and section endpoints model the typical agency hierarchy, removing the need to click through the web UI for every new engagement.

Example prompt: Create a project named 'Acme Website Rebuild' under customer {id}, add sections for Discovery, Design, Build, and seed five tasks per section with default estimates

### Resource Scheduling and Leave

Operations and resourcing teams use ScheduleSeries to book team members onto projects and record leave so capacity views stay accurate. Bookings and leave roll up into the schedule view and feed back into utilisation reporting alongside actual time entries.

Example prompt: Add a booking for user {id} on project {projectId} from 2026-06-15 to 2026-06-19 at 8 hours per day, then list any conflicts with existing leave

### Customer and Invoice Lifecycle

Finance teams maintain customer records, send invoices, and track payments and bills through the Avaza API. The `/api/Customer`, `/api/Invoice`, and `/api/InvoicePayment` endpoints cover the full receivables cycle, while `/api/Bill` and `/api/BillPayment` cover supplier payables.

Example prompt: Find all invoices for customer {id} with status Sent older than 30 days and post a reminder note plus a payment-link follow-up to each

### AI Agent Project Operations via Jentic

AI agents handling project status, time logging, and invoice chasing call Avaza through Jentic so a single conversational request can update tasks, log time, and generate invoices without bouncing between tools. Jentic resolves OAuth and exposes the 87 Avaza operations as discoverable tools.

Example prompt: Given a Slack message 'I worked 3 hours on the Acme launch yesterday', search Jentic for 'log a timesheet entry', load the schema, and post the entry against the matching Avaza task

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/api/Project` | List projects under the account |
| POST | `/api/Timesheet` | Log a time entry against a task |
| POST | `/api/Invoice` | Create an invoice for a customer |
| POST | `/ScheduleSeries/AddBooking` | Add a resource booking on a project |
| POST | `/ScheduleSeries/AddLeave` | Record a leave booking for a user |
| GET | `/api/Bill` | List supplier bills |

## Key resources

- **Projects and Tasks** — Manage projects, sections, tasks, and assignments
- **Timesheets** — Log and retrieve time entries against projects and tasks
- **Schedule and Leave** — Book team members and record leave through ScheduleSeries
- **Invoices and Bills** — Issue customer invoices, record payments, and track supplier bills
- **Customers and Contacts** — Maintain customer records and contact details

## Why Jentic

- **Setup:** Wiring Avaza by hand means running its OAuth2 authorization flow, refreshing the daily access token yourself, and mapping project, timesheet, and invoice payloads across dozens of operations. Through Jentic you install once, import the Avaza API from the API Directory, store the OAuth credentials once, and your agent calls it.
- **Permission scoping:** Avaza's create calls, such as POST `/api/Timesheet` and POST `/api/Invoice`, carry their target details in the request body rather than in the URL, so scoping is by operation: limit the agent to the operations it needs, such as reading projects or logging a timesheet. You choose which operations it may call, so raising an invoice is only available if you include it.
- **Credential handling:** Your Avaza OAuth client credentials and refresh token are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'log time on a project' or 'create an invoice', and Jentic returns the matching Avaza operation with its request and response schemas so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **ClickUp** — ClickUp covers project and task management at larger scale but lacks Avaza's built-in invoicing and timesheet-to-invoice flow.
- **Toggl Track** — Toggl Track focuses purely on time tracking and reports, without Avaza's project, schedule, and invoicing surface.
- **Stripe** — Pair Avaza invoices with Stripe to collect online card or ACH payments against the invoice link.

## FAQ

### What authentication does the Avaza API use?

Avaza supports OAuth 2.0 implicit and authorization-code flows plus a Personal Access Token. Access tokens last one day and refresh tokens last 180 days. Through Jentic, the OAuth client and refresh token live in your Jentic One instance and tokens are refreshed automatically - agents never see raw credentials.

### Can I create invoices through the Avaza API?

Yes. POST `/api/Invoice` creates an invoice with line items, customer, and tax details, and POST `/api/InvoicePayment` records payments against it. The Invoice endpoints respect the role permissions of the authenticating Avaza user.

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

Avaza does not publish a fixed rate limit; throttling is applied per-account at the platform level. Plan for short bursts followed by pauses, watch for HTTP 429 responses, and stagger bulk timesheet imports rather than firing thousands of requests in parallel.

### How do I log a timesheet entry through Jentic?

Search Jentic for 'log a timesheet entry', load the schema for POST `/api/Timesheet`, and execute with the user, project, task, date, and duration. The agent reads the existing project list first if it doesn't already know the project ID.

### Does the Avaza API support webhooks?

Yes - Avaza publishes webhook notifications for events such as invoice payments and task changes. The webhook configuration is managed in the Avaza account settings rather than via the OpenAPI surface, so configure subscriptions in-app and consume the events from your endpoint.

### Can I schedule bookings and leave with the Avaza API?

Yes. `/ScheduleSeries/AddBooking` creates a resource booking against a project and `/ScheduleSeries/AddLeave` records leave. EditBooking and EditLeave update existing entries, and the schedule data feeds capacity reporting in Avaza.

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

Yes. Because you self-host Jentic One, your own rules decide which Avaza operations the agent may call and which stored credentials it may use. Avaza's create calls, such as POST `/api/Timesheet` and POST `/api/Invoice`, carry their target details in the request body rather than the URL, so you scope access by operation: allow the agent to read projects and log timesheets while withholding invoice creation, for example. Raising an invoice is available only if you include that operation in what the agent is permitted to run.
