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