FreeAgent Invoices API
The Invoices API from FreeAgent — 10 operation(s) for invoices.
The Invoices API from FreeAgent — 10 operation(s) for invoices.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/freeagent-invoices-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: FreeAgent BankAccounts Invoices API
description: 'FreeAgent is UK-focused cloud accounting software. The API is RESTful and
exposes contacts, invoices, bank accounts, projects, expenses, bills,
timeslips, tax timeline, and more. OAuth 2.0 (authorization code) is
required for access. JSON and XML responses are supported.
Sandbox base URL: https://api.sandbox.freeagent.com
'
version: '2'
contact:
name: FreeAgent API Support
url: https://dev.freeagent.com/
servers:
- url: https://api.freeagent.com/v2
description: Production
- url: https://api.sandbox.freeagent.com/v2
description: Sandbox
security:
- oauth2: []
tags:
- name: Invoices
paths:
/invoices:
get:
summary: List invoices
operationId: listInvoices
tags:
- Invoices
parameters:
- name: view
in: query
schema:
type: string
enum:
- all
- recent_open_or_overdue
- open
- overdue
- draft
- paid
- name: contact
in: query
schema:
type: string
format: uri
- name: project
in: query
schema:
type: string
format: uri
- name: nested_invoice_items
in: query
schema:
type: boolean
- name: updated_since
in: query
schema:
type: string
format: date-time
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/per_page'
responses:
'200':
description: Invoices list.
post:
summary: Create invoice
operationId: createInvoice
tags:
- Invoices
responses:
'201':
description: Invoice created.
/invoices/{id}:
parameters:
- $ref: '#/components/parameters/id'
get:
summary: Get invoice
operationId: getInvoice
tags:
- Invoices
responses:
'200':
description: Invoice.
put:
summary: Update invoice
operationId: updateInvoice
tags:
- Invoices
responses:
'200':
description: Updated.
delete:
summary: Delete invoice
operationId: deleteInvoice
tags:
- Invoices
responses:
'204':
description: Deleted.
/invoices/{id}/pdf:
parameters:
- $ref: '#/components/parameters/id'
get:
summary: Get invoice as PDF
operationId: getInvoicePdf
tags:
- Invoices
responses:
'200':
description: PDF document.
content:
application/pdf: {}
/invoices/{id}/transitions/mark_as_sent:
parameters:
- $ref: '#/components/parameters/id'
put:
summary: Mark invoice as sent
operationId: invoiceMarkAsSent
tags:
- Invoices
responses:
'200':
description: Status updated.
/invoices/{id}/transitions/mark_as_scheduled:
parameters:
- $ref: '#/components/parameters/id'
put:
summary: Schedule invoice for sending
operationId: invoiceMarkAsScheduled
tags:
- Invoices
responses:
'200':
description: Status updated.
/invoices/{id}/transitions/mark_as_draft:
parameters:
- $ref: '#/components/parameters/id'
put:
summary: Revert invoice to draft
operationId: invoiceMarkAsDraft
tags:
- Invoices
responses:
'200':
description: Status updated.
/invoices/{id}/transitions/mark_as_cancelled:
parameters:
- $ref: '#/components/parameters/id'
put:
summary: Cancel invoice
operationId: invoiceMarkAsCancelled
tags:
- Invoices
responses:
'200':
description: Status updated.
/invoices/{id}/duplicate:
parameters:
- $ref: '#/components/parameters/id'
post:
summary: Duplicate invoice
operationId: duplicateInvoice
tags:
- Invoices
responses:
'201':
description: Duplicate created.
/invoices/{id}/send_email:
parameters:
- $ref: '#/components/parameters/id'
post:
summary: Email invoice
operationId: emailInvoice
tags:
- Invoices
responses:
'200':
description: Email queued.
/invoices/timeline:
get:
summary: Invoice activity timeline
operationId: invoicesTimeline
tags:
- Invoices
responses:
'200':
description: Timeline.
components:
parameters:
per_page:
name: per_page
in: query
schema:
type: integer
minimum: 1
maximum: 100
id:
name: id
in: path
required: true
schema:
type: string
page:
name: page
in: query
schema:
type: integer
minimum: 1
securitySchemes:
oauth2:
type: oauth2
description: 'OAuth 2.0 authorization code flow. Access tokens valid for ~1 hour;
refresh tokens used to obtain new access tokens.
'
flows:
authorizationCode:
authorizationUrl: https://api.freeagent.com/v2/approve_app
tokenUrl: https://api.freeagent.com/v2/token_endpoint
refreshUrl: https://api.freeagent.com/v2/token_endpoint
scopes: {}