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

# Invoice Ninja

Jentic publishes the only available OpenAPI specification for Invoice Ninja, keeping it validated and agent-ready. Invoice Ninja is an open-source invoicing, billing, and time-tracking platform that lets businesses issue invoices, accept online payments, manage clients, and reconcile bank transactions. The API exposes 331 endpoints covering invoices, quotes, recurring invoices, credits, payments, expenses, projects, tasks, vendors, bank integrations, and webhooks. It is built for service businesses, freelancers, and agencies that want to run their full quote-to-cash workflow programmatically.

## For AI agents

Issue invoices, record payments, track expenses, and manage clients in Invoice Ninja so an agent can run an end-to-end billing workflow.

## Scope

Does not handle card processing, payroll, or general ledger accounting - use for invoicing, client billing, and quote-to-cash workflows only.

## Capabilities

- Issue invoices and quotes to clients with line items, tax rates, and custom designs
- Record client payments and apply them across one or more outstanding invoices
- Manage recurring invoices and dunning schedules for subscription-style billing
- Track billable time on projects and tasks and convert it into invoice line items
- Connect bank integrations through Yodlee and reconcile imported transactions against expenses
- Send branded invoice emails and capture client portal events through webhooks

## Use cases

### Freelance Quote-to-Cash

Freelancers and small agencies can run their full quote-to-cash workflow against Invoice Ninja: create a client, send a quote, convert it to an invoice once approved, email it from the client portal, and reconcile the payment when it arrives. The 331-endpoint API covers clients, quotes, invoices, payments, and credits, so an integration replaces the manual portal click-through.

Example prompt: Create a client, issue a $1,500 invoice with two line items, email it via the client portal, and confirm payment via the `/api/v1/payments` endpoint.

### Subscription and Recurring Billing

Service businesses with monthly retainers can use the recurring_invoices endpoints to schedule billing cycles, auto-bill saved payment methods, and apply credits when clients pause. Invoice Ninja handles the dunning and the schedule; agents trigger creation, pause, or resume programmatically without touching the admin UI.

Example prompt: Create a recurring invoice template for $99/month with auto-billing enabled and schedule the first cycle for next Monday.

### Bank Reconciliation Workflow

Operations teams can pull imported bank transactions through the bank_integrations and bank_transactions endpoints, match them against open invoices, and create expense records for outflows. The Yodlee integration handles the feed; the API exposes the matched and unmatched transactions for review.

Example prompt: List unmatched bank transactions, match the deposit of $1,500 to invoice INV-1042, and mark the invoice as paid.

### Agent-Driven Accounts Receivable

An AI agent connected via Jentic can run weekly AR collection: pull all overdue invoices, send a polite reminder through the API, log a follow-up activity, and report which clients still need a phone call. The agent uses Jentic to discover the invoices, payments, and activities operations without browsing the 331-endpoint spec.

Example prompt: Find every invoice past due by more than 14 days, send a reminder email through Invoice Ninja, and log an activity for each client.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/api/v1/invoices` | List invoices |
| POST | `/api/v1/invoices` | Create an invoice |
| POST | `/api/v1/payments` | Record a payment |
| POST | `/api/v1/recurring_invoices` | Create a recurring invoice |
| GET | `/api/v1/clients` | List clients |
| POST | `/api/v1/quotes` | Create a quote |
| GET | `/api/v1/bank_integrations` | List bank integrations |

## Key resources

- **Invoices** — Create, send, mark paid, and download PDFs for client invoices.
- **Payments** — Record client payments and apply them across one or more invoices.
- **Recurring Invoices** — Schedule recurring billing with auto-bill and dunning rules.
- **Quotes** — Issue quotes that can be converted into invoices on approval.
- **Bank Integrations** — Connect Yodlee bank feeds and reconcile imported transactions.
- **Clients** — Maintain client records, contacts, and outstanding balances.
- **Expenses** — Track business expenses against vendors, projects, and tax rates.

## Why Jentic

- **Setup:** Wiring Invoice Ninja by hand means passing your API-token header on every request, pointing at your own hosted base URL, and hand-navigating a surface of hundreds of paths across invoices, payments, clients, and quotes yourself. Through Jentic you install once, import Invoice Ninja from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Invoice Ninja groups records under collection paths like `/api/v1/invoices` and `/api/v1/payments` and identifies the target record in the request rather than pinning one entity in the URL, so scoping is by operation: limit the agent to the operations it needs, such as creating an invoice or reading clients. Because you pick that set, write operations like creating payments or recurring invoices are excluded unless you add them.
- **Credential handling:** Your Invoice Ninja API token is stored once, encrypted, by your own Jentic One instance and injected as the API-token header at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'issue an invoice' or 'record a payment against an invoice', and Jentic returns the matching Invoice Ninja operation with its input schema so the agent calls the right endpoint without browsing hundreds of paths.

## Related APIs

- **Stripe** — Stripe processes the card payment that Invoice Ninja then records against the invoice.
- **Xero Accounting** — Xero is a full double-entry accounting platform; Invoice Ninja focuses on invoicing and quote-to-cash for service businesses.
- **Sage** — Sage is a closed SaaS accounting platform; Invoice Ninja is open source and self-hostable with an invoicing-first focus.

## FAQ

### Why is there no official OpenAPI spec for Invoice Ninja?

Invoice Ninja does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Invoice Ninja 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 Invoice Ninja API use?

Invoice Ninja uses an X-API-Token header issued from the user account settings. The published OpenAPI document does not declare a securityScheme, so the token is sent as a custom header on every request. Through Jentic the token is stored in the encrypted vault and only a scoped reference is exposed to the agent.

### Can I create a recurring invoice through the Invoice Ninja API?

Yes. POST to `/api/v1/recurring_invoices` to create the template, set frequency_id and next_send_date, and enable auto_bill to charge a saved payment method on each cycle. The endpoint returns the recurring invoice id which you can pause or resume later.

### What are the rate limits for the Invoice Ninja API?

Self-hosted instances do not enforce a rate limit by default; the hosted ninja.invoicing.co service applies per-account throttling that is documented in the account settings rather than the OpenAPI spec. Run the spec against your own ninja.test or hosted base URL and back off on 429 responses.

### How do I issue an invoice through Invoice Ninja with Jentic?

Search Jentic for 'create an invoice in Invoice Ninja', load the schema for POST `/api/v1/invoices`, then execute with client_id and line_items. The full flow is: pip install jentic, then await client.search, await client.load, await client.execute.

### Does the Invoice Ninja API support webhooks?

Yes. The `/api/v1/webhooks` endpoints let you register a target URL and subscribe to events such as invoice.created, payment.created, and quote.approved so an agent can react when a client interacts with the portal.

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

Yes. Because you run Jentic One yourself, your own rules decide which Invoice Ninja operations and credentials the agent can use, and scoping here is by operation rather than by a single pinned record. You can grant read-only calls such as listing clients or invoices under `/api/v1/clients` and `/api/v1/invoices` while withholding write operations. Creating payments through `/api/v1/payments` or recurring invoices through `/api/v1/recurring_invoices` stays excluded unless you add those operations to the set the agent may call.
