Teamleader Invoices API

The Invoices API from Teamleader — 9 operation(s) for invoices.

Operations 9

POST /invoices.book Book a draft invoice #
POST /invoices.copy Creates a new draft invoice based on another invoice #
POST /invoices.delete Delete an existing invoice #
POST /invoices.download Download an invoice in a specific format #
POST /invoices.draft Draft a new invoice #
POST /invoices.info Get details for a single invoice #
POST /invoices.list List invoices with filtering and pagination support #
POST /invoices.update Update a draft invoice. Booked invoices cannot be updated #
POST /invoices.updateBooked Update a booked invoice #

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/teamleader-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 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 Specification

teamleader-invoices-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Teamleader Invoices API
  version: '2026-09-22'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-09-22: 58 operation(s) read from 60 public documentation page(s) (each operation names its page in x-source). This is not the provider''s published contract; Teamleader has published no machine-readable contract that the pipeline could find. Engine: anthropic.'
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-09-22'
  x-generator: generate-contract-from-docs.py
  x-engine: anthropic
  x-sources:
  - https://developer.focus.teamleader.eu/docs/authentication
  - https://developer.focus.teamleader.eu/docs/general-principles
  - https://developer.focus.teamleader.eu/docs/api/deals-list
  - https://developer.focus.teamleader.eu/docs/api/deals-info
  - https://developer.focus.teamleader.eu/docs/api/deals-create
  - https://developer.focus.teamleader.eu/docs/api/deals-update
  - https://developer.focus.teamleader.eu/docs/api/deals-move
  - https://developer.focus.teamleader.eu/docs/api/deals-win
  - https://developer.focus.teamleader.eu/docs/api/deals-lose
  - https://developer.focus.teamleader.eu/docs/api/deals-delete
  - https://developer.focus.teamleader.eu/docs/api/lost-reasons-list
  - https://developer.focus.teamleader.eu/docs/api/level-two-areas-list
  - https://developer.focus.teamleader.eu/docs/api/files-list
  - https://developer.focus.teamleader.eu/docs/api/files-info
  - https://developer.focus.teamleader.eu/docs/api/files-download
  - https://developer.focus.teamleader.eu/docs/api/files-upload
  - https://developer.focus.teamleader.eu/docs/api/files-delete
  - https://developer.focus.teamleader.eu/docs/api/ticket-status-list
  - https://developer.focus.teamleader.eu/docs/api/tasks-list
  - https://developer.focus.teamleader.eu/docs/api/tasks-info
  - https://developer.focus.teamleader.eu/docs/api/tasks-create
  - https://developer.focus.teamleader.eu/docs/api/tasks-update
  - https://developer.focus.teamleader.eu/docs/api/tasks-complete
  - https://developer.focus.teamleader.eu/docs/api/tasks-reopen
  - https://developer.focus.teamleader.eu/docs/api/tasks-delete
  - https://developer.focus.teamleader.eu/docs/api/tasks-schedule
  - https://developer.focus.teamleader.eu/docs/api/user-availability-daily
  - https://developer.focus.teamleader.eu/docs/api/tickets-list
  - https://developer.focus.teamleader.eu/docs/api/tickets-info
  - https://developer.focus.teamleader.eu/docs/api/tickets-create
  - https://developer.focus.teamleader.eu/docs/api/tickets-update
  - https://developer.focus.teamleader.eu/docs/api/tickets-list-messages
  - https://developer.focus.teamleader.eu/docs/api/tickets-get-message
  - https://developer.focus.teamleader.eu/docs/api/tickets-import-message
  - https://developer.focus.teamleader.eu/docs/api/tickets-add-reply
  - https://developer.focus.teamleader.eu/docs/api/tickets-add-internal-message
  - https://developer.focus.teamleader.eu/docs/api/timers-update
  - https://developer.focus.teamleader.eu/docs/api/contacts-list
  - https://developer.focus.teamleader.eu/docs/api/contacts-info
  - https://developer.focus.teamleader.eu/docs/api/contacts-add
  - https://developer.focus.teamleader.eu/docs/api/contacts-update
  - https://developer.focus.teamleader.eu/docs/api/contacts-delete
  - https://developer.focus.teamleader.eu/docs/api/contacts-tag
  - https://developer.focus.teamleader.eu/docs/api/contacts-untag
  - https://developer.focus.teamleader.eu/docs/api/contacts-link-to-company
  - https://developer.focus.teamleader.eu/docs/api/contacts-unlink-from-company
  - https://developer.focus.teamleader.eu/docs/api/contacts-update-company-link
  - https://developer.focus.teamleader.eu/docs/api/contacts-upload-avatar
  - https://developer.focus.teamleader.eu/docs/api/days-off-bulk-delete
  - https://developer.focus.teamleader.eu/docs/api/expenses-list
  - https://developer.focus.teamleader.eu/docs/api/payment-methods-list
  - https://developer.focus.teamleader.eu/docs/api/invoices-list
  - https://developer.focus.teamleader.eu/docs/api/invoices-info
  - https://developer.focus.teamleader.eu/docs/api/invoices-download
  - https://developer.focus.teamleader.eu/docs/api/invoices-draft
  - https://developer.focus.teamleader.eu/docs/api/invoices-update
  - https://developer.focus.teamleader.eu/docs/api/invoices-update-booked
  - https://developer.focus.teamleader.eu/docs/api/invoices-copy
  - https://developer.focus.teamleader.eu/docs/api/invoices-book
  - https://developer.focus.teamleader.eu/docs/api/invoices-delete
servers:
- url: https://api.focus.teamleader.eu
security:
- bearer: []
tags:
- name: Invoices
paths:
  /invoices.book:
    post:
      operationId: post_invoices_book
      tags:
      - Invoices
      summary: Book a draft invoice
      x-source: https://developer.focus.teamleader.eu/docs/api/invoices-book
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostInvoicesBookRequest'
      responses:
        '204':
          description: Success (status as documented)
  /invoices.copy:
    post:
      operationId: post_invoices_copy
      tags:
      - Invoices
      summary: Creates a new draft invoice based on another invoice
      x-source: https://developer.focus.teamleader.eu/docs/api/invoices-copy
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostInvoicesCopyRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostInvoicesCopyResponse'
  /invoices.delete:
    post:
      operationId: post_invoices_delete
      tags:
      - Invoices
      summary: Delete an existing invoice
      description: Delete an existing invoice. Only possible for draft invoices or the last booked invoice.
      x-source: https://developer.focus.teamleader.eu/docs/api/invoices-delete
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostInvoicesDeleteRequest'
      responses:
        '204':
          description: Success (status as documented)
  /invoices.download:
    post:
      operationId: post_invoices_download
      tags:
      - Invoices
      summary: Download an invoice in a specific format
      x-source: https://developer.focus.teamleader.eu/docs/api/invoices-download
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostInvoicesDownloadRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostInvoicesDownloadResponse'
  /invoices.draft:
    post:
      operationId: post_invoices_draft
      tags:
      - Invoices
      summary: Draft a new invoice
      x-source: https://developer.focus.teamleader.eu/docs/api/invoices-draft
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostInvoicesDraftRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostInvoicesDraftResponse'
  /invoices.info:
    post:
      operationId: post_invoices_info
      tags:
      - Invoices
      summary: Get details for a single invoice
      x-source: https://developer.focus.teamleader.eu/docs/api/invoices-info
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostInvoicesInfoRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostInvoicesInfoResponse'
  /invoices.list:
    post:
      operationId: post_invoices_list
      tags:
      - Invoices
      summary: List invoices with filtering and pagination support
      x-source: https://developer.focus.teamleader.eu/docs/general-principles
      parameters:
      - name: filter
        in: query
        required: false
        schema:
          type: string
        description: Filter criteria for invoices, such as department_id
      - name: page
        in: query
        required: false
        schema:
          type: string
        description: Pagination settings with size and number
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostInvoicesListRequest'
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostInvoicesListResponse'
  /invoices.update:
    post:
      operationId: post_invoices_update
      tags:
      - Invoices
      summary: Update a draft invoice. Booked invoices cannot be updated
      x-source: https://developer.focus.teamleader.eu/docs/api/invoices-update
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostInvoicesUpdateRequest'
      responses:
        '204':
          description: Success (status as documented)
  /invoices.updateBooked:
    post:
      operationId: post_invoices_updateBooked
      tags:
      - Invoices
      summary: Update a booked invoice
      x-source: https://developer.focus.teamleader.eu/docs/api/invoices-update-booked
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostInvoicesUpdatebookedRequest'
      responses:
        '204':
          description: Success (status as documented)
components:
  schemas:
    PostInvoicesInfoResponse:
      type: object
      properties:
        data:
          type: object
    PostInvoicesDownloadResponse:
      type: object
      properties:
        data:
          type: object
    PostInvoicesBookRequest:
      type: object
      properties:
        id:
          type: string
        'on':
          type: string
      required:
      - id
      - 'on'
    PostInvoicesListRequest:
      type: object
      properties:
        filter:
          type: string
          description: Filter object with department_id and other criteria
        page:
          type: string
          description: Page object with size and number properties
    PostInvoicesInfoRequest:
      type: object
      properties:
        id:
          type: string
        includes:
          type: string
          description: when used, the response will include totals.due_incasso_inclusive, totals.fixed_late_fee and totals.interest
      required:
      - id
    PostInvoicesDeleteRequest:
      type: object
      properties:
        id:
          type: string
      required:
      - id
    PostInvoicesDownloadRequest:
      type: object
      properties:
        id:
          type: string
        format:
          type: string
          description: 'Possible values: [pdf, ubl/e-fff, ubl/peppol_bis_3, ubl/xrechnung]'
      required:
      - id
      - format
    PostInvoicesDraftRequest:
      type: object
      properties:
        invoicee:
          type: object
        department_id:
          type: string
        payment_term:
          type: object
        currency:
          type: object
        project_id:
          type: string
        purchase_order_number:
          type: string
        quotation_id:
          type: string
          description: Links the created invoice to the source quotation and its deal, marking the deal as won.
        grouped_lines:
          type: object
        invoice_date:
          type: string
        discounts:
          type: object
        note:
          type: string
          description: This is the remarks field
        invoice_content:
          type: string
          description: Whether the invoice is for goods, services, or both. Required when the department and the customer's invoicing address are both in France and the account sends invoices via Peppol from France. Cleared otherwise.
        expected_payment_method:
          type: object
        custom_fields:
          type: object
        document_template_id:
          type: string
        delivery_date:
          type: string
      required:
      - invoicee
      - department_id
      - payment_term
      - grouped_lines
    PostInvoicesListResponse:
      type: object
      properties:
        data:
          type: array
          description: Array of invoice objects
        meta:
          type: object
          description: Pagination metadata including page and matches
    PostInvoicesUpdateRequest:
      type: object
      properties:
        id:
          type: string
        invoicee:
          type: object
        payment_term:
          type: object
        currency:
          type: object
        project_id:
          type: string
        purchase_order_number:
          type: string
        grouped_lines:
          type: object
        invoice_date:
          type: string
        note:
          type: string
          description: This is the remarks field
        invoice_content:
          type: string
          description: Whether the invoice is for goods, services, or both. Required when the department and the customer's invoicing address are both in France and the account sends invoices via Peppol from France. Cleared otherwise.
        discounts:
          type: object
        expected_payment_method:
          type: object
        custom_fields:
          type: object
        document_template_id:
          type: string
        delivery_date:
          type: string
      required:
      - id
    PostInvoicesUpdatebookedRequest:
      type: object
      properties:
        id:
          type: string
        invoicee:
          type: object
        payment_term:
          type: object
        project_id:
          type: string
        grouped_lines:
          type: object
        invoice_date:
          type: string
        note:
          type: string
        invoice_content:
          type: string
          description: Whether the invoice is for goods, services, or both. Required when the department and the customer's invoicing address are both in France and the account sends invoices via Peppol from France. Cleared otherwise.
        expected_payment_method:
          type: object
        custom_fields:
          type: object
      required:
      - id
    PostInvoicesDraftResponse:
      type: object
      properties:
        data:
          type: object
    PostInvoicesCopyRequest:
      type: object
      properties:
        id:
          type: string
      required:
      - id
    PostInvoicesCopyResponse:
      type: object
      properties:
        data:
          type: object
  securitySchemes:
    bearer:
      type: http
      scheme: bearer