FreeAgent Invoices API

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

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: {}