FreeAgent Invoices API

The Invoices API from FreeAgent — 10 operation(s) for invoices.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/freeagent-invoices-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

freeagent-invoices-api-openapi.yml Raw ↑
openapi: 3.1.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:
    id:
      name: id
      in: path
      required: true
      schema:
        type: string
    per_page:
      name: per_page
      in: query
      schema:
        type: integer
        minimum: 1
        maximum: 100
    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: {}