openapi: 3.1.0 info: title: Moneybird API description: The Moneybird API allows you to interact with a Moneybird account in a RESTful manner. For comprehensive and up-to-date information on authentication, endpoints, usage, webhooks, and best practices, please refer to the documentation at [developer.moneybird.com](https://developer.moneybird.com). All details, examples, and guides are available on their respective pages. version: v2-20260814-745d6b04d8 termsOfService: https://www.moneybird.nl/terms/ contact: name: Moneybird email: support@moneybird.com url: https://developer.moneybird.com servers: - url: https://moneybird.com/api/v2 description: Production server security: - bearerAuth: [] tags: - name: Administrations description: |- Administrations are the top level entities in Moneybird. Use the following endpoints to get information about the administrations you have access to. - name: Assets description: |- Assets are significant purchases, like company cars, laptops or furniture, that are used over multiple years. They are recorded to manage depreciation and comply with tax regulations. - name: Contacts description: |- Contacts are the entities in Moneybird that represent your customers, suppliers or other business relations. Use the following endpoints to get information about contacts, create new contacts or update existing contacts. - name: Custom fields description: Custom fields can be used to add extra information to sales invoices, contacts and identities. - name: Customer contact portal description: |- The customer contact portal allows you to create temporary links to the customer contact portal. Allowing your customers to view their invoices, subscriptions and other related information. - name: Document styles description: |- Document styles are used to define the layout of documents, like invoices and estimates. You can have multiple document styles for different purposes. - name: Downloads description: |- Downloads are files that have been generated as exports from your administration. These can be CSV exports of contacts, sales invoices, time entries, or various financial reports. Use these endpoints to retrieve a list of available downloads and to download the files. - name: 'Documents: General documents' description: |- General documents are documents that are not invoices, estimates, or other specific document types. They can be used to store other financial documents. - name: 'Documents: General journal documents' description: |- General journal documents are used for manual bookkeeping entries, to correct errors or make adjustments. - name: 'Documents: Purchase invoices' description: Purchase invoices are invoices you receive from your suppliers. - name: 'Documents: Receipts' description: Receipts are proofs of payment for expenses. - name: 'Documents: Typeless documents' description: |- Typeless documents are documents of which the type is not yet known. For example, a document uploaded via email or via the bulk uploader. It is not possible to update a typeless document, except for adding attachments. You will need to set its type first. You cannot set the type of typeless documents using the API yet, but you can do this via the website. - name: Estimates description: |- Estimates (or quotes) are proposals for products or services that you can send to your clients. - name: External sales invoices description: |- External sales invoices are invoices created in other systems that you want to import into Moneybird for a complete overview of your revenue. - name: Financial accounts description: |- Financial accounts represent your bank accounts, credit cards, private withdrawals/deposits and other payment services. They are used to track payments and financial mutations. - name: Financial mutations description: Financial mutations are the transactions on your financial accounts. - name: Financial statements description: |- Financial statements are comprised of financial mutations that are booked on a financial account. They provide a detailed record of all transactions for a specific account. - name: Identities description: |- Identities are the different profiles or trade names under which you can send documents from your administration. - name: Ledger accounts description: |- Ledger accounts are the categories in your bookkeeping, like revenue, costs, assets, and liabilities. - name: Payments description: Payments are records of money being transferred for invoices. - name: Products description: Products are the goods or services you sell. You can add them to invoices and estimates. - name: Projects description: |- Projects allow you to group time entries and financials for specific projects you are working on. - name: Purchase transactions description: Purchase transactions are outgoing payments you initiate from Moneybird - name: Recurring sales invoices description: |- Recurring sales invoices are templates for invoices that are sent automatically at a recurring interval. - name: Reports description: |- Reports provide analytical data about your administration, such as revenue and expense breakdowns by various dimensions like projects, contacts, or time periods. - name: Sales invoices description: |- Sales invoices are the invoices you send to your customers for products or services you have delivered. - name: Subscription templates description: Subscription templates define the products and prices for subscriptions. - name: Subscriptions description: |- Subscriptions allow you to automatically invoice customers on a recurring basis for the services you provide. - name: Task lists description: |- Task lists help you organize and track work within an administration. They contain groups of tasks that can be assigned to users and tracked for completion. - name: Task list templates description: |- Task list templates are reusable blueprints for creating task lists with predefined groups and tasks. - name: Tax rates description: Tax rates are the VAT tariffs that apply to your products and services. - name: Time entries description: |- Time entries are used to track time spent on projects, which can then be billed to customers. - name: Users description: |- Administrations can have multiple users. Use the following endpoints to get information about the users in an administration. - name: Verifications description: |- Verifications are used to retrieve all verified information within an administration, such as e-mail addresses, bank account numbers, Chamber of Commerce numbers, and tax numbers. - name: Webhooks description: |- Webhooks are a way to subscribe to events that happen in Moneybird. When an event occurs, Moneybird will send a POST request to the URL you provided. This way, you can keep your own system in sync with Moneybird. For example, you can subscribe to the `contact_created` event to receive a notification when a new contact is created in Moneybird. For a full list of available events and event groups, see the [webhook events documentation](https://developer.moneybird.com/webhooks/events). - name: Workflows description: |- Workflows determine the settings of the invoice and estimate workflow. Use the following to get information about the workflows in an administration. paths: /administrations{format}: get: summary: List all administrations description: Lists all administrations the current user has access to. tags: - Administrations security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/format' responses: '200': description: A list of administrations content: application/json: schema: type: array items: $ref: '#/components/schemas/administration_response' examples: ValidatesThatAUserHasAccessToMultipleAdministrationsViaDifferentWays: summary: Validates that a user has access to multiple administrations via different ways value: - id: '178669891468521646' name: Administratie language: nl currency: EUR country: NL time_zone: Europe/Amsterdam access: accountant_company suspended: false period_locked_until: null period_start_date: '2026-01-01' - id: 123 name: Parkietje B.V. language: nl currency: EUR country: NL time_zone: Europe/Amsterdam access: user suspended: false period_locked_until: null period_start_date: '2026-01-01' ReturnAListOfAdministrationsThatUserHasAccessTo: summary: Return a list of administrations that user has access to value: - id: '178669891495239542' name: Administratie language: nl currency: EUR country: NL time_zone: Europe/Amsterdam access: user suspended: false period_locked_until: null period_start_date: '2026-01-01' - id: 123 name: Parkietje B.V. language: nl currency: EUR country: NL time_zone: Europe/Amsterdam access: user suspended: false period_locked_until: null period_start_date: '2026-01-01' ReturnsAccessTypeUserWhenHavingDirectAccessToTheAdministration: summary: Returns access type user when having direct access to the administration value: - id: '17866989154369781' name: Parkietje B.V. language: nl currency: EUR country: NL time_zone: Europe/Amsterdam access: user suspended: false period_locked_until: null period_start_date: '2026-01-01' operationId: get_administrations /{administration_id}/assets/{id}/disposals{format}: post: summary: Create a disposal description: |- Creates a disposal for the asset at the given date. Requires the asset to not have a disposal already. Furthermore, the asset must be fully depreciated so the value of the asset at the disposal date must be zero. ### Required scope(s) `documents` tags: - Assets security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: type: object unevaluatedProperties: false properties: date: type: string format: date description: Has to be after the purchase date of the asset, and cannot be in the future or in the locked period of the administration. reason: type: string enum: - out_of_use - sold - private_withdrawal - divested required: - date - reason examples: AddsADisposal: summary: Adds a disposal value: date: '2026-08-14' reason: out_of_use responses: '201': description: A disposal content: application/json: schema: $ref: '#/components/schemas/disposal_response' examples: AddsADisposal: summary: Adds a disposal value: date: '2026-08-14' reason: out_of_use externally_booked: false asset_id: '495430063966127905' reinvestment_reserve_sale: null '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400IfTheReasonIsInvalid: summary: Returns a 400 if the reason is invalid value: error: reason does not have a valid value '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404IfTheAssetDoesNotExist: summary: Returns a 404 if the asset does not exist value: error: 'Record not found for model name: asset' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422TheAssetIsNotInvalid: summary: Returns a 422 the asset is not invalid value: error: date: - is invalid, asset is not fully depreciated on this date details: date: - error: invalid_asset_not_fully_depreciated operationId: post_administration_id_assets_id_disposals /{administration_id}/assets/{id}/reinvestment_reserve_purchase{format}: post: summary: Create a reinvestment reserve purchase description: |- Records that part of the asset's purchase value is funded from the reinvestment reserve ("herinvesteringsreserve"). The amount cannot exceed the asset's depreciatable value (purchase value minus residual value), and the asset's purchase date may not lie in the locked period. ### Required scope(s) `documents` tags: - Assets security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: type: object unevaluatedProperties: false properties: amount: $ref: '#/components/schemas/number' description: The amount taken from the reinvestment reserve. required: - amount examples: CreatesAReinvestmentReservePurchase: summary: Creates a reinvestment reserve purchase value: amount: 100 responses: '201': description: A reinvestment reserve purchase content: application/json: schema: $ref: '#/components/schemas/reinvestment_reserve_purchase_response' examples: CreatesAReinvestmentReservePurchase: summary: Creates a reinvestment reserve purchase value: id: '495430066411407349' amount: '100.0' date: '2026-03-01' asset_id: '495430065998268362' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400IfTheAmountIsMissing: summary: Returns a 400 if the amount is missing value: error: Amount is missing, Amount does not have a valid value ReturnsA400IfTheAmountIsNegative: summary: Returns a 400 if the amount is negative value: error: Amount does not have a valid value '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404IfTheAssetDoesNotExist: summary: Returns a 404 if the asset does not exist value: error: 'Record not found for model name: asset' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422IfTheAmountExceedsTheDepreciatableValue: summary: Returns a 422 if the amount exceeds the depreciatable value value: error: amount: - cannot exceed the purchase value minus the residual value - cannot exceed the available reinvestment reserve details: amount: - error: exceeds_depreciatable_value - error: exceeds_available_reserve operationId: post_administration_id_assets_id_reinvestment_reserve_purchase delete: summary: Delete a reinvestment reserve purchase description: |- Removes the reinvestment reserve purchase from the asset. ### Required scope(s) `documents` tags: - Assets security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Reinvestment reserve purchase deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404IfTheAssetHasNoReinvestmentReservePurchase: summary: Returns a 404 if the asset has no reinvestment reserve purchase value: error: Not Found ReturnsA404IfTheAssetDoesNotExist: summary: Returns a 404 if the asset does not exist value: error: 'Record not found for model name: asset' operationId: delete_administration_id_assets_id_reinvestment_reserve_purchase /{administration_id}/assets/{id}/reinvestment_reserve_sale{format}: post: summary: Create a reinvestment reserve sale description: |- Books the book result of the asset's disposal to the reinvestment reserve ("herinvesteringsreserve"). Requires the asset to have a disposal already, and the disposal date may not lie in the locked period. ### Required scope(s) `documents` tags: - Assets security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: type: object unevaluatedProperties: false properties: amount: $ref: '#/components/schemas/number' description: The amount of the book result booked to the reinvestment reserve. required: - amount examples: CreatesAReinvestmentReserveSale: summary: Creates a reinvestment reserve sale value: amount: 100 responses: '201': description: A reinvestment reserve sale content: application/json: schema: $ref: '#/components/schemas/reinvestment_reserve_sale_response' examples: CreatesAReinvestmentReserveSale: summary: Creates a reinvestment reserve sale value: id: '495430061050037801' amount: '100.0' date: '2026-08-14' disposal_id: '495430061021726241' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400IfTheAmountIsMissing: summary: Returns a 400 if the amount is missing value: error: Amount is missing, Amount does not have a valid value ReturnsA400IfTheAmountIsNegative: summary: Returns a 400 if the amount is negative value: error: Amount does not have a valid value '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404IfTheAssetDoesNotExist: summary: Returns a 404 if the asset does not exist value: error: 'Record not found for model name: asset' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422IfTheAssetHasNoDisposal: summary: Returns a 422 if the asset has no disposal value: error: Asset has no disposal operationId: post_administration_id_assets_id_reinvestment_reserve_sale delete: summary: Delete a reinvestment reserve sale description: |- Removes the reinvestment reserve sale from the asset's disposal. ### Required scope(s) `documents` tags: - Assets security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Reinvestment reserve sale deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404IfTheAssetDoesNotExist: summary: Returns a 404 if the asset does not exist value: error: 'Record not found for model name: asset' ReturnsA404IfTheAssetHasNoDisposal: summary: Returns a 404 if the asset has no disposal value: error: Not Found ReturnsA404IfTheAssetSDisposalHasNoReinvestmentReserveSale: summary: Returns a 404 if the asset's disposal has no reinvestment reserve sale value: error: Not Found operationId: delete_administration_id_assets_id_reinvestment_reserve_sale /{administration_id}/assets/{id}/sources/{source_id}{format}: delete: summary: Delete a source description: |- Deletes a source from an asset. Does not delete the detail or the asset ### Required scope(s) `documents` tags: - Assets security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: source_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Source deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404IfTheAssetDoesNotExist: summary: Returns a 404 if the asset does not exist value: error: 'Record not found for model name: asset' ReturnsA404IfTheSourceDoesNotExist: summary: Returns a 404 if the source does not exist value: error: 'Record not found for model name: Source' operationId: delete_administration_id_assets_id_sources_source_id /{administration_id}/assets/{id}/sources{format}: post: summary: Add a source to an asset description: |- Adds a detail or general journal document entry as a source to an asset. The booking must have the same ledger account as the asset. ### Required scope(s) `documents` tags: - Assets security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: type: object unevaluatedProperties: false oneOf: - required: - detail_id properties: detail_id: $ref: '#/components/schemas/identifier' - required: - general_journal_document_entry_id properties: general_journal_document_entry_id: $ref: '#/components/schemas/identifier' examples: CreatesANewDetailSource: summary: Creates a new detail source value: detail_id: 495430077850322050 CreatesANewGeneralJournalDocumentSource: summary: Creates a new general journal document source value: general_journal_document_entry_id: 495430080556696960 responses: '201': description: A detail that is added as a source to an asset content: application/json: schema: $ref: '#/components/schemas/source_response' examples: CreatesANewDetailSource: summary: Creates a new detail source value: id: '495430077865002110' asset_id: '495430077451863121' detail_id: '495430077850322045' CreatesANewGeneralJournalDocumentSource: summary: Creates a new general journal document source value: id: '495430080569279892' asset_id: '495430080163480935' general_journal_document_entry_id: '495430080556696979' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400IfTheDetailIdIsNotAInteger: summary: Returns a 400 if the detail id is not a integer value: error: detail_id is invalid ReturnsA400IfTheGeneralJournalDocumentEntryIdIsNotAnInteger: summary: Returns a 400 if the general journal document entry id is not an integer value: error: general_journal_document_entry_id is invalid '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404IfTheAssetDoesNotExist: summary: Returns a 404 if the asset does not exist value: error: 'Record not found for model name: asset' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422IfTheDetailIsNotValid: summary: Returns a 422 if the detail is not valid value: error: booking: - The ledger account of the source must be equal to the ledger account of the asset details: booking: - error: not_equal_to_asset_ledger_account ReturnsA422IfTheEntryHasADifferentLedgerAccountThanTheAsset: summary: Returns a 422 if the entry has a different ledger account than the asset value: error: booking: - The ledger account of the source must be equal to the ledger account of the asset details: booking: - error: not_equal_to_asset_ledger_account operationId: post_administration_id_assets_id_sources /{administration_id}/assets/{id}/value_changes/arbitrary{format}: post: summary: Create an arbitrary value change description: |- Creates an arbitrary value change for the asset at the given date. If the amount is larger than the value of the asset at the given date, a 422 error will be returned. Any existing linear value changes after the given date will be removed. ### Required scope(s) `documents` tags: - Assets security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: type: object unevaluatedProperties: false properties: date: type: string format: date description: Has to be after the purchase date of the asset, and cannot be in the future or in the locked period of the administration. amount: $ref: '#/components/schemas/number' description: Note that a negative amount means the asset decreases in value while a positive amount means the asset increases in value. description: type: string externally_booked: type: boolean description: Set to true if the value change is already externally booked and doesn't need to be booked by Moneybird. default: false required: - date - amount - description examples: AddsAArbitraryValueChange: summary: Adds a arbitrary value change value: date: '2026-08-14' amount: -10 externally_booked: true description: some description responses: '201': description: A value change content: application/json: schema: $ref: '#/components/schemas/value_change_response' examples: AddsAArbitraryValueChange: summary: Adds a arbitrary value change value: type: arbitrary date: '2026-08-14' amount: '-10.0' description: some description externally_booked: true asset_id: '495430072999610016' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400IfTheDateIsNotAValidDate: summary: Returns a 400 if the date is not a valid date value: error: Date is invalid '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404IfTheAssetDoesNotExist: summary: Returns a 404 if the asset does not exist value: error: 'Record not found for model name: asset' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422IfTheValueChangeIsInvalid: summary: Returns a 422 if the value change is invalid value: error: date: - can not be before the commissioning date of the asset details: date: - error: cannot_be_before_purchase_date operationId: post_administration_id_assets_id_value_changes_arbitrary /{administration_id}/assets/{id}/value_changes/divestment{format}: post: summary: Create a divestment value change description: |- Creates a divestment value change for the asset at the given date. The remaining value of the asset will be taken from the balance sheet and the profit will be booked as book result. The amount of the value change will automatically be set to the value of the asset at the given date. If the value change is created successfully, a disposal will be created for the asset. Any existing linear value changes after the given date will be removed. ### Required scope(s) `documents` tags: - Assets security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: type: object unevaluatedProperties: false properties: date: type: string format: date description: Has to be after the purchase date of the asset, and cannot be in the future or in the locked period of the administration. required: - date examples: AddsADivestmentValueChange: summary: Adds a divestment value change value: date: '2026-08-14' responses: '201': description: A value change content: application/json: schema: $ref: '#/components/schemas/value_change_response' examples: AddsADivestmentValueChange: summary: Adds a divestment value change value: type: divestment date: '2026-08-14' amount: '-12145.67' description: null externally_booked: false asset_id: '495430071509583369' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400IfTheDateIsNotAValidDate: summary: Returns a 400 if the date is not a valid date value: error: Date is invalid '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404IfTheAssetDoesNotExist: summary: Returns a 404 if the asset does not exist value: error: 'Record not found for model name: asset' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422IfTheValueChangeIsInvalid: summary: Returns a 422 if the value change is invalid value: error: date: - can not be before the commissioning date of the asset - must be after the last arbitrary depreciation details: date: - error: cannot_be_before_purchase_date - error: after_arbitrary_changes operationId: post_administration_id_assets_id_value_changes_divestment /{administration_id}/assets/{id}/value_changes/full_depreciation{format}: post: summary: Create a full depreciation value change description: |- Creates a full depreciation value change for the asset at the given date. The remaining value of the asset will be taken from the balance sheet. The amount of the value change will automatically be set to the value of the asset at the given date. If the value change is created successfully, a disposal will be created for the asset. Any existing linear value changes after the given date will be removed. ### Required scope(s) `documents` tags: - Assets security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: type: object unevaluatedProperties: false properties: date: type: string format: date description: Has to be after the purchase date of the asset, and cannot be in the future or in the locked period of the administration. description: type: string required: - date - description examples: AddsAFullDepreciationValueChange: summary: Adds a full depreciation value change value: date: '2026-08-14' description: some description responses: '201': description: A value change content: application/json: schema: $ref: '#/components/schemas/value_change_response' examples: AddsAFullDepreciationValueChange: summary: Adds a full depreciation value change value: type: full_depreciation date: '2026-08-14' amount: '-12145.67' description: some description externally_booked: false asset_id: '495430059245438328' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400IfTheDateIsNotAValidDate: summary: Returns a 400 if the date is not a valid date value: error: Date is invalid '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404IfTheAssetDoesNotExist: summary: Returns a 404 if the asset does not exist value: error: 'Record not found for model name: asset' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422IfTheValueChangeIsInvalid: summary: Returns a 422 if the value change is invalid value: error: date: - can not be before the commissioning date of the asset - must be after the last arbitrary depreciation details: date: - error: cannot_be_before_purchase_date - error: after_arbitrary_changes operationId: post_administration_id_assets_id_value_changes_full_depreciation /{administration_id}/assets/{id}/value_changes/manual{format}: post: summary: Create a manual value change description: |- Creates a manual value change for the asset at the given date. If the amount is larger than the value of the asset at the given date, a 422 error will be returned. ### Required scope(s) `documents` tags: - Assets security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: type: object unevaluatedProperties: false properties: date: type: string format: date description: Has to be after the purchase date of the asset, and cannot be in the future or in the locked period of the administration. amount: $ref: '#/components/schemas/number' description: Note that a negative amount means the asset decreases in value while a positive amount means the asset increases in value. description: type: string externally_booked: type: boolean description: Set to true if the value change is already externally booked and doesn't need to be booked by Moneybird. default: false required: - date - amount - description examples: AddsAManualValueChange: summary: Adds a manual value change value: date: '2026-08-14' amount: -10 externally_booked: true description: some description responses: '201': description: A value change content: application/json: schema: $ref: '#/components/schemas/value_change_response' examples: AddsAManualValueChange: summary: Adds a manual value change value: type: manual date: '2026-08-14' amount: '-10.0' description: some description externally_booked: true asset_id: '495430075218397063' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400IfTheDateIsNotAValidDate: summary: Returns a 400 if the date is not a valid date value: error: Date is invalid '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404IfTheAssetDoesNotExist: summary: Returns a 404 if the asset does not exist value: error: 'Record not found for model name: asset' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422IfTheValueChangeIsInvalid: summary: Returns a 422 if the value change is invalid value: error: date: - can not be before the commissioning date of the asset details: date: - error: cannot_be_before_purchase_date operationId: post_administration_id_assets_id_value_changes_manual /{administration_id}/assets/{id}/value_changes/retroactive_linear_value_changes{format}: post: summary: Create linear value changes retroactively description: |- Creates linear value changes that were not created yet. Use this if a new asset has just been created or if an arbitrary value change was created and the missing linear value changes need to be recalculated and recreated. This will create missing value changes for all months between the purchase date of the asset or the date of the last arbitrary value change and the last month of the administration. Requires a asset with a value change plan (so no assets that belong to a land or building category). Also requires that the asset has remaining value, has missing value changes at the end of some months and that all missing linear value changes are outside the locked period. This process will be performed asynchronously so no result will be returned. Use `Get /assets/:id` to check the result after a while. ### Required scope(s) `documents` tags: - Assets security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': $ref: '#/components/responses/204_no_content' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404IfTheAssetDoesNotExist: summary: Returns a 404 if the asset does not exist value: error: 'Record not found for model name: asset' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422IfTheAssetIsNotValidWithRetroactiveValueChangesScope: summary: Returns a 422 if the asset is not valid with retroactive value changes scope value: error: The value change plan of the asset is not active ReturnsA422IfTheAssetHasNoValueChangePlan: summary: Returns a 422 if the asset has no value change plan value: error: Asset has no value change plan operationId: post_administration_id_assets_id_value_changes_retroactive_linear_value_changes /{administration_id}/assets/{id}{format}: get: summary: Get an asset by ID description: |- Returns the asset with the given ID. ### Required scope(s) `documents` tags: - Assets security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: An asset content: application/json: schema: $ref: '#/components/schemas/asset_response' examples: ReturnsTheAsset: summary: Returns the asset value: id: '495430062546355868' ledger_account_id: '495430062541112987' name: Asset 1 purchase_date: '2026-03-01' purchase_value: '12345.67' calculated_purchase_value: '12345.67' current_value: '12145.67' value_change_plan: lifespan_in_years: 5 residual_value: '10.0' active: true monthly_depreciation: '216.71' disposal: null value_changes: - type: arbitrary date: '2026-04-01' amount: '-50.0' description: Value change 1 externally_booked: false asset_id: '495430062546355868' - type: arbitrary date: '2026-05-01' amount: '-50.0' description: Value change 2 externally_booked: false asset_id: '495430062546355868' - type: arbitrary date: '2026-06-01' amount: '-50.0' description: Value change 3 externally_booked: false asset_id: '495430062546355868' - type: arbitrary date: '2026-07-01' amount: '-50.0' description: Value change 4 externally_booked: false asset_id: '495430062546355868' sources: [] reinvestment_reserve_purchase: null ExposesCalculatedPurchaseValueReducedByTheAppliedReinvestmentReservePurchase: summary: Exposes calculated purchase value reduced by the applied reinvestment reserve purchase value: id: '495430063067498189' ledger_account_id: '495430063061206732' name: Asset 1 purchase_date: '2026-03-01' purchase_value: '1000.0' calculated_purchase_value: '700.0' current_value: '700.0' value_change_plan: null disposal: null value_changes: [] sources: [] reinvestment_reserve_purchase: id: '495430063082178255' amount: '300.0' date: '2026-03-01' asset_id: '495430063067498189' ReturnsTheAssetWithADisposal: summary: Returns the asset with a disposal value: id: '495430063130412760' ledger_account_id: '495430063124121303' name: Asset 1 purchase_date: '2020-08-14' purchase_value: '12345.67' calculated_purchase_value: '12345.67' current_value: '0.0' value_change_plan: lifespan_in_years: 5 residual_value: '10.0' active: false monthly_depreciation: '205.59' disposal: date: '2026-08-14' reason: out_of_use externally_booked: false asset_id: '495430063130412760' reinvestment_reserve_sale: null value_changes: - type: manual date: '2026-08-14' amount: '-12345.67' description: Depreciation externally_booked: false asset_id: '495430063130412760' sources: [] reinvestment_reserve_purchase: null '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404IfTheAssetDoesNotExist: summary: Returns a 404 if the asset does not exist value: error: 'Record not found for model name: asset' operationId: get_administration_id_assets_id patch: summary: Update an asset description: |- Updates the asset with the given ID. If the asset is active (the purchase date is in the past), only the `name` can be updated. ### Required scope(s) `documents` tags: - Assets security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: type: object unevaluatedProperties: false properties: asset: type: object unevaluatedProperties: false properties: name: type: string description: The name of the asset ledger_account_id: $ref: '#/components/schemas/identifier' description: The ID of the ledger account purchase_date: type: string description: The purchase date of the asset purchase_value: $ref: '#/components/schemas/number' description: The purchase value of the asset value_change_plan_attributes: unevaluatedProperties: false properties: lifespan_in_years: $ref: '#/components/schemas/number' description: The lifespan of the asset in years residual_value: $ref: '#/components/schemas/number' description: The residual value of the asset at the end of the lifespan required: - asset examples: UpdatesTheAsset: summary: Updates the asset value: asset: name: New Name AllowsUpdatingEveryAttributeOfAPlannedAsset: summary: Allows updating every attribute of a planned asset value: asset: name: New Name ledger_account_id: 495430065823156160 purchase_date: '2026-08-14' purchase_value: 10000 value_change_plan_attributes: lifespan_in_years: 10 residual_value: 500 responses: '200': description: Asset updated content: application/json: schema: $ref: '#/components/schemas/asset_response' examples: UpdatesTheAsset: summary: Updates the asset value: id: '495430064892020573' ledger_account_id: '495430064885729116' name: New Name purchase_date: '2026-03-01' purchase_value: '12345.67' calculated_purchase_value: '12345.67' current_value: '12145.67' value_change_plan: lifespan_in_years: 5 residual_value: '10.0' active: true monthly_depreciation: '216.71' disposal: null value_changes: - type: arbitrary date: '2026-04-01' amount: '-50.0' description: Value change 1 externally_booked: false asset_id: '495430064892020573' - type: arbitrary date: '2026-05-01' amount: '-50.0' description: Value change 2 externally_booked: false asset_id: '495430064892020573' - type: arbitrary date: '2026-06-01' amount: '-50.0' description: Value change 3 externally_booked: false asset_id: '495430064892020573' - type: arbitrary date: '2026-07-01' amount: '-50.0' description: Value change 4 externally_booked: false asset_id: '495430064892020573' sources: [] reinvestment_reserve_purchase: null AllowsUpdatingEveryAttributeOfAPlannedAsset: summary: Allows updating every attribute of a planned asset value: id: '495430065833641911' ledger_account_id: '495430065823156149' name: New Name purchase_date: '2026-08-14' purchase_value: '10000.0' calculated_purchase_value: '10000.0' current_value: '10000.0' value_change_plan: lifespan_in_years: 10 residual_value: '500.0' active: true monthly_depreciation: '79.17' disposal: null value_changes: [] sources: [] reinvestment_reserve_purchase: null '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400IfTheInputAttributesAreInvalid: summary: Returns a 400 if the input attributes are invalid value: error: asset[purchase_value] does not have a valid value '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404IfTheAssetDoesNotExist: summary: Returns a 404 if the asset does not exist value: error: 'Record not found for model name: asset' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422IfAnActiveAssetGetsAnInvalidAttributeUpdate: summary: Returns a 422 if an active asset gets an invalid attribute update value: error: base: - Cannot update asset when it has value changes details: base: - error: cannot_update_with_value_changes operationId: patch_administration_id_assets_id delete: summary: Delete an asset description: |- Deletes the asset with the given ID. ### Required scope(s) `documents` tags: - Assets security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Asset deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404IfTheAssetDoesNotExist: summary: Returns a 404 if the asset does not exist value: error: 'Record not found for model name: asset' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422IfTheAssetIsInTheLockedPeriod: summary: Returns a 422 if the asset is in the locked period value: error: Asset cannot be deleted because there are journal entries in the locked period of the administration. operationId: delete_administration_id_assets_id /{administration_id}/assets{format}: get: summary: List all assets description: |- Returns a list of all assets. The list is paginated. Use the `per_page` and `page` parameters to control the pagination. ### Required scope(s) `documents` tags: - Assets security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: ledger_account_id in: query required: false schema: $ref: '#/components/schemas/identifier' description: Filter on the ID of the ledger account examples: ReturnsAListOfAssetsFilteredByLedgerAccount: summary: Returns a list of assets filtered by ledger account value: '495430082211350052' - name: active in: query required: false schema: type: - boolean - string default: true description: Whether to include only active assets examples: ReturnsAListOfAllAssets: summary: Returns a list of all assets value: 'false' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/page' responses: '200': description: A list of assets content: application/json: schema: type: array items: $ref: '#/components/schemas/asset_response' examples: ReturnsAListOfActiveAssets: summary: Returns a list of active assets value: - id: '495430080598640023' ledger_account_id: '495430080592348566' name: Asset 1 purchase_date: '2026-03-01' purchase_value: '12345.67' calculated_purchase_value: '12345.67' current_value: '12145.67' value_change_plan: lifespan_in_years: 5 residual_value: '10.0' active: true monthly_depreciation: '216.71' disposal: null value_changes: - type: arbitrary date: '2026-04-01' amount: '-50.0' description: Value change 1 externally_booked: false asset_id: '495430080598640023' - type: arbitrary date: '2026-05-01' amount: '-50.0' description: Value change 2 externally_booked: false asset_id: '495430080598640023' - type: arbitrary date: '2026-06-01' amount: '-50.0' description: Value change 3 externally_booked: false asset_id: '495430080598640023' - type: arbitrary date: '2026-07-01' amount: '-50.0' description: Value change 4 externally_booked: false asset_id: '495430080598640023' sources: [] reinvestment_reserve_purchase: null ReturnsAListOfAssetsFilteredByLedgerAccount: summary: Returns a list of assets filtered by ledger account value: - id: '495430082217641509' ledger_account_id: '495430082211350052' name: Asset 3 purchase_date: '2026-03-01' purchase_value: '12345.67' calculated_purchase_value: '12345.67' current_value: '12145.67' value_change_plan: lifespan_in_years: 5 residual_value: '10.0' active: true monthly_depreciation: '216.71' disposal: null value_changes: - type: arbitrary date: '2026-04-01' amount: '-50.0' description: Value change 1 externally_booked: false asset_id: '495430082217641509' - type: arbitrary date: '2026-05-01' amount: '-50.0' description: Value change 2 externally_booked: false asset_id: '495430082217641509' - type: arbitrary date: '2026-06-01' amount: '-50.0' description: Value change 3 externally_booked: false asset_id: '495430082217641509' - type: arbitrary date: '2026-07-01' amount: '-50.0' description: Value change 4 externally_booked: false asset_id: '495430082217641509' sources: [] reinvestment_reserve_purchase: null ReturnsAListOfAllAssets: summary: Returns a list of all assets value: - id: '495430082652800591' ledger_account_id: '495430082646509134' name: Asset 1 purchase_date: '2026-03-01' purchase_value: '12345.67' calculated_purchase_value: '12345.67' current_value: '12145.67' value_change_plan: lifespan_in_years: 5 residual_value: '10.0' active: true monthly_depreciation: '216.71' disposal: null value_changes: - type: arbitrary date: '2026-04-01' amount: '-50.0' description: Value change 1 externally_booked: false asset_id: '495430082652800591' - type: arbitrary date: '2026-05-01' amount: '-50.0' description: Value change 2 externally_booked: false asset_id: '495430082652800591' - type: arbitrary date: '2026-06-01' amount: '-50.0' description: Value change 3 externally_booked: false asset_id: '495430082652800591' - type: arbitrary date: '2026-07-01' amount: '-50.0' description: Value change 4 externally_booked: false asset_id: '495430082652800591' sources: [] reinvestment_reserve_purchase: null - id: '495430083052308091' ledger_account_id: '495430083047065210' name: Asset 2 purchase_date: '2020-08-14' purchase_value: '12345.67' calculated_purchase_value: '12345.67' current_value: '0.0' value_change_plan: lifespan_in_years: 5 residual_value: '10.0' active: false monthly_depreciation: '205.59' disposal: date: '2026-08-14' reason: out_of_use externally_booked: false asset_id: '495430083052308091' reinvestment_reserve_sale: null value_changes: - type: manual date: '2026-08-14' amount: '-12345.67' description: Depreciation externally_booked: false asset_id: '495430083052308091' sources: [] reinvestment_reserve_purchase: null ReturnsAPaginatedListOfAssets: summary: Returns a paginated list of assets value: - id: '495430083899557570' ledger_account_id: '495430083894314689' name: Asset 2 purchase_date: '2020-08-14' purchase_value: '12345.67' calculated_purchase_value: '12345.67' current_value: '0.0' value_change_plan: lifespan_in_years: 5 residual_value: '10.0' active: false monthly_depreciation: '205.59' disposal: date: '2026-08-14' reason: out_of_use externally_booked: false asset_id: '495430083899557570' reinvestment_reserve_sale: null value_changes: - type: manual date: '2026-08-14' amount: '-12345.67' description: Depreciation externally_booked: false asset_id: '495430083899557570' sources: [] reinvestment_reserve_purchase: null operationId: get_administration_id_assets post: summary: Create a new asset description: |- Creates a new asset. ### Required scope(s) `documents` tags: - Assets security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: type: object unevaluatedProperties: false properties: asset: type: object unevaluatedProperties: false properties: name: type: string description: The name of the asset ledger_account_id: $ref: '#/components/schemas/identifier' description: The ID of the ledger account purchase_date: type: string description: The purchase date of the asset purchase_value: $ref: '#/components/schemas/number' description: The purchase value of the asset value_change_plan_attributes: unevaluatedProperties: false properties: lifespan_in_years: $ref: '#/components/schemas/number' description: The lifespan of the asset in years residual_value: $ref: '#/components/schemas/number' description: The residual value of the asset at the end of the lifespan default: 0 required: - lifespan_in_years required: - name - ledger_account_id - purchase_date - purchase_value - value_change_plan_attributes examples: CreatesANewAsset: summary: Creates a new asset value: asset: name: Test Asset ledger_account_id: 495430064761997100 purchase_date: '2026-08-14' purchase_value: 1000 value_change_plan_attributes: lifespan_in_years: 5 residual_value: 100 responses: '201': description: Asset created content: application/json: schema: $ref: '#/components/schemas/asset_response' examples: CreatesANewAsset: summary: Creates a new asset value: id: '495430064773531476' ledger_account_id: '495430064761997139' name: Test Asset purchase_date: '2026-08-14' purchase_value: '1000.0' calculated_purchase_value: '1000.0' current_value: '1000.0' value_change_plan: lifespan_in_years: 5 residual_value: '100.0' active: true monthly_depreciation: '15.0' disposal: null value_changes: [] sources: [] reinvestment_reserve_purchase: null '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400IfTheParametersAreIncorrect: summary: Returns a 400 if the parameters are incorrect value: error: asset[purchase_value] does not have a valid value, asset[value_change_plan_attributes][lifespan_in_years] does not have a valid value, asset[value_change_plan_attributes][residual_value] does not have a valid value ReturnsA400IfThePurchaseDateIsNotAValidDate: summary: Returns a 400 if the purchase date is not a valid date value: error: asset[purchase_date] is invalid ReturnsA400IfTheRequestWhenParametersAreMissing: summary: Returns a 400 if the request when parameters are missing value: error: asset[name] is missing '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422IfTheAssetIsNotValid: summary: Returns a 422 if the asset is not valid value: error: ledger_account: - is invalid details: ledger_account: - error: invalid operationId: post_administration_id_assets /{administration_id}/contacts/customer_id/{customer_id}{format}: get: summary: Get contact by customer id description: |- Returns all information about a contact by the given customer id ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: customer_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A contact content: application/json: schema: $ref: '#/components/schemas/contact_response' examples: ReturnAContact: summary: Return a contact value: id: '495429922328675409' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: Appleseed address1: Hoofdstraat 12 address2: '' zipcode: 1234 AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '1' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:34.224Z' updated_at: '2026-08-14T09:13:34.241Z' version: 1786698814 sales_invoices_url: https://moneybird.dev/123/sales_invoices/cffbab171eded55b0380277d9c1fdadec5dac349e1fca682d9635c3a30eaf5c1/all notes: [] custom_fields: [] contact_people: - id: '495429922331821139' contact_id: '495429922328675409' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-08-14T09:13:34.228Z' updated_at: '2026-08-14T09:13:34.228Z' version: 1786698814 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:34.235Z' updated_at: '2026-08-14T09:13:34.235Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenContactDoesNotExist: summary: Returns 404 when contact does not exist value: error: record not found symbolic: customer_id: not_found operationId: get_administration_id_contacts_customer_id_customer_id /{administration_id}/contacts/filter{format}: get: summary: Filter contacts description: |- Returns a paginated list of all contacts in the administration. ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: |- Filters are `key:value` terms separated by commas (e.g. `first_name:henk,contact_type:company`). Any filter you pass replaces the defaults below entirely, so include every key you need. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | created_after | `String` | | Select contacts created after the given time (exclusive). ISO 8601 formatted string. The time to compare with is in UTC timezone | | updated_after | `String` | | Select contacts updated after the given time (exclusive). ISO 8601 formatted string. The time to compare with is in UTC timezone | | first_name | `String` | | Select contacts with the given first name. Case-insensitive | | last_name | `String` | | Select contacts with the given last name. Case-insensitive | | estimate_workflow_id | `Integer` | | Filters contacts by a single Estimate workflow | | invoice_workflow_id | `Integer` | | Filters contacts by a single Invoice workflow | | contact_type | `String` | | The contact type. Possible values `all`, `company`, `private_individual` | | delivery_method | `String` | | The delivery method for invoices. Possible values. Possible values `all`, `email`, `post`, `manual`, `peppol`, `simplerinvoicing` | | trusted_type | `String` | | Whether the contact is trusted. Possible values `all`, `trusted`, `not_trusted` | schema: type: string examples: AllowsFilteringByFirstname: summary: Allows filtering by firstname value: first_name:piet ReturnsAllContactsCreatedAfterGivenDatetime: summary: Returns all contacts created after given datetime value: created_after:2026-08-13 09:13:35 UTC ReturnsOnlyContactsUpdatedAfterGivenDatetime: summary: Returns only contacts updated after given datetime value: updated_after:2026-08-14 09:13:40 UTC - name: query in: query required: false description: Free-text search across name, contact people, email, phone, customer id, tax number, chamber of commerce, IBAN, and address fields. schema: type: string - name: include_archived in: query required: false schema: type: - boolean - string - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: A list of contacts content: application/json: schema: type: array items: $ref: '#/components/schemas/contact_response' examples: AllowsFilteringByFirstname: summary: Allows filtering by firstname value: - id: '495429923917268370' administration_id: 123 company_name: Relation 1 firstname: Piet lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-2 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: contact1@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: contact1@example.com send_estimates_to_attention: null send_estimates_to_email: null direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:35.739Z' updated_at: '2026-08-14T09:13:35.742Z' version: 1786698815 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false events: [] ReturnsAllContactsCreatedAfterGivenDatetime: summary: Returns all contacts created after given datetime value: - id: '495429923967600022' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: Appleseed address1: Hoofdstraat 12 address2: '' zipcode: 1234 AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '1' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:35.787Z' updated_at: '2026-08-14T09:13:35.806Z' version: 1786698815 sales_invoices_url: https://moneybird.dev/123/sales_invoices/09ed26df1217ad6cf3f7bd590c75289fbae876c5c8bb011927885a16b6029777/all notes: [] custom_fields: [] contact_people: - id: '495429923972842904' contact_id: '495429923967600022' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-08-14T09:13:35.792Z' updated_at: '2026-08-14T09:13:35.792Z' version: 1786698815 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:35.799Z' updated_at: '2026-08-14T09:13:35.799Z' - id: '495429923995911581' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: 1 Infinite Loop address2: '' zipcode: '123456' city: Redmond country: NL phone: '' delivery_method: Email customer_id: '2' tax_number: '' chamber_of_commerce: '' bank_account: NL50TEST0166567191 is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: true sepa_iban: NL50TEST0166567191 sepa_iban_account_name: Foobar Holding B.V. sepa_bic: RABONL2U sepa_mandate_id: MAN12313 sepa_mandate_date: '2014-01-01' sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:35.814Z' updated_at: '2026-08-14T09:13:35.814Z' version: 1786698815 sales_invoices_url: https://moneybird.dev/123/sales_invoices/2cbc0fa3b19c716a78f99ba52c7b4cb786c90454124fd924f2110d06bfa70652/all notes: [] custom_fields: [] contact_people: - id: '495429924000105887' contact_id: '495429923995911581' administration_id: 123 firstname: John lastname: Doe phone: null email: null department: null created_at: '2026-08-14T09:13:35.818Z' updated_at: '2026-08-14T09:13:35.818Z' version: 1786698815 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:35.825Z' updated_at: '2026-08-14T09:13:35.825Z' - id: '495429924014785955' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:35.832Z' updated_at: '2026-08-14T09:13:35.832Z' version: 1786698815 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false events: [] ReturnsOnlyContactsUpdatedAfterGivenDatetime: summary: Returns only contacts updated after given datetime value: - id: '495429924066166182' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: foo address1: Hoofdstraat 12 address2: '' zipcode: 1234 AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '1' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:35.881Z' updated_at: '2026-08-14T09:14:40.926Z' version: 1786698880 sales_invoices_url: https://moneybird.dev/123/sales_invoices/e6a343f1e66b1568760d60fb7abb8021258db4525b07242cd5e2432a522a9a0f/all notes: [] custom_fields: [] contact_people: - id: '495429924070360488' contact_id: '495429924066166182' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-08-14T09:13:35.885Z' updated_at: '2026-08-14T09:13:35.885Z' version: 1786698815 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:35.892Z' updated_at: '2026-08-14T09:13:35.892Z' operationId: get_administration_id_contacts_filter /{administration_id}/contacts/synchronization{format}: get: summary: List all ids and versions description: |- Returns all contacts in the administration. The list contains the contact id and the version of the contact. Check if the version of the contact is newer than the version you have stored locally, use the `POST` variant for fetching contacts with the given ids. ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: Comma-separated `key:value` filter terms. Same syntax as `GET /contacts/filter` — see that operation's description for the available keys. schema: type: string examples: RetrievesTheIdSForSynchronizationWithAFilter: summary: Retrieves the id's for synchronization with a filter value: first_name:henk - name: include_archived in: query required: false schema: type: - boolean - string responses: '200': description: IDs and versions of records content: application/json: schema: type: array items: type: object unevaluatedProperties: false properties: id: type: - integer - string version: type: - integer - string examples: RetrievesTheIdSForSynchronizationWithAFilter: summary: Retrieves the id's for synchronization with a filter value: - id: '495429927054607379' version: 1786698818 ReturnAListOfIdSAndVersionIdS: summary: Return a list of id's and version id's value: - id: '495429927091307543' version: 1786698818 - id: '495429927118570526' version: 1786698818 operationId: get_administration_id_contacts_synchronization post: summary: Fetch contacts with given ids x-query: true description: |- Given a list of contact ids, returns the contact information belonging to the contacts. Returns a maximum of 100 contacts, even if more ids are provided. ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: ids: type: array items: type: - integer - string required: - ids examples: ReturnAListOfGivenIds: summary: Return a list of given ids value: ids: - 495429930133226750 - 495429930156295400 responses: '200': description: A list of contacts content: application/json: schema: type: array items: $ref: '#/components/schemas/contact_response' examples: ReturnAListOfGivenIds: summary: Return a list of given ids value: - id: '495429930133226750' administration_id: 123 company_name: Bar Foo firstname: null lastname: null address1: Hoofdstraat 12 address2: '' zipcode: 1234AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '3' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:41.667Z' updated_at: '2026-08-14T09:13:41.667Z' version: 1786698821 sales_invoices_url: https://moneybird.dev/123/sales_invoices/04b657173cccc18f5e288e3801fbb849c2be5c1058f53cdd62bb552c05cb9feb/all notes: [] custom_fields: [] contact_people: - id: '495429930136372480' contact_id: '495429930133226750' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-08-14T09:13:41.671Z' updated_at: '2026-08-14T09:13:41.671Z' version: 1786698821 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:41.676Z' updated_at: '2026-08-14T09:13:41.676Z' - id: '495429930156295430' administration_id: 123 company_name: Foo Bar firstname: null lastname: null address1: Hoofdstraat 12 address2: '' zipcode: 1234AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '4' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:41.689Z' updated_at: '2026-08-14T09:13:41.689Z' version: 1786698821 sales_invoices_url: https://moneybird.dev/123/sales_invoices/77938fb84bdd6760739cbac02bc08e7f41eb08e6b06ecc56845b23ad2923d700/all notes: [] custom_fields: [] contact_people: - id: '495429930159441160' contact_id: '495429930156295430' administration_id: 123 firstname: Mark lastname: van Vliet phone: null email: null department: null created_at: '2026-08-14T09:13:41.693Z' updated_at: '2026-08-14T09:13:41.693Z' version: 1786698821 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:41.699Z' updated_at: '2026-08-14T09:13:41.699Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400StatusWhenIdsAreNotProvided: summary: Returns a 400 status when ids are not provided value: error: Ids is required symbolic: ids: required operationId: post_administration_id_contacts_synchronization /{administration_id}/contacts/{contact_id}/contact_people/{id}{format}: get: summary: Get contact person description: |- Returns all information about a contact person. ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: contact_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A contact person content: application/json: schema: $ref: '#/components/schemas/contact_person_response' examples: ReturnAContactPerson: summary: Return a contact person value: id: '495429924159489465' contact_id: '495429924156343735' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-08-14T09:13:35.971Z' updated_at: '2026-08-14T09:13:35.971Z' version: 1786698815 '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenContactPersonDoesNotExist: summary: Returns 404 when contact person does not exist value: error: record not found symbolic: id: not_found operationId: get_administration_id_contacts_contact_id_contact_people_id patch: summary: Update a contact person description: |- When updating a contact, you only need to provide the information you want to change. Attributes you don't provide in the request will not be updated. ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: contact_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: contact_person: type: object unevaluatedProperties: false properties: firstname: type: string lastname: type: string phone: type: string email: type: string description: Should be a valid email addresses. department: type: string required: [] required: [] examples: UpdateAContactPerson: summary: Update a contact person value: contact_person: firstname: John lastname: Doe responses: '200': description: Contact person updated content: application/json: schema: $ref: '#/components/schemas/contact_person_response' examples: UpdateAContactPerson: summary: Update a contact person value: id: '495429924529636871' contact_id: '495429924525442565' administration_id: 123 firstname: John lastname: Doe phone: null email: null department: null created_at: '2026-08-14T09:13:36.323Z' updated_at: '2026-08-14T09:13:36.365Z' version: 1786698816 '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404StatusWhenTheContactPersonIsNotFound: summary: Returns a 404 status when the contact person is not found value: error: contact person not found symbolic: contact_person_id: not_found '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422StatusWhenWrongParamsAreProvided: summary: Returns a 422 status when wrong params are provided value: error: firstname: - can't be blank lastname: - can't be blank details: firstname: - error: blank lastname: - error: blank operationId: patch_administration_id_contacts_contact_id_contact_people_id delete: summary: Delete a contact person description: |- Deletes a contact person. ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: contact_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Contact person deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404StatusWhenTheContactPersonIsNotFound: summary: Returns a 404 status when the contact person is not found value: error: record not found symbolic: id: not_found operationId: delete_administration_id_contacts_contact_id_contact_people_id /{administration_id}/contacts/{contact_id}/contact_people{format}: post: summary: Create a new contact person description: |- Creating a new contact person in the administration requires at least a `contact_person` hash including `firstname` and `lastname`. ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: contact_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: contact_person: type: object unevaluatedProperties: false properties: firstname: type: string lastname: type: string phone: type: string email: type: string description: Should be a valid email addresses. department: type: string required: [] required: [] examples: CreateANewContactPersonWithMinimumParams: summary: Create a new contact person with minimum params value: contact_person: firstname: John lastname: Doe CreateANewContactPersonWithAllParams: summary: Create a new contact person with all params value: contact_person: firstname: John lastname: Doe phone: '123456789' email: johndoe@moneybird.com department: Sales responses: '201': description: Contact person created content: application/json: schema: $ref: '#/components/schemas/contact_person_response' examples: CreateANewContactPersonWithMinimumParams: summary: Create a new contact person with minimum params value: id: '495429930254861594' contact_id: '495429930207675661' administration_id: 123 firstname: John lastname: Doe phone: null email: null department: null created_at: '2026-08-14T09:13:41.784Z' updated_at: '2026-08-14T09:13:41.784Z' version: 1786698821 CreateANewContactPersonWithAllParams: summary: Create a new contact person with all params value: id: '495429930397467961' contact_id: '495429930352379180' administration_id: 123 firstname: John lastname: Doe phone: '123456789' email: johndoe@moneybird.com department: Sales created_at: '2026-08-14T09:13:41.920Z' updated_at: '2026-08-14T09:13:41.920Z' version: 1786698821 '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422StatusWhenWrongParamsAreProvided: summary: Returns a 422 status when wrong params are provided value: error: firstname: - can't be blank lastname: - can't be blank details: firstname: - error: blank lastname: - error: blank ReturnsA422StatusWhenAWrongContactPersonIdIsProvided: summary: Returns a 422 status when a wrong contact person id is provided value: error: contact: - must exist details: contact: - error: blank operationId: post_administration_id_contacts_contact_id_contact_people /{administration_id}/contacts/{contact_id}/moneybird_payments_mandate/url{format}: post: summary: Request an URL for setting up a Moneybird Payments mandate description: |- Obtains an URL for setting up a Moneybird Payments mandate. You must provide this URL to your contact to set-up the mandate. Your contact is required to make a 15 cent payment. Every generated URL using this endpoint is valid for 14 days after creation. Only available when Moneybird Payments is enabled for the administration. ### Required scope(s) `sales_invoices` and `settings` tags: - Contacts security: - bearerAuth: - sales_invoices - settings parameters: - $ref: '#/components/parameters/administration_id' - name: contact_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: mandate_request: type: object unevaluatedProperties: false properties: identity_id: $ref: '#/components/schemas/identifier' description: Should be a valid identity id. workflow_id: $ref: '#/components/schemas/identifier' description: Should be a valid workflow id. Restricts the available payment methods to the methods available for the selected workflow. required: [] required: [] examples: RequestsANewMoneybirdPaymentsMandateUrl: summary: Requests a new moneybird payments mandate url value: {} RequestsANewMoneybirdPaymentsMandateUrlWithACustomWorkflowId: summary: Requests a new moneybird payments mandate url with a custom workflow id value: mandate_request: workflow_id: 495429925214357100 responses: '201': description: A URL for setting up a Moneybird Payments mandate content: application/json: schema: type: object properties: url: type: string examples: RequestsANewMoneybirdPaymentsMandateUrl: summary: Requests a new moneybird payments mandate url value: url: https://moneybird.dev/123/mandate_requests/zICBpl9yYWlsc4KkZGF0YdlFNDk1NDI5ODUyMzE1MjU1OTA5IDQ5NTQyOTkyNTAxMTk4MTkzNyA0OTU0Mjk4NTI2OTI3NDMyNzUKICAgICAgYWR5ZW4go2V4cMcLB85qkVFAzjSKj-QA--46498bbd7d9351eaaf188932ce73ea1b416b4de1 RequestsANewMoneybirdPaymentsMandateUrlWithACustomWorkflowId: summary: Requests a new moneybird payments mandate url with a custom workflow id value: url: https://moneybird.dev/123/mandate_requests/zICBpl9yYWlsc4KkZGF0YdlXNDk1NDI5ODUyMzE1MjU1OTA5IDQ5NTQyOTkyNTEzNjc2MjUwNyA0OTU0Mjk4NTI2OTI3NDMyNzUKICAgICAgYWR5ZW4gNDk1NDI5OTI1MjE0MzU3MTQ4o2V4cMcLB85qkVFAzjuW3V4A--541a47dc2f0ded1926d12ee322af7c049e87692a '403': $ref: '#/components/responses/4XX_open_error' operationId: post_administration_id_contacts_contact_id_moneybird_payments_mandate_url /{administration_id}/contacts/{contact_id}/moneybird_payments_mandate{format}: get: summary: Get Moneybird Payments mandate description: |- Returns information about the stored Moneybird Payments mandate. Only available when Moneybird Payments is enabled for the administration. ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: contact_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A Moneybird Payments mandate content: application/json: schema: $ref: '#/components/schemas/recurring_contract_response' examples: ReturnsInformationAboutTheStoredMoneybirdPaymentsMandate: summary: Returns information about the stored moneybird payments mandate value: type: idealtestissuer5 sepa_mandate: true bank: Test Issuer 5 iban: NL81TEST0536169128 bic: TESTNL05 iban_account_name: E. Klaassen card_expiry_month: null card_expiry_year: null card_final_digits: null created_at: '2022-04-07T13:31:09.000Z' ReturnsLimitedInformationIfMandateExistsButOnlyLimitedInformationIsAvailable: summary: Returns limited information if mandate exists, but only limited information is available value: type: mccorporatecredit sepa_mandate: false bank: null iban: null bic: null iban_account_name: null card_expiry_month: '3' card_expiry_year: '2030' card_final_digits: '0010' created_at: '2022-04-11T09:17:56.000Z' '403': $ref: '#/components/responses/4XX_open_error' '404': $ref: '#/components/responses/4XX_open_error' operationId: get_administration_id_contacts_contact_id_moneybird_payments_mandate post: summary: Request a new Moneybird Payments mandate description: |- Sends a request for a Moneybird Payments mandate to a contact via e-mail. Your contact will receive an email containing a link to authorise direct debit payments through Moneybird Payments. Your contact is required to make a 15 cent payment. Only available when Moneybird Payments is enabled for the administration. ### Required scope(s) `sales_invoices` and `settings` tags: - Contacts security: - bearerAuth: - sales_invoices - settings parameters: - $ref: '#/components/parameters/administration_id' - name: contact_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: mandate_request: type: object unevaluatedProperties: false properties: email_message: type: string identity_id: $ref: '#/components/schemas/identifier' description: Should be a valid identity id. workflow_id: $ref: '#/components/schemas/identifier' description: Should be a valid workflow id. Restricts the available payment methods to the methods available for the selected workflow. required: [] required: [] examples: AllowsSettingAWorkflowId: summary: Allows setting a workflow id value: mandate_request: workflow_id: 495429931215357400 AllowsForACustomMessageWithinTheRequestE-mail: summary: Allows for a custom message within the request e-mail value: mandate_request: email_message: We use direct debit for our services, for which we require your authorisation. You can authorise us for direct debit through the button below. This requires you to make a one-time payment of 15 cents. This way we can verify your bank account. RequestsANewMoneybirdPaymentsMandate: summary: Requests a new moneybird payments mandate value: {} responses: '204': description: Moneybird Payments mandate requested '403': $ref: '#/components/responses/4XX_open_error' operationId: post_administration_id_contacts_contact_id_moneybird_payments_mandate delete: summary: Delete a stored Moneybird Payments mandate description: |- Deletes the stored Moneybird Payments mandate for the contact. Only available when Moneybird Payments is enabled for the administration. ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: contact_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Contact deleted '403': $ref: '#/components/responses/4XX_open_error' operationId: delete_administration_id_contacts_contact_id_moneybird_payments_mandate /{administration_id}/contacts/{contact_id}/notes/{id}{format}: delete: summary: Destroys note from entity description: |- Deletes a note from the contact. ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: contact_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Note deleted '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400StatusWhenUserHasNoPermissionsToNotes: summary: Returns a 400 status when user has no permissions to notes value: error: User has no permissions to notes for Contact symbolic: user: insufficient_permissions operationId: delete_administration_id_contacts_contact_id_notes_id /{administration_id}/contacts/{contact_id}/notes{format}: post: summary: Adds note to entity description: |- Adds a note to the contact. ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: contact_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: note: type: object unevaluatedProperties: false properties: note: type: string description: '**Required**. Text for the note or to-do.' todo: type: - boolean - string description: If `true` the note is a to-do. assignee_id: $ref: '#/components/schemas/identifier' description: Assign to-do to user. Should be a valid user id. If assignee_id is provided the note will be a to-do. required: [] required: [] examples: CreateANote: summary: Create a note value: note: note: Text of the note assignee_id: 495429923452749100 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '495429923468477760' administration_id: 123 entity_id: '495429923413951794' entity_type: Contact user_id: '495429852315255909' assignee_id: '495429923452749118' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-08-14T09:13:35.311Z' updated_at: '2026-08-14T09:13:35.311Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400StatusWhenAWrongContactIdIsProvided: summary: Returns a 400 status when a wrong contact id is provided value: error: Entity is invalid; User has no permissions to notes for Contact symbolic: entity: not_found user: insufficient_permissions '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422StatusWhenWrongParamsAreProvided: summary: Returns a 422 status when wrong params are provided value: error: note: - can't be blank todo_type: - can't be blank details: note: - error: blank todo_type: - error: blank operationId: post_administration_id_contacts_contact_id_notes /{administration_id}/contacts/{id}/additional_charges{format}: post: summary: Create an additional charge to be invoiced at start of next period description: |- At the end of the current period, the additional charges for a contact are merged where possible and an invoice will be created for them. The invoice will be scheduled for sending at the first day of the next month. ### Required scope(s) `sales_invoices` tags: - Contacts security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: type: object additionalProperties: true examples: CreatesAUsageCharge: summary: Creates a usage charge value: product_id: 495429922539439200 amount: 5 x price: 100 period: 20210601..20210630 description: Transaction Costs ViewsAdditionalChargesOfAContact: summary: Views additional charges of a contact value: {} responses: '201': description: Subscription additional charge created content: application/json: schema: $ref: '#/components/schemas/subscription_additional_charge_response' examples: CreatesAUsageCharge: summary: Creates a usage charge value: id: '495429922560410747' administration_id: 123 contact_id: '495429922485961837' subscription_id: null product_id: '495429922539439225' detail_id: null amount: 5 x price: '100.0' period: 202106..202106 description: Transaction Costs '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400StatusWhenASubscriptionIdIsProvided: summary: Returns a 400 status when a subscription id is provided value: error: contact_id or subscription_id is required symbolic: contact_id: required '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404StatusWhenAWrongProductIdIsProvided: summary: Returns a 404 status when a wrong product id is provided value: error: Product not found symbolic: product_id: not_found operationId: post_administration_id_contacts_id_additional_charges get: summary: Get additional charges description: |- Get the additional charges of the given contact. ### Required scope(s) `sales_invoices` tags: - Contacts security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' - name: include_billed in: query required: false schema: type: - boolean - string description: If true, includes the additional charges that have already been billed. Default is false. examples: DoesReturnBilledAdditionalChargesIfIncludeBilledIsTrue: summary: Does return billed additional charges if include billed is true value: 'true' responses: '200': description: A list of additional charges content: application/json: schema: type: array items: $ref: '#/components/schemas/subscription_additional_charge_response' examples: DoesReturnBilledAdditionalChargesIfIncludeBilledIsTrue: summary: Does return billed additional charges if include billed is true value: - id: '495429925770102553' administration_id: 123 contact_id: '495429925729208076' subscription_id: null product_id: '495429925768005400' detail_id: null amount: 1 x price: '100.0' period: 202106..202106 description: Transaction Costs - id: '495429925813094177' administration_id: 123 contact_id: '495429925729208076' subscription_id: null product_id: '495429925774296858' detail_id: '495429925808899872' amount: 1 x price: '100.0' period: 202106..202106 description: Transaction Costs '404': $ref: '#/components/responses/404_not_found' operationId: get_administration_id_contacts_id_additional_charges /{administration_id}/contacts/{id}/archive{format}: patch: summary: Archive a contact description: |- Archives a contact. ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Contact archived '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400StatusWhenTheContactIsAlreadyArchived: summary: Returns a 400 status when the contact is already archived value: error: Contact can not be archived symbolic: id: can_not_be_archived '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404StatusWhenTheContactIsNotFound: summary: Returns a 404 status when the contact is not found value: error: record not found symbolic: id: not_found operationId: patch_administration_id_contacts_id_archive /{administration_id}/contacts/{id}{format}: get: summary: Get contact description: |- Returns all information about a contact. ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' - name: include_archived in: query required: false schema: type: - boolean - string responses: '200': description: A contact content: application/json: schema: $ref: '#/components/schemas/contact_response' examples: ReturnsSepaIbanAsBankAccount: summary: Returns sepa iban as bank account value: id: '495429925843502884' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: Appleseed address1: Hoofdstraat 12 address2: '' zipcode: 1234 AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '1' tax_number: '' chamber_of_commerce: '' bank_account: NL50TEST0166567191 is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: NL50TEST0166567191 sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:37.576Z' updated_at: '2026-08-14T09:13:37.613Z' version: 1786698817 sales_invoices_url: https://moneybird.dev/123/sales_invoices/88e31f90cb2be5870106fecf290eda033d68fe00cdb3d01436ad22794f892692/all notes: [] custom_fields: [] contact_people: - id: '495429925846648614' contact_id: '495429925843502884' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-08-14T09:13:37.580Z' updated_at: '2026-08-14T09:13:37.580Z' version: 1786698817 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:37.586Z' updated_at: '2026-08-14T09:13:37.586Z' ReturnAContact: summary: Return a contact value: id: '495429925915854643' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: Appleseed address1: Hoofdstraat 12 address2: '' zipcode: 1234 AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '1' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:37.645Z' updated_at: '2026-08-14T09:13:37.661Z' version: 1786698817 sales_invoices_url: https://moneybird.dev/123/sales_invoices/ecba6f627744c11df670f80f66f1c5ab65a1d4e3a8e2cabcc1f2bac13f3c3d0d/all notes: [] custom_fields: [] contact_people: - id: '495429925920048949' contact_id: '495429925915854643' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-08-14T09:13:37.649Z' updated_at: '2026-08-14T09:13:37.649Z' version: 1786698817 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:37.656Z' updated_at: '2026-08-14T09:13:37.656Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenContactDoesNotExist: summary: Returns 404 when contact does not exist value: error: record not found symbolic: id: not_found operationId: get_administration_id_contacts_id patch: summary: Update a contact description: |- When updating a contact, you only need to provide the information you want to change. Attributes you don't provide in the request will not be updated. Optional attributes can be removed by setting them to an empty string value. ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: contact: type: object unevaluatedProperties: false properties: company_name: type: string description: A contact requires a non-blank `company_name`, `firstname` or `lastname`. address1: type: string description: Primary street address of the contact. address2: type: string description: Secondary address line (e.g. apartment number, building name). zipcode: type: string description: Postal code or ZIP code of the contact's address. city: type: string description: City or town of the contact's address. country: type: string description: ISO two-character country code, e.g. NL or DE. phone: type: string description: Phone number of the contact. delivery_method: type: string description: Can be `Email`, `Simplerinvoicing`, `Peppol`, `Manual` or `Post`. email_ubl: type: - boolean - string description: When `true`, a UBL (Universal Business Language) XML file is attached when emailing invoices to this contact. Enables machine-readable invoice processing. customer_id: type: string description: Will be assigned automatically if empty. Should be unique for the administration. tax_number: type: string description: The tax identification number (VAT number) of the contact, e.g. `NL123456789B01`. firstname: type: string description: A contact requires a non-blank `company_name`, `firstname` or `lastname`. lastname: type: string description: A contact requires a non-blank `company_name`, `firstname` or `lastname`. chamber_of_commerce: type: string description: The CoC (Chamber of Commerce) registration number of the contact's business. bank_account: type: string description: The bank account number (IBAN) of the contact. Used for outgoing payments and displayed on documents. send_invoices_to_attention: type: string description: The name of the person to address invoices to (attention line). send_invoices_to_email: type: string description: Should be one or more valid email addresses, separated by a comma. send_estimates_to_attention: type: string description: The name of the person to address estimates to (attention line). send_estimates_to_email: type: string description: Should be one or more valid email addresses, separated by a comma. sepa_active: type: - boolean - string description: When `true`, all other SEPA fields are required. sepa_iban: type: string description: Should be a valid IBAN. sepa_iban_account_name: type: string description: The account holder name for the SEPA direct debit IBAN. sepa_bic: type: string description: Should be a valid BIC. sepa_mandate_id: type: string description: Should be unique for the administration. sepa_mandate_date: type: string description: Should be a date in the past. sepa_sequence_type: type: string description: Can be `RCUR`, `FRST`, `OOFF` or `FNAL`. invoice_workflow_id: $ref: '#/components/schemas/identifier' description: Should be a valid invoice workflow id. estimate_workflow_id: $ref: '#/components/schemas/identifier' description: Should be a valid estimate workflow id. si_identifier_type: type: string description: Can be `0002`, `0007`, `0009`, `0037`, `0060`, `0088`, `0096`, `0097`, `0106`, `0130`, `0135`, `0142`, `0151`, `0183`, `0184`, `0188`, `0190`, `0191`, `0192`, `0193`, `0195`, `0196`, `0198`, `0199`, `0200`, `0201`, `0204`, `0205`, `0208`, `0209`, `0210`, `0211`, `0212`, `0213`, `0215`, `0216`, `0221`, `0230`, `9910`, `9913`, `9914`, `9915`, `9918`, `9919`, `9920`, `9922`, `9923`, `9924`, `9925`, `9926`, `9927`, `9928`, `9929`, `9930`, `9931`, `9932`, `9933`, `9934`, `9935`, `9936`, `9937`, `9938`, `9939`, `9940`, `9941`, `9942`, `9943`, `9944`, `9945`, `9946`, `9947`, `9948`, `9949`, `9950`, `9951`, `9952`, `9953`, `9957` or `9959`. si_identifier: type: string description: The Peppol/e-invoicing identifier value for this contact. The format depends on the `si_identifier_type`. direct_debit: type: - boolean - string description: When `true`, invoices for this contact are collected via SEPA direct debit. Requires SEPA fields to be configured. custom_fields_attributes: $ref: '#/components/schemas/custom_fields_attributes' required: [] required: - contact examples: UpdateAContactThatHasSepaActivated: summary: Update a contact that has sepa activated value: contact: company_name: Test B.V. UpdateTheSepaSequenceType: summary: Update the sepa sequence type value: contact: sepa_sequence_type: FNAL UpdatesAContactWithGivenSiIdentifier: summary: Updates a contact with given si identifier value: contact: si_identifier: '1234567' si_identifier_type: NL:KVK CreatesAContactPersonWhenCompanyNameFirstnameAndLastnameExistTogether: summary: Creates a contact person when company name, firstname and lastname exist together value: contact: firstname: Money lastname: Bird UpdateAContact: summary: Update a contact value: contact: company_name: Test B.V. responses: '200': description: Contact updated content: application/json: schema: $ref: '#/components/schemas/contact_response' examples: UpdateAContactThatHasSepaActivated: summary: Update a contact that has sepa activated value: id: '495429926084675414' administration_id: 123 company_name: Test B.V. firstname: null lastname: null address1: 1 Infinite Loop address2: '' zipcode: '123456' city: Redmond country: NL phone: '' delivery_method: Email customer_id: '2' tax_number: '' chamber_of_commerce: '' bank_account: NL50TEST0166567191 is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: true sepa_iban: NL50TEST0166567191 sepa_iban_account_name: Foobar Holding B.V. sepa_bic: RABONL2U sepa_mandate_id: MAN12313 sepa_mandate_date: '2014-01-01' sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:37.806Z' updated_at: '2026-08-14T09:13:37.827Z' version: 1786698817 sales_invoices_url: https://moneybird.dev/123/sales_invoices/339beedb27ff7dfe214bb828ed456051c23c0f6eeef1a82e27513f646ee7d0e0/all notes: [] custom_fields: [] contact_people: - id: '495429926088869720' contact_id: '495429926084675414' administration_id: 123 firstname: John lastname: Doe phone: null email: null department: null created_at: '2026-08-14T09:13:37.810Z' updated_at: '2026-08-14T09:13:37.810Z' version: 1786698817 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:37.816Z' updated_at: '2026-08-14T09:13:37.816Z' - administration_id: 123 user_id: '495429852315255909' action: contact_changed link_entity_id: null link_entity_type: null data: changes: company_name: - Foobar Holding B.V. - Test B.V. created_at: '2026-08-14T09:13:37.830Z' updated_at: '2026-08-14T09:13:37.830Z' UpdateTheSepaSequenceType: summary: Update the sepa sequence type value: id: '495429926325847944' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: 1 Infinite Loop address2: '' zipcode: '123456' city: Redmond country: NL phone: '' delivery_method: Email customer_id: '2' tax_number: '' chamber_of_commerce: '' bank_account: NL50TEST0166567191 is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: true sepa_iban: NL50TEST0166567191 sepa_iban_account_name: Foobar Holding B.V. sepa_bic: RABONL2U sepa_mandate_id: MAN12313 sepa_mandate_date: '2014-01-01' sepa_sequence_type: FNAL credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:38.037Z' updated_at: '2026-08-14T09:13:38.057Z' version: 1786698818 sales_invoices_url: https://moneybird.dev/123/sales_invoices/5bad640d346ae067e67a2219022249ae2b49b6dece7d9d9ee755ea2479f0a0de/all notes: [] custom_fields: [] contact_people: - id: '495429926330042250' contact_id: '495429926325847944' administration_id: 123 firstname: John lastname: Doe phone: null email: null department: null created_at: '2026-08-14T09:13:38.040Z' updated_at: '2026-08-14T09:13:38.040Z' version: 1786698818 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:38.045Z' updated_at: '2026-08-14T09:13:38.045Z' - administration_id: 123 user_id: '495429852315255909' action: contact_changed link_entity_id: null link_entity_type: null data: changes: sepa_sequence_type: - RCUR - FNAL created_at: '2026-08-14T09:13:38.059Z' updated_at: '2026-08-14T09:13:38.059Z' UpdatesAContactWithGivenSiIdentifier: summary: Updates a contact with given si identifier value: id: '495429926389811089' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: Appleseed address1: Hoofdstraat 12 address2: '' zipcode: 1234 AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '1' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '1234567' si_identifier_type: NL:KVK moneybird_payments_mandate: false created_at: '2026-08-14T09:13:38.098Z' updated_at: '2026-08-14T09:13:38.140Z' version: 1786698818 sales_invoices_url: https://moneybird.dev/123/sales_invoices/ac76bff8b29cbd3aabb3bed3a2a04469547ee8778fea1d10c21c569fa3809d18/all notes: [] custom_fields: [] contact_people: - id: '495429926394005395' contact_id: '495429926389811089' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-08-14T09:13:38.101Z' updated_at: '2026-08-14T09:13:38.101Z' version: 1786698818 - id: '495429926443288480' contact_id: '495429926389811089' administration_id: 123 firstname: null lastname: Appleseed phone: null email: null department: null created_at: '2026-08-14T09:13:38.149Z' updated_at: '2026-08-14T09:13:38.149Z' version: 1786698818 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:38.107Z' updated_at: '2026-08-14T09:13:38.107Z' - administration_id: 123 user_id: '495429852315255909' action: contact_changed link_entity_id: null link_entity_type: null data: changes: si_identifier: - '' - '1234567' created_at: '2026-08-14T09:13:38.143Z' updated_at: '2026-08-14T09:13:38.143Z' CreatesAContactPersonWhenCompanyNameFirstnameAndLastnameExistTogether: summary: Creates a contact person when company name, firstname and lastname exist together value: id: '495429926516688817' administration_id: 123 company_name: Moneybird B.V. firstname: Money lastname: Bird address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: contact1@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: contact1@example.com send_estimates_to_attention: null send_estimates_to_email: null direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:38.218Z' updated_at: '2026-08-14T09:13:38.227Z' version: 1786698818 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: - id: '495429926535563189' contact_id: '495429926516688817' administration_id: 123 firstname: Money lastname: Bird phone: null email: null department: null created_at: '2026-08-14T09:13:38.236Z' updated_at: '2026-08-14T09:13:38.236Z' version: 1786698818 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_changed link_entity_id: null link_entity_type: null data: changes: firstname: - null - Money lastname: - null - Bird created_at: '2026-08-14T09:13:38.230Z' updated_at: '2026-08-14T09:13:38.230Z' UpdateAContact: summary: Update a contact value: id: '495429926571214777' administration_id: 123 company_name: Test B.V. firstname: null lastname: Appleseed address1: Hoofdstraat 12 address2: '' zipcode: 1234 AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '1' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:38.270Z' updated_at: '2026-08-14T09:13:38.357Z' version: 1786698818 sales_invoices_url: https://moneybird.dev/123/sales_invoices/d93aef7f774d14398d83662b79fbd0d7b84e3080ddd53a03a1c143ebf8112253/all notes: [] custom_fields: [] contact_people: - id: '495429926575409083' contact_id: '495429926571214777' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-08-14T09:13:38.274Z' updated_at: '2026-08-14T09:13:38.274Z' version: 1786698818 - id: '495429926676072392' contact_id: '495429926571214777' administration_id: 123 firstname: null lastname: Appleseed phone: null email: null department: null created_at: '2026-08-14T09:13:38.370Z' updated_at: '2026-08-14T09:13:38.370Z' version: 1786698818 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:38.280Z' updated_at: '2026-08-14T09:13:38.280Z' - administration_id: 123 user_id: '495429852315255909' action: contact_changed link_entity_id: null link_entity_type: null data: changes: company_name: - Foobar Holding B.V. - Test B.V. created_at: '2026-08-14T09:13:38.360Z' updated_at: '2026-08-14T09:13:38.360Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: DoesNotAllowMakingTheContactTrustedThroughTheApi: summary: Does not allow making the contact trusted through the api value: error: An contact can only be trusted during the approval of a payment. symbolic: is_trusted: permission '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404StatusWhenTheContactIsNotFound: summary: Returns a 404 status when the contact is not found value: error: record not found symbolic: id: not_found '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsAnErrorWhenRecordIsInvalid: summary: Returns an error when record is invalid value: error: firstname: - is required lastname: - is required company_name: - is required details: firstname: - error: is required lastname: - error: is required company_name: - error: is required operationId: patch_administration_id_contacts_id delete: summary: Delete a contact description: |- Deletes a contact. ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Contact deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404StatusWhenTheContactIsNotFound: summary: Returns a 404 status when the contact is not found value: error: record not found symbolic: id: not_found operationId: delete_administration_id_contacts_id /{administration_id}/contacts{format}: get: summary: List all contacts description: |- Returns a paginated list of contacts in the administration. Searching for contacts can be done by providing the `query` parameter with search terms. The API searches for matches in the following contact fields: - `company_name` - `attention` - `firstname` - `lastname` - `address1` - `address2` - `zipcode` - `city` - `country` - `email` - `phone` - `customer_id` - `tax_number` - `chamber_of_commerce` - `bank_account` ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/page' - name: query in: query required: false schema: type: string examples: AllowsFilteringByNameInCombinationWithPagination: summary: Allows filtering by name in combination with pagination value: appleseed ReturnsEmptyListWhenNoMatchesWithFilter: summary: Returns empty list when no matches with filter value: sdfadsfdsafdsafadsgasdfadsfdsf - name: include_archived in: query required: false schema: type: - boolean - string - name: todo in: query required: false schema: type: string - name: contact_field in: query required: false schema: type: string - name: contact_value in: query required: false schema: type: string - name: contact_import_id in: query required: false description: Restrict to contacts created by the given contact import batch. schema: type: - integer - string responses: '200': description: A list of contacts content: application/json: schema: type: array items: $ref: '#/components/schemas/contact_response' examples: AllowsFilteringByNameInCombinationWithPagination: summary: Allows filtering by name in combination with pagination value: [] ReturnsEmptyListWhenNoMatchesWithFilter: summary: Returns empty list when no matches with filter value: [] ReturnsPaginatedContactsOnPage1: summary: Returns paginated contacts on page 1 value: - id: '495429928884372583' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: Appleseed address1: Hoofdstraat 12 address2: '' zipcode: 1234 AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '1' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:40.476Z' updated_at: '2026-08-14T09:13:40.493Z' version: 1786698820 sales_invoices_url: https://moneybird.dev/123/sales_invoices/9208454d3160cbc065002d991a107e697111e33a0d329654d3413991dd62ae03/all notes: [] custom_fields: [] contact_people: - id: '495429928888566889' contact_id: '495429928884372583' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-08-14T09:13:40.480Z' updated_at: '2026-08-14T09:13:40.480Z' version: 1786698820 - id: '495429928929461366' contact_id: '495429928884372583' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:13:40.520Z' updated_at: '2026-08-14T09:13:40.520Z' version: 1786698820 - id: '495429928936801401' contact_id: '495429928884372583' administration_id: 123 firstname: Foo lastname: Bar phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:13:40.527Z' updated_at: '2026-08-14T09:13:40.527Z' version: 1786698820 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:40.487Z' updated_at: '2026-08-14T09:13:40.487Z' ReturnsPaginatedContactsOnPage2: summary: Returns paginated contacts on page 2 value: - id: '495429929101427866' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: 1 Infinite Loop address2: '' zipcode: '123456' city: Redmond country: NL phone: '' delivery_method: Email customer_id: '2' tax_number: '' chamber_of_commerce: '' bank_account: NL50TEST0166567191 is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: true sepa_iban: NL50TEST0166567191 sepa_iban_account_name: Foobar Holding B.V. sepa_bic: RABONL2U sepa_mandate_id: MAN12313 sepa_mandate_date: '2014-01-01' sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:40.683Z' updated_at: '2026-08-14T09:13:40.683Z' version: 1786698820 sales_invoices_url: https://moneybird.dev/123/sales_invoices/5cef76815cc717fd0551178edddd4115c215cf2a8aa29bc4d76ca63b58e254cf/all notes: [] custom_fields: [] contact_people: - id: '495429929105622172' contact_id: '495429929101427866' administration_id: 123 firstname: John lastname: Doe phone: null email: null department: null created_at: '2026-08-14T09:13:40.687Z' updated_at: '2026-08-14T09:13:40.687Z' version: 1786698820 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:40.694Z' updated_at: '2026-08-14T09:13:40.694Z' AllowsFilteringByName: summary: Allows filtering by name value: - id: '495429929546024105' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: Appleseed address1: Hoofdstraat 12 address2: '' zipcode: 1234 AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '1' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:41.107Z' updated_at: '2026-08-14T09:13:41.212Z' version: 1786698821 sales_invoices_url: https://moneybird.dev/123/sales_invoices/d82cb3cd51e5abd2b80210a2fc4b23ea119f4a1fb6072d85a67cb3d1311c2e26/all notes: [] custom_fields: [] contact_people: - id: '495429929550218411' contact_id: '495429929546024105' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-08-14T09:13:41.111Z' updated_at: '2026-08-14T09:13:41.111Z' version: 1786698821 - id: '495429929808168120' contact_id: '495429929546024105' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:13:41.357Z' updated_at: '2026-08-14T09:13:41.357Z' version: 1786698821 - id: '495429929816556731' contact_id: '495429929546024105' administration_id: 123 firstname: Foo lastname: Bar phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:13:41.365Z' updated_at: '2026-08-14T09:13:41.365Z' version: 1786698821 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:41.205Z' updated_at: '2026-08-14T09:13:41.205Z' ReturnAListOfContacts: summary: Return a list of contacts value: - id: '495429929873179839' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: Appleseed address1: Hoofdstraat 12 address2: '' zipcode: 1234 AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '1' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:41.419Z' updated_at: '2026-08-14T09:13:41.436Z' version: 1786698821 sales_invoices_url: https://moneybird.dev/123/sales_invoices/7bd2dc22b201e227a3132f56daf192b40258f8a3f060e6257214f68c7037f9b3/all notes: [] custom_fields: [] contact_people: - id: '495429929877374145' contact_id: '495429929873179839' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-08-14T09:13:41.423Z' updated_at: '2026-08-14T09:13:41.423Z' version: 1786698821 - id: '495429929918268622' contact_id: '495429929873179839' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:13:41.463Z' updated_at: '2026-08-14T09:13:41.463Z' version: 1786698821 - id: '495429929925608657' contact_id: '495429929873179839' administration_id: 123 firstname: Foo lastname: Bar phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:13:41.470Z' updated_at: '2026-08-14T09:13:41.470Z' version: 1786698821 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:41.429Z' updated_at: '2026-08-14T09:13:41.429Z' - id: '495429929898345670' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: 1 Infinite Loop address2: '' zipcode: '123456' city: Redmond country: NL phone: '' delivery_method: Email customer_id: '2' tax_number: '' chamber_of_commerce: '' bank_account: NL50TEST0166567191 is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: true sepa_iban: NL50TEST0166567191 sepa_iban_account_name: Foobar Holding B.V. sepa_bic: RABONL2U sepa_mandate_id: MAN12313 sepa_mandate_date: '2014-01-01' sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:41.443Z' updated_at: '2026-08-14T09:13:41.443Z' version: 1786698821 sales_invoices_url: https://moneybird.dev/123/sales_invoices/7460809c69183170746161bf3b956cdcb423c39d5308360724009e8131b259d4/all notes: [] custom_fields: [] contact_people: - id: '495429929902539976' contact_id: '495429929898345670' administration_id: 123 firstname: John lastname: Doe phone: null email: null department: null created_at: '2026-08-14T09:13:41.447Z' updated_at: '2026-08-14T09:13:41.447Z' version: 1786698821 archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:41.453Z' updated_at: '2026-08-14T09:13:41.453Z' - id: '495429929915122892' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:41.459Z' updated_at: '2026-08-14T09:13:41.459Z' version: 1786698821 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false events: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenTooManyContactsAreRequested: summary: Returns an error when too many contacts are requested value: error: per_page does not have a valid value operationId: get_administration_id_contacts post: summary: Create a new contact description: |- Creating a new contact in the administration requires at least a `company_name` or a `firstname` and `lastname`. When filling a custom field, both `id` and `value` are required. See the custom field example for more information. ### Required scope(s) Any of: `estimates`, `sales_invoices`, `documents`, `bank` or `settings` tags: - Contacts security: - bearerAuth: - estimates - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - bank - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: contact: type: object unevaluatedProperties: false properties: company_name: type: string description: A contact requires a non-blank `company_name`, `firstname` or `lastname`. address1: type: string description: Primary street address of the contact. address2: type: string description: Secondary address line (e.g. apartment number, building name). zipcode: type: string description: Postal code or ZIP code of the contact's address. city: type: string description: City or town of the contact's address. country: type: string description: ISO two-character country code, e.g. NL or DE. phone: type: string description: Phone number of the contact. delivery_method: type: string description: Can be `Email`, `Simplerinvoicing`, `Peppol`, `Manual` or `Post`. customer_id: type: string description: Will be assigned automatically if empty. Should be unique for the administration. tax_number: type: string description: The tax identification number (VAT number) of the contact, e.g. `NL123456789B01`. firstname: type: string description: A contact requires a non-blank `company_name`, `firstname` or `lastname`. lastname: type: string description: A contact requires a non-blank `company_name`, `firstname` or `lastname`. chamber_of_commerce: type: string description: The CoC (Chamber of Commerce) registration number of the contact's business. bank_account: type: string description: The bank account number (IBAN) of the contact. Used for outgoing payments and displayed on documents. send_invoices_to_attention: type: string description: The name of the person to address invoices to (attention line), e.g. "Finance Department". send_invoices_to_email: type: string description: Should be one or more valid email addresses, separated by a comma. send_estimates_to_attention: type: string description: The name of the person to address estimates to (attention line). send_estimates_to_email: type: string description: Should be one or more valid email addresses, separated by a comma. sepa_active: type: - boolean - string description: When `true`, all other SEPA fields are required. sepa_iban: type: string description: Should be a valid IBAN. sepa_iban_account_name: type: string description: The account holder name for the SEPA direct debit IBAN. sepa_bic: type: string description: Should be a valid BIC. sepa_mandate_id: type: string description: Should be unique for the administration. sepa_mandate_date: type: string description: Should be a date in the past. sepa_sequence_type: type: string description: Can be `RCUR`, `FRST`, `OOFF` or `FNAL`. si_identifier_type: type: string description: Can be `0002`, `0007`, `0009`, `0037`, `0060`, `0088`, `0096`, `0097`, `0106`, `0130`, `0135`, `0142`, `0151`, `0183`, `0184`, `0188`, `0190`, `0191`, `0192`, `0193`, `0195`, `0196`, `0198`, `0199`, `0200`, `0201`, `0204`, `0205`, `0208`, `0209`, `0210`, `0211`, `0212`, `0213`, `0215`, `0216`, `0221`, `0230`, `9910`, `9913`, `9914`, `9915`, `9918`, `9919`, `9920`, `9922`, `9923`, `9924`, `9925`, `9926`, `9927`, `9928`, `9929`, `9930`, `9931`, `9932`, `9933`, `9934`, `9935`, `9936`, `9937`, `9938`, `9939`, `9940`, `9941`, `9942`, `9943`, `9944`, `9945`, `9946`, `9947`, `9948`, `9949`, `9950`, `9951`, `9952`, `9953`, `9957` or `9959`. si_identifier: type: string description: The Peppol/e-invoicing identifier value for this contact. The format depends on the `si_identifier_type`. invoice_workflow_id: $ref: '#/components/schemas/identifier' description: Should be a valid invoice workflow id. estimate_workflow_id: $ref: '#/components/schemas/identifier' description: Should be a valid estimate workflow id. email_ubl: type: - boolean - string description: When `true`, a UBL (Universal Business Language) XML file is attached when emailing invoices to this contact. Enables machine-readable invoice processing. direct_debit: type: - boolean - string description: When `true`, invoices for this contact are collected via SEPA direct debit. Requires SEPA fields to be configured. custom_fields_attributes: $ref: '#/components/schemas/custom_fields_attributes' contact_person: type: object description: An optional initial contact person to create along with the contact. Additional contact persons can be managed via the contact persons endpoint. unevaluatedProperties: false properties: firstname: type: string description: First name of the contact person. lastname: type: string description: Last name of the contact person. required: - firstname - lastname required: [] required: - contact examples: CreateANewContactWithGivenSiIdentifier: summary: Create a new contact with given si identifier value: contact: company_name: Test B.V. si_identifier: '1234567' si_identifier_type: NL:KVK CreateANewContact: summary: Create a new contact value: contact: company_name: Test B.V. AddingValuesForCustomFields: summary: Adding values for custom fields value: contact: company_name: Test B.V. custom_fields_attributes: '0': id: 495429930912318900 value: Field value CreateANewContactWithMandateDateInTimezoneGap: summary: Create a new contact with mandate date in timezone gap value: contact: company_name: Test B.V. sepa_active: true sepa_iban: NL91ABNA0417164300 sepa_iban_account_name: Foo Bar sepa_mandate_date: 2017-6-30 sepa_mandate_id: NL123214 responses: '201': description: Contact created content: application/json: schema: $ref: '#/components/schemas/contact_response' examples: CreateANewContactWithGivenSiIdentifier: summary: Create a new contact with given si identifier value: id: '495429930543220056' administration_id: 123 company_name: Test B.V. firstname: '' lastname: '' address1: '' address2: '' zipcode: '' city: '' country: NL phone: '' delivery_method: Email customer_id: '3' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: '' email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: '' send_estimates_to_attention: '' send_estimates_to_email: '' direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '1234567' si_identifier_type: NL:KVK moneybird_payments_mandate: false created_at: '2026-08-14T09:13:42.058Z' updated_at: '2026-08-14T09:13:42.058Z' version: 1786698822 sales_invoices_url: https://moneybird.dev/123/sales_invoices/c2e7266b9589853e925a56d0ce17269d4ef2914ea124c6c48dd2a443b4401bae/all notes: [] custom_fields: [] contact_people: [] archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:42.061Z' updated_at: '2026-08-14T09:13:42.061Z' CreateANewContact: summary: Create a new contact value: id: '495429930693166455' administration_id: 123 company_name: Test B.V. firstname: '' lastname: '' address1: '' address2: '' zipcode: '' city: '' country: NL phone: '' delivery_method: Email customer_id: '3' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: '' email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: '' send_estimates_to_attention: '' send_estimates_to_email: '' direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:42.201Z' updated_at: '2026-08-14T09:13:42.201Z' version: 1786698822 sales_invoices_url: https://moneybird.dev/123/sales_invoices/da772bad68d408feeef5e3c2daddb479338733df380ee086c657492f7fe51499/all notes: [] custom_fields: [] contact_people: [] archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:42.204Z' updated_at: '2026-08-14T09:13:42.204Z' AddingValuesForCustomFields: summary: Adding values for custom fields value: id: '495429930924901799' administration_id: 123 company_name: Test B.V. firstname: '' lastname: '' address1: '' address2: '' zipcode: '' city: '' country: NL phone: '' delivery_method: Email customer_id: '3' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: '' email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: '' send_estimates_to_attention: '' send_estimates_to_email: '' direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:42.422Z' updated_at: '2026-08-14T09:13:42.422Z' version: 1786698822 sales_invoices_url: https://moneybird.dev/123/sales_invoices/2369eafcee64011d16362f30d231a4d50a4ad47f8b100c20304a5a2fa4921d5a/all notes: [] custom_fields: - id: '495429930912318885' name: Number value: Field value contact_people: [] archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:42.425Z' updated_at: '2026-08-14T09:13:42.425Z' CreateANewContactWithMandateDateInTimezoneGap: summary: Create a new contact with mandate date in timezone gap value: id: '495429931094771142' administration_id: 123 company_name: Test B.V. firstname: '' lastname: '' address1: '' address2: '' zipcode: '' city: '' country: NL phone: '' delivery_method: Email customer_id: '3' tax_number: '' chamber_of_commerce: '' bank_account: NL91ABNA0417164300 is_trusted: false max_transfer_amount: null attention: '' email: '' email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: '' send_estimates_to_attention: '' send_estimates_to_email: '' direct_debit: false sepa_active: true sepa_iban: NL91ABNA0417164300 sepa_iban_account_name: Foo Bar sepa_bic: ABNANL2A sepa_mandate_id: NL123214 sepa_mandate_date: '2017-06-30' sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2017-06-30T23:30:00.011Z' updated_at: '2017-06-30T23:30:00.011Z' version: 1498865400 sales_invoices_url: https://moneybird.dev/123/sales_invoices/efab01030c738bebbeecf32fb562e65938fade79327ebd811597d68e8f64070a/all notes: [] custom_fields: [] contact_people: [] archived: false events: - administration_id: 123 user_id: '495429852315255909' action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2017-06-30T23:30:00.014Z' updated_at: '2017-06-30T23:30:00.014Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenFieldsAreNotProvided: summary: Returns an error when fields are not provided value: error: Contact is required symbolic: contact: required '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenCustomFieldCannotBeFound: summary: Returns an error when custom field cannot be found value: error: Custom field with id 1234 not found for administration symbolic: custom_fields_attributes: not_found '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsAnErrorWhenRecordIsInvalid: summary: Returns an error when record is invalid value: error: firstname: - is required lastname: - is required company_name: - is required details: firstname: - error: is required lastname: - error: is required company_name: - error: is required DoesNotCreateContactWhenMandateDateIsFutureInAdministrationTimezone: summary: Does not create contact when mandate date is future in administration timezone value: error: sepa_mandate_date: - cannot be in the future details: sepa_mandate_date: - error: not_in_future operationId: post_administration_id_contacts /{administration_id}/custom_fields{format}: get: summary: List all custom fields description: |- Custom fields are used to add extra information to entities in the administration. The `source` field can be `sales_invoices`, `contact` or `identity` and defines for which entities the custom field can be used. The id of a custom field is required to add a value for a custom field to an entity. ### Required scope(s) `settings` tags: - Custom fields security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' responses: '200': description: A list of custom fields content: application/json: schema: type: array items: $ref: '#/components/schemas/custom_field_response' examples: ReturnsAllCustomFieldsOfAnAdministration: summary: Returns all custom fields of an administration value: - id: '495430092348982830' administration_id: 123 name: custom_field_c2ef7cb034ff78600ff9 source: sales_invoice operationId: get_administration_id_custom_fields /{administration_id}/customer_contact_portal/{contact_id}/invoices{format}: get: summary: Get a temporary link to the invoices in the customer contact portal description: |- Generate a temporary link to the invoices in the customer contact portal. The link will expire after 1 hour. ### Required scope(s) Any of: `sales_invoices` or `estimates` tags: - Customer contact portal security: - bearerAuth: - sales_invoices - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - name: contact_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: Temporary link generated successfully content: application/json: schema: type: string example: https://moneybird.com/temporary-link examples: ReturnsATemporaryLinkThatRedirectsToTheInvoicesPage: summary: Returns a temporary link that redirects to the invoices page value: http://moneybird.com '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401ForTheInvoicesLink: summary: Returns 401 for the invoices link value: error: No access to sales_invoices or estimates '404': description: Contact not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTheContactDoesNotExist: summary: Returns 404 when the contact does not exist value: error: 'Record not found for model name: Contact' operationId: get_administration_id_customer_contact_portal_contact_id_invoices /{administration_id}/customer_contact_portal/{contact_id}/subscriptions/{id}{format}: get: summary: Get a temporary link to the subscriptions in the customer contact portal description: |- Generate a temporary link to the subscriptions in the customer contact portal. The link will expire after 1 hour. Creating the online sales link can be done using the [Create online sales link endpoint](https://developer.moneybird.com/api/subscription-templates#create-online-sales-link). ### Required scope(s) Any of: `sales_invoices` or `estimates` tags: - Customer contact portal security: - bearerAuth: - sales_invoices - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - name: contact_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: Temporary link generated successfully content: application/json: schema: type: string example: https://moneybird.com/temporary-link examples: ReturnsATemporaryLink: summary: Returns a temporary link value: http://moneybird.com '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401ForTheSubscriptionLink: summary: Returns 401 for the subscription link value: error: No access to sales_invoices or estimates '404': description: Contact or subscription not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTheSubscriptionHasNoSubscriptionTemplate: summary: Returns 404 when the subscription has no subscription template value: error: 'Record not found for model name: Subscription' Returns404WhenTheSubscriptionDoesNotBelongToTheContact: summary: Returns 404 when the subscription does not belong to the contact value: error: 'Record not found for model name: Subscription' operationId: get_administration_id_customer_contact_portal_contact_id_subscriptions_id /{administration_id}/customer_contact_portal/{contact_id}{format}: get: summary: Get a temporary link to the customer contact portal description: |- Generate a temporary link to the customer contact portal. The link will expire after 1 hour. ### Required scope(s) Any of: `sales_invoices` or `estimates` tags: - Customer contact portal security: - bearerAuth: - sales_invoices - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - name: contact_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: Temporary link generated successfully content: application/json: schema: type: string example: https://moneybird.com/temporary-link examples: CallsGeneratetemporarylinkMutation: summary: Calls generatetemporarylink mutation value: http://moneybird.com ReturnsATemporaryLink: summary: Returns a temporary link value: http://moneybird.com '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401ForTheContactPortalLink: summary: Returns 401 for the contact portal link value: error: No access to sales_invoices or estimates '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTheContactDoesNotExist: summary: Returns 404 when the contact does not exist value: error: 'Record not found for model name: Contact' Returns404WhenTheContactDoesNotBelongToTheAdministration: summary: Returns 404 when the contact does not belong to the administration value: error: 'Record not found for model name: Contact' operationId: get_administration_id_customer_contact_portal_contact_id /{administration_id}/document_styles{format}: get: summary: List all document styles description: |- Returns a list of all document styles. ### Required scope(s) `settings` tags: - Document styles security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' responses: '200': description: A list of document styles content: application/json: schema: type: array items: $ref: '#/components/schemas/document_style_response' examples: ReturnsAllDocumentstylesOfAnAdministration: summary: Returns all documentstyles of an administration value: - id: '495429853658481817' administration_id: 123 name: Standaard identity_id: '495429852692743275' default: true logo_hash: null logo_container_full_width: false logo_display_width: 50 logo_position: right background_hash: null paper_size: A4 address_position: left font_size: 9 font_family: lucida_grande print_on_stationery: false custom_css: null invoice_sender_address: - field: company_name bold: true - field: address - field: newline - field: email - field: phone - field: newline - field: chamber_of_commerce label: true - field: tax_number label: true - field: bank_account_number label: true invoice_metadata_left: - field: reference invoice_metadata_right: - field: invoice_date - field: due_date estimate_sender_address: - field: company_name bold: true - field: address - field: newline - field: email - field: phone - field: newline - field: chamber_of_commerce label: true - field: tax_number label: true - field: bank_account_number label: true estimate_metadata_left: - field: reference estimate_metadata_right: - field: estimate_date - field: due_date created_at: '2026-08-14T09:12:28.733Z' updated_at: '2026-08-14T09:12:28.733Z' operationId: get_administration_id_document_styles /{administration_id}/documents/general_documents/synchronization{format}: get: summary: List ids and versions of general documents description: |- Returns all documents in the administration. The list contains the document id and the version of the document. Check if the version of the document is newer than the version you have stored locally, use the `POST` variant for fetching documents with the given ids. ### Required scope(s) `documents` tags: - 'Documents: General documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: Comma-separated `key:value` filter terms. Same syntax as `GET /documents/general_documents` — see that operation's description for the available keys. schema: type: string examples: RetrievesAllIdsForSynchronizationUsingAFilter: summary: Retrieves all ids for synchronization using a filter value: period:this_month responses: '200': description: IDs and versions of records content: application/json: schema: type: array items: type: object unevaluatedProperties: false properties: id: type: - integer - string version: type: - integer - string examples: RetrievesAllIdsForSynchronization: summary: Retrieves all ids for synchronization value: - id: '495429878406973166' version: 1786698772 - id: '495429878417458928' version: 1786698772 - id: '495429878427944690' version: 1786698772 RetrievesAllIdsForSynchronizationUsingAFilter: summary: Retrieves all ids for synchronization using a filter value: - id: '495429878539093763' version: 1786698772 - id: '495429878549579525' version: 1786698772 - id: '495429878560065287' version: 1786698772 operationId: get_administration_id_documents_general_documents_synchronization post: summary: Fetch general documents with given ids x-query: true description: |- Given a list of document ids, returns the document information belonging to the documents. Returns a maximum of 100 documents, even if more ids are provided. ### Required scope(s) `documents` tags: - 'Documents: General documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: ids: type: array items: type: - integer - string required: - ids examples: RetrievesDocumentsForGivenIds: summary: Retrieves documents for given ids value: ids: - 495429878266463940 - 495429878277998300 responses: '200': description: A list of general documents content: application/json: schema: type: array items: $ref: '#/components/schemas/general_document_response' examples: RetrievesDocumentsForGivenIds: summary: Retrieves documents for given ids value: - id: '495429878266463963' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-08-14' due_date: null entry_number: 3 state: saved exchange_rate: '1.0' created_at: '2026-08-14T09:12:52.204Z' updated_at: '2026-08-14T09:12:52.204Z' version: 1786698772 notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:52.206Z' updated_at: '2026-08-14T09:12:52.206Z' - id: '495429878277998301' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-08-14' due_date: null entry_number: 4 state: saved exchange_rate: '1.0' created_at: '2026-08-14T09:12:52.214Z' updated_at: '2026-08-14T09:12:52.214Z' version: 1786698772 notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:52.217Z' updated_at: '2026-08-14T09:12:52.217Z' operationId: post_administration_id_documents_general_documents_synchronization /{administration_id}/documents/general_documents/{general_document_id}/notes/{id}{format}: delete: summary: Destroys note from entity description: |- Deletes a note from the general document. ### Required scope(s) `documents` tags: - 'Documents: General documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: general_document_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Note deleted '400': $ref: '#/components/responses/400_bad_request' operationId: delete_administration_id_documents_general_documents_general_document_id_notes_id /{administration_id}/documents/general_documents/{general_document_id}/notes{format}: post: summary: Adds note to entity description: |- Adds a note to the general document. ### Required scope(s) `documents` tags: - 'Documents: General documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: general_document_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: note: type: object unevaluatedProperties: false properties: note: type: string description: '**Required**. Text for the note or to-do.' todo: type: - boolean - string description: If `true` the note is a to-do. assignee_id: $ref: '#/components/schemas/identifier' description: Assign to-do to user. Should be a valid user id. If assignee_id is provided the note will be a to-do. required: [] required: [] examples: CreateANote: summary: Create a note value: note: note: Text of the note assignee_id: 495429879413606300 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '495429879435626375' administration_id: 123 entity_id: '495429879402071939' entity_type: Document user_id: '495429852315255909' assignee_id: '495429879413606277' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-08-14T09:12:53.318Z' updated_at: '2026-08-14T09:12:53.318Z' '400': $ref: '#/components/responses/400_bad_request' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_documents_general_documents_general_document_id_notes /{administration_id}/documents/general_documents/{id}/attachments/{attachment_id}/download{format}: get: summary: Download attachment description: |- Download the attachment. The response will be a redirect to a temporarily available URL where the attachment can be downloaded. Use the `Location` header in the response to download the attachment. ### Required scope(s) `documents` tags: - 'Documents: General documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: attachment_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '302': description: Found content: text/plain: schema: type: string examples: DownloadsTheAttachment: summary: Downloads the attachment value: '{"message":"Use the Location header to download the attachment"}' '404': $ref: '#/components/responses/404_not_found' operationId: get_administration_id_documents_general_documents_id_attachments_attachment_id_download /{administration_id}/documents/general_documents/{id}/attachments/{attachment_id}{format}: delete: summary: Delete an attachment description: |- Deletes an attachment of an attachable. ### Required scope(s) `documents` tags: - 'Documents: General documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: attachment_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Attachment deleted '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_documents_general_documents_id_attachments_attachment_id /{administration_id}/documents/general_documents/{id}/attachments{format}: post: summary: Add attachment to general document description: |- Add an attachment to a general document. ### Required scope(s) `documents` tags: - 'Documents: General documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: multipart/form-data: schema: type: object properties: file: type: string format: binary responses: '200': description: Status code content: application/json: schema: type: integer examples: UploadsAnAttachment: summary: Uploads an attachment value: 200 '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_documents_general_documents_id_attachments /{administration_id}/documents/general_documents/{id}{format}: get: summary: Get general document description: |- Returns a general document by id. ### Required scope(s) `documents` tags: - 'Documents: General documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A general document content: application/json: schema: $ref: '#/components/schemas/general_document_response' examples: ReturnsTheWantedGeneralDocument: summary: Returns the wanted general document value: id: '495429878959572799' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-08-14' due_date: null entry_number: 2 state: saved exchange_rate: '1.0' created_at: '2026-08-14T09:12:52.865Z' updated_at: '2026-08-14T09:12:52.865Z' version: 1786698772 notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:52.867Z' updated_at: '2026-08-14T09:12:52.867Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: OnlyReturnsGeneralDocuments: summary: Only returns general documents value: error: record not found symbolic: id: not_found operationId: get_administration_id_documents_general_documents_id delete: summary: Delete a general document description: |- Deletes a general document. ### Required scope(s) `documents` tags: - 'Documents: General documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: Status code content: application/json: schema: type: integer examples: DeletesTheGeneralDocument: summary: Deletes the general document value: 200 '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_documents_general_documents_id patch: summary: Update a general document description: |- Updates a general document. ### Required scope(s) `documents` tags: - 'Documents: General documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: general_document: type: object unevaluatedProperties: false properties: reference: type: string description: '**Required**.' date: type: string format: date description: '**Required**.' due_date: type: string format: date reminder_date: type: string format: date contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. reminder: type: object unevaluatedProperties: false description: Creates a reminder to-do for this document. properties: date: type: string format: date message: type: string required: - date required: [] remove_contact: type: - boolean - string required: [] examples: UpdatesTheGeneralDocument: summary: Updates the general document value: general_document: reference: updated reference responses: '200': description: General document updated content: application/json: schema: $ref: '#/components/schemas/general_document_response' examples: UpdatesTheGeneralDocument: summary: Updates the general document value: id: '495429882320258214' administration_id: 123 contact_id: null contact: null reference: updated reference date: '2026-08-14' due_date: null entry_number: 2 state: saved exchange_rate: '1.0' created_at: '2026-08-14T09:12:56.069Z' updated_at: '2026-08-14T09:12:56.097Z' version: 1786698776 notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:56.072Z' updated_at: '2026-08-14T09:12:56.072Z' - administration_id: 123 user_id: '495429852315255909' action: document_updated link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:56.100Z' updated_at: '2026-08-14T09:12:56.100Z' '404': $ref: '#/components/responses/404_not_found' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: patch_administration_id_documents_general_documents_id /{administration_id}/documents/general_documents{format}: get: summary: Get general documents description: |- Returns a paginated list of documents of this type in the administration. ### Required scope(s) `documents` tags: - 'Documents: General documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: |- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:open`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | period | `String` | `this_year` | A named period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom range (`201301..201302`, `20130101..20130131`) | | state | `String` | `all` | `all`, `new`, `saved`, `open`, `paid`, `late` or `pending_payment`. `paid`, `late` and `pending_payment` only apply to documents with a payment lifecycle (purchase invoices and receipts) | | recurring | `String` | `all` | `all`, `enabled` or `disabled` | | attachment | `String` | `all` | `all`, `with` or `without` | | reference | `String` | | Documents with the given reference value | | contact_id | `Integer` | | Documents belonging to the given contact | | ledger_account_id | `Integer` | | Documents booking against the given ledger account | | updated_after | `String` | | ISO 8601 timestamp in UTC; documents updated strictly after this time | Multiple values for `state`, `recurring` and `attachment` can be combined with a pipe, e.g. `state:open|paid`. schema: type: string default: period:this_year - name: new_filter in: query required: false schema: type: string description: 'String terms, example: `key1:value1,key2:value2`.' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: A list of general documents content: application/json: schema: type: array items: $ref: '#/components/schemas/general_document_response' examples: ReturnsPaginatedGeneralDocumentsOnPage1: summary: Returns paginated general documents on page 1 value: - id: '495429882885440754' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-08-14' due_date: null entry_number: 5 state: saved exchange_rate: '1.0' created_at: '2026-08-14T09:12:56.608Z' updated_at: '2026-08-14T09:12:56.608Z' version: 1786698776 notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:56.611Z' updated_at: '2026-08-14T09:12:56.611Z' ReturnsPaginatedGeneralDocumentsOnPage2: summary: Returns paginated general documents on page 2 value: - id: '495429883055310087' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-08-14' due_date: null entry_number: 4 state: saved exchange_rate: '1.0' created_at: '2026-08-14T09:12:56.770Z' updated_at: '2026-08-14T09:12:56.770Z' version: 1786698776 notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:56.773Z' updated_at: '2026-08-14T09:12:56.773Z' ReturnsAListOfGeneralDocuments: summary: Returns a list of general documents value: - id: '495429883389805879' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-08-14' due_date: null entry_number: 5 state: saved exchange_rate: '1.0' created_at: '2026-08-14T09:12:57.090Z' updated_at: '2026-08-14T09:12:57.090Z' version: 1786698777 notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:57.092Z' updated_at: '2026-08-14T09:12:57.092Z' - id: '495429883379320117' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-08-14' due_date: null entry_number: 4 state: saved exchange_rate: '1.0' created_at: '2026-08-14T09:12:57.079Z' updated_at: '2026-08-14T09:12:57.079Z' version: 1786698777 notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:57.082Z' updated_at: '2026-08-14T09:12:57.082Z' - id: '495429883368834355' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-08-14' due_date: null entry_number: 3 state: saved exchange_rate: '1.0' created_at: '2026-08-14T09:12:57.069Z' updated_at: '2026-08-14T09:12:57.069Z' version: 1786698777 notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:57.071Z' updated_at: '2026-08-14T09:12:57.071Z' - id: '495429883355202865' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-08-14' due_date: null entry_number: 2 state: saved exchange_rate: '1.0' created_at: '2026-08-14T09:12:57.056Z' updated_at: '2026-08-14T09:12:57.056Z' version: 1786698777 notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:57.059Z' updated_at: '2026-08-14T09:12:57.059Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenTooManyGeneralDocumentsAreRequested: summary: Returns an error when too many general documents are requested value: error: Per Page is too big symbolic: per_page: max operationId: get_administration_id_documents_general_documents post: summary: Create a new general document description: |- Creates a new general document. ### Required scope(s) `documents` tags: - 'Documents: General documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: general_document: type: object unevaluatedProperties: false properties: reference: type: string description: '**Required**.' date: type: string format: date description: '**Required**.' due_date: type: string format: date reminder_date: type: string format: date contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. reminder: type: object unevaluatedProperties: false description: Creates a reminder to-do for this document. properties: date: type: string format: date message: type: string required: - date required: [] required: [] examples: CreatesTheGeneralDocument: summary: Creates the general document value: general_document: reference: foobar contact_id: 495429881557943360 responses: '201': description: General document created content: application/json: schema: $ref: '#/components/schemas/general_document_response' examples: CreatesTheGeneralDocument: summary: Creates the general document value: id: '495429881657558097' administration_id: 123 contact_id: '495429881557943361' contact: id: '495429881557943361' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:12:55.341Z' updated_at: '2026-08-14T09:12:55.341Z' version: 1786698775 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: foobar date: '2026-08-14' due_date: null entry_number: 3 state: saved exchange_rate: '1.0' created_at: '2026-08-14T09:12:55.437Z' updated_at: '2026-08-14T09:12:55.437Z' version: 1786698775 notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:55.440Z' updated_at: '2026-08-14T09:12:55.440Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: RequiresAllInput: summary: Requires all input value: error: General Document is required symbolic: general_document: required '402': $ref: '#/components/responses/402_payment_required' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_documents_general_documents /{administration_id}/documents/general_journal_documents/synchronization{format}: get: summary: List ids and versions of general journal documents description: |- Returns all documents in the administration. The list contains the document id and the version of the document. Check if the version of the document is newer than the version you have stored locally, use the `POST` variant for fetching documents with the given ids. ### Required scope(s) `documents` tags: - 'Documents: General journal documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: Comma-separated `key:value` filter terms. Same syntax as `GET /documents/general_journal_documents` — see that operation's description for the available keys. schema: type: string examples: RetrievesAllIdsForSynchronizationUsingAFilter: summary: Retrieves all ids for synchronization using a filter value: period:this_month responses: '200': description: IDs and versions of records content: application/json: schema: type: array items: type: object unevaluatedProperties: false properties: id: type: - integer - string version: type: - integer - string examples: RetrievesAllIdsForSynchronization: summary: Retrieves all ids for synchronization value: - id: '495429867115906463' version: 1786698761 - id: '495429867164140978' version: 1786698761 - id: '495429867209229765' version: 1786698761 RetrievesAllIdsForSynchronizationUsingAFilter: summary: Retrieves all ids for synchronization using a filter value: - id: '495429867389584873' version: 1786698761 - id: '495429867436770812' version: 1786698761 - id: '495429867481859599' version: 1786698761 operationId: get_administration_id_documents_general_journal_documents_synchronization post: summary: Fetch general journal documents with given ids x-query: true description: |- Given a list of document ids, returns the document information belonging to the documents. Returns a maximum of 100 documents, even if more ids are provided. ### Required scope(s) `documents` tags: - 'Documents: General journal documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: ids: type: array items: type: - integer - string required: - ids examples: RetrievesDocumentsForGivenIds: summary: Retrieves documents for given ids value: ids: - 495429866883122560 - 495429866930308500 responses: '200': description: A list of general journal documents content: application/json: schema: type: array items: $ref: '#/components/schemas/general_journal_document_response' examples: RetrievesDocumentsForGivenIds: summary: Retrieves documents for given ids value: - id: '495429866930308475' administration_id: 123 reference: Deprecations date: '2026-08-14' journal_type: null created_at: '2026-08-14T09:12:41.392Z' updated_at: '2026-08-14T09:12:41.392Z' version: 1786698761 general_journal_document_entries: - id: '495429866932405628' administration_id: 123 ledger_account_id: '495429866908288378' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-08-14T09:12:41.394Z' updated_at: '2026-08-14T09:12:41.394Z' description: First - id: '495429866933454205' administration_id: 123 ledger_account_id: '495429866908288378' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-08-14T09:12:41.396Z' updated_at: '2026-08-14T09:12:41.396Z' description: Second - id: '495429866934502782' administration_id: 123 ledger_account_id: '495429866908288378' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-08-14T09:12:41.396Z' updated_at: '2026-08-14T09:12:41.396Z' description: Third - id: '495429866935551359' administration_id: 123 ledger_account_id: '495429866908288378' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-08-14T09:12:41.397Z' updated_at: '2026-08-14T09:12:41.397Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:41.399Z' updated_at: '2026-08-14T09:12:41.399Z' - id: '495429866883122536' administration_id: 123 reference: Deprecations date: '2026-08-14' journal_type: null created_at: '2026-08-14T09:12:41.346Z' updated_at: '2026-08-14T09:12:41.346Z' version: 1786698761 general_journal_document_entries: - id: '495429866884171113' administration_id: 123 ledger_account_id: '495429866859005287' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-08-14T09:12:41.349Z' updated_at: '2026-08-14T09:12:41.349Z' description: First - id: '495429866885219690' administration_id: 123 ledger_account_id: '495429866859005287' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-08-14T09:12:41.350Z' updated_at: '2026-08-14T09:12:41.350Z' description: Second - id: '495429866886268267' administration_id: 123 ledger_account_id: '495429866859005287' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-08-14T09:12:41.351Z' updated_at: '2026-08-14T09:12:41.351Z' description: Third - id: '495429866887316844' administration_id: 123 ledger_account_id: '495429866859005287' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-08-14T09:12:41.352Z' updated_at: '2026-08-14T09:12:41.352Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:41.354Z' updated_at: '2026-08-14T09:12:41.354Z' operationId: post_administration_id_documents_general_journal_documents_synchronization /{administration_id}/documents/general_journal_documents/{general_journal_document_id}/notes/{id}{format}: delete: summary: Destroys note from entity description: |- Deletes a note from the general journal document. ### Required scope(s) `documents` tags: - 'Documents: General journal documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: general_journal_document_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Note deleted '400': $ref: '#/components/responses/400_bad_request' operationId: delete_administration_id_documents_general_journal_documents_general_journal_document_id_notes_id /{administration_id}/documents/general_journal_documents/{general_journal_document_id}/notes{format}: post: summary: Adds note to entity description: |- Adds a note to the general journal document. ### Required scope(s) `documents` tags: - 'Documents: General journal documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: general_journal_document_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: note: type: object unevaluatedProperties: false properties: note: type: string description: '**Required**. Text for the note or to-do.' todo: type: - boolean - string description: If `true` the note is a to-do. assignee_id: $ref: '#/components/schemas/identifier' description: Assign to-do to user. Should be a valid user id. If assignee_id is provided the note will be a to-do. required: [] required: [] examples: CreateANote: summary: Create a note value: note: note: Text of the note assignee_id: 495429868419286800 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '495429868458084082' administration_id: 123 entity_id: '495429868382586590' entity_type: Document user_id: '495429852315255909' assignee_id: '495429868419286768' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-08-14T09:12:42.849Z' updated_at: '2026-08-14T09:12:42.849Z' '400': $ref: '#/components/responses/400_bad_request' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_documents_general_journal_documents_general_journal_document_id_notes /{administration_id}/documents/general_journal_documents/{id}/attachments/{attachment_id}/download{format}: get: summary: Download attachment description: |- Download the attachment. The response will be a redirect to a temporarily available URL where the attachment can be downloaded. Use the `Location` header in the response to download the attachment. ### Required scope(s) `documents` tags: - 'Documents: General journal documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: attachment_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '302': description: Found content: text/plain: schema: type: string examples: DownloadsTheAttachment: summary: Downloads the attachment value: '{"message":"Use the Location header to download the attachment"}' '404': $ref: '#/components/responses/404_not_found' operationId: get_administration_id_documents_general_journal_documents_id_attachments_attachment_id_download /{administration_id}/documents/general_journal_documents/{id}/attachments/{attachment_id}{format}: delete: summary: Delete an attachment description: |- Deletes an attachment of an attachable. ### Required scope(s) `documents` tags: - 'Documents: General journal documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: attachment_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Attachment deleted '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_documents_general_journal_documents_id_attachments_attachment_id /{administration_id}/documents/general_journal_documents/{id}/attachments{format}: post: summary: Add attachment to general journal document description: |- Add an attachment to a general journal document. ### Required scope(s) `documents` tags: - 'Documents: General journal documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: multipart/form-data: schema: type: object properties: file: type: string format: binary responses: '200': description: Status code content: application/json: schema: type: integer examples: UploadsAnAttachment: summary: Uploads an attachment value: 200 '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_documents_general_journal_documents_id_attachments /{administration_id}/documents/general_journal_documents/{id}{format}: get: summary: Get general journal document description: |- Returns a general journal document by id. ### Required scope(s) `documents` tags: - 'Documents: General journal documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A general journal document content: application/json: schema: $ref: '#/components/schemas/general_journal_document_response' examples: ReturnsTheWantedGeneralJournalDocument: summary: Returns the wanted general journal document value: id: '495429860470031824' administration_id: 123 reference: Deprecations date: '2026-08-14' journal_type: null created_at: '2026-08-14T09:12:35.231Z' updated_at: '2026-08-14T09:12:35.231Z' version: 1786698755 general_journal_document_entries: - id: '495429860472128977' administration_id: 123 ledger_account_id: '495429860415505871' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-08-14T09:12:35.234Z' updated_at: '2026-08-14T09:12:35.234Z' description: First - id: '495429860475274706' administration_id: 123 ledger_account_id: '495429860415505871' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-08-14T09:12:35.236Z' updated_at: '2026-08-14T09:12:35.236Z' description: Second - id: '495429860476323283' administration_id: 123 ledger_account_id: '495429860415505871' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-08-14T09:12:35.237Z' updated_at: '2026-08-14T09:12:35.237Z' description: Third - id: '495429860477371860' administration_id: 123 ledger_account_id: '495429860415505871' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-08-14T09:12:35.239Z' updated_at: '2026-08-14T09:12:35.239Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:35.243Z' updated_at: '2026-08-14T09:12:35.243Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: OnlyReturnsGeneralJournalDocuments: summary: Only returns general journal documents value: error: record not found symbolic: id: not_found operationId: get_administration_id_documents_general_journal_documents_id delete: summary: Delete a general journal document description: |- Deletes a general journal document. ### Required scope(s) `documents` tags: - 'Documents: General journal documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: Status code content: application/json: schema: type: integer examples: DeletesTheGeneralJournalDocument: summary: Deletes the general journal document value: 200 '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_documents_general_journal_documents_id patch: summary: Update a general journal document description: |- Updates a general journal document. ### Required scope(s) `documents` tags: - 'Documents: General journal documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: general_journal_document: type: object unevaluatedProperties: false properties: reference: type: string date: type: string journal_type: type: string description: Can be `["fiscal_year_ending", "fiscal_year_ending"]`. general_journal_document_entries_attributes: oneOf: - type: array items: type: object unevaluatedProperties: false properties: id: type: integer ledger_account_id: $ref: '#/components/schemas/identifier' description: Should be a valid ledger account id. tax_rate_id: $ref: '#/components/schemas/identifier' description: Should be a valid tax rate id. description: type: string debit: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. credit: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. project_id: $ref: '#/components/schemas/identifier' description: Should be a valid project id. row_order: type: integer _destroy: type: - boolean - string contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. required: [] - type: object additionalProperties: type: object properties: id: type: integer ledger_account_id: $ref: '#/components/schemas/identifier' description: Should be a valid ledger account id. tax_rate_id: $ref: '#/components/schemas/identifier' description: Should be a valid tax rate id. description: type: string debit: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. credit: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. project_id: $ref: '#/components/schemas/identifier' description: Should be a valid project id. row_order: type: integer _destroy: type: - boolean - string contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. required: [] required: [] all_taxes: type: - boolean - string required: [] examples: UpdatesTheGeneralJournalDocument: summary: Updates the general journal document value: general_journal_document: reference: updated reference responses: '200': description: General journal document updated content: application/json: schema: $ref: '#/components/schemas/general_journal_document_response' examples: UpdatesTheGeneralJournalDocument: summary: Updates the general journal document value: id: '495429867651728947' administration_id: 123 reference: updated reference date: '2026-08-14' journal_type: null created_at: '2026-08-14T09:12:42.081Z' updated_at: '2026-08-14T09:12:42.137Z' version: 1786698762 general_journal_document_entries: - id: '495429867654874676' administration_id: 123 ledger_account_id: '495429867630757426' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-08-14T09:12:42.084Z' updated_at: '2026-08-14T09:12:42.084Z' description: First - id: '495429867655923253' administration_id: 123 ledger_account_id: '495429867630757426' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-08-14T09:12:42.085Z' updated_at: '2026-08-14T09:12:42.085Z' description: Second - id: '495429867656971830' administration_id: 123 ledger_account_id: '495429867630757426' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-08-14T09:12:42.086Z' updated_at: '2026-08-14T09:12:42.086Z' description: Third - id: '495429867658020407' administration_id: 123 ledger_account_id: '495429867630757426' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-08-14T09:12:42.087Z' updated_at: '2026-08-14T09:12:42.087Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:42.089Z' updated_at: '2026-08-14T09:12:42.089Z' - administration_id: 123 user_id: '495429852315255909' action: document_updated link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:42.140Z' updated_at: '2026-08-14T09:12:42.140Z' '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: patch_administration_id_documents_general_journal_documents_id /{administration_id}/documents/general_journal_documents{format}: get: summary: Get general journal documents description: |- Returns a paginated list of documents of this type in the administration. The `exclude_new_general_journal_documents` parameter, when set to `true`, removes documents that are still in the `new` state from the response. It has no effect on other document types. ### Required scope(s) `documents` tags: - 'Documents: General journal documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: |- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:open`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | period | `String` | `this_year` | A named period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom range (`201301..201302`, `20130101..20130131`) | | state | `String` | `all` | `all`, `new`, `saved`, `open`, `paid`, `late` or `pending_payment`. `paid`, `late` and `pending_payment` only apply to documents with a payment lifecycle (purchase invoices and receipts) | | recurring | `String` | `all` | `all`, `enabled` or `disabled` | | attachment | `String` | `all` | `all`, `with` or `without` | | reference | `String` | | Documents with the given reference value | | contact_id | `Integer` | | Documents belonging to the given contact | | ledger_account_id | `Integer` | | Documents booking against the given ledger account | | updated_after | `String` | | ISO 8601 timestamp in UTC; documents updated strictly after this time | Multiple values for `state`, `recurring` and `attachment` can be combined with a pipe, e.g. `state:open|paid`. schema: type: string default: period:this_year - name: new_filter in: query required: false schema: type: string description: 'String terms, example: `key1:value1,key2:value2`.' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - name: exclude_new_general_journal_documents in: query required: false schema: type: - boolean - string responses: '200': description: A list of general journal documents content: application/json: schema: type: array items: $ref: '#/components/schemas/general_journal_document_response' examples: ReturnsPaginatedGeneralJournalDocumentsOnPage1: summary: Returns paginated general journal documents on page 1 value: - id: '495429861139023441' administration_id: 123 reference: Deprecations date: '2026-08-14' journal_type: null created_at: '2026-08-14T09:12:35.869Z' updated_at: '2026-08-14T09:12:35.869Z' version: 1786698755 general_journal_document_entries: - id: '495429861141120594' administration_id: 123 ledger_account_id: '495429861112809040' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-08-14T09:12:35.871Z' updated_at: '2026-08-14T09:12:35.871Z' description: First - id: '495429861142169171' administration_id: 123 ledger_account_id: '495429861112809040' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-08-14T09:12:35.872Z' updated_at: '2026-08-14T09:12:35.872Z' description: Second - id: '495429861143217748' administration_id: 123 ledger_account_id: '495429861112809040' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-08-14T09:12:35.873Z' updated_at: '2026-08-14T09:12:35.873Z' description: Third - id: '495429861144266325' administration_id: 123 ledger_account_id: '495429861112809040' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-08-14T09:12:35.874Z' updated_at: '2026-08-14T09:12:35.874Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:35.876Z' updated_at: '2026-08-14T09:12:35.876Z' ReturnsAListOfGeneralJournalDocuments: summary: Returns a list of general journal documents value: - id: '495429861517559470' administration_id: 123 reference: Deprecations date: '2026-08-14' journal_type: null created_at: '2026-08-14T09:12:36.231Z' updated_at: '2026-08-14T09:12:36.231Z' version: 1786698756 general_journal_document_entries: - id: '495429861519656623' administration_id: 123 ledger_account_id: '495429861493442221' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-08-14T09:12:36.233Z' updated_at: '2026-08-14T09:12:36.233Z' description: First - id: '495429861520705200' administration_id: 123 ledger_account_id: '495429861493442221' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-08-14T09:12:36.234Z' updated_at: '2026-08-14T09:12:36.234Z' description: Second - id: '495429861521753777' administration_id: 123 ledger_account_id: '495429861493442221' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-08-14T09:12:36.235Z' updated_at: '2026-08-14T09:12:36.235Z' description: Third - id: '495429861522802354' administration_id: 123 ledger_account_id: '495429861493442221' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-08-14T09:12:36.236Z' updated_at: '2026-08-14T09:12:36.236Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:36.238Z' updated_at: '2026-08-14T09:12:36.238Z' - id: '495429861467227803' administration_id: 123 reference: Deprecations date: '2026-08-14' journal_type: null created_at: '2026-08-14T09:12:36.182Z' updated_at: '2026-08-14T09:12:36.182Z' version: 1786698756 general_journal_document_entries: - id: '495429861469324956' administration_id: 123 ledger_account_id: '495429861443110554' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-08-14T09:12:36.184Z' updated_at: '2026-08-14T09:12:36.184Z' description: First - id: '495429861470373533' administration_id: 123 ledger_account_id: '495429861443110554' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-08-14T09:12:36.185Z' updated_at: '2026-08-14T09:12:36.185Z' description: Second - id: '495429861471422110' administration_id: 123 ledger_account_id: '495429861443110554' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-08-14T09:12:36.187Z' updated_at: '2026-08-14T09:12:36.187Z' description: Third - id: '495429861472470687' administration_id: 123 ledger_account_id: '495429861443110554' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-08-14T09:12:36.187Z' updated_at: '2026-08-14T09:12:36.187Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:36.189Z' updated_at: '2026-08-14T09:12:36.189Z' - id: '495429861420041864' administration_id: 123 reference: Deprecations date: '2026-08-14' journal_type: null created_at: '2026-08-14T09:12:36.137Z' updated_at: '2026-08-14T09:12:36.137Z' version: 1786698756 general_journal_document_entries: - id: '495429861421090441' administration_id: 123 ledger_account_id: '495429861394876039' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-08-14T09:12:36.139Z' updated_at: '2026-08-14T09:12:36.139Z' description: First - id: '495429861422139018' administration_id: 123 ledger_account_id: '495429861394876039' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-08-14T09:12:36.140Z' updated_at: '2026-08-14T09:12:36.140Z' description: Second - id: '495429861424236171' administration_id: 123 ledger_account_id: '495429861394876039' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-08-14T09:12:36.142Z' updated_at: '2026-08-14T09:12:36.142Z' description: Third - id: '495429861425284748' administration_id: 123 ledger_account_id: '495429861394876039' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-08-14T09:12:36.143Z' updated_at: '2026-08-14T09:12:36.143Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:36.145Z' updated_at: '2026-08-14T09:12:36.145Z' - id: '495429861370758773' administration_id: 123 reference: Deprecations date: '2026-08-14' journal_type: null created_at: '2026-08-14T09:12:36.090Z' updated_at: '2026-08-14T09:12:36.090Z' version: 1786698756 general_journal_document_entries: - id: '495429861372855926' administration_id: 123 ledger_account_id: '495429861345592948' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-08-14T09:12:36.092Z' updated_at: '2026-08-14T09:12:36.092Z' description: First - id: '495429861373904503' administration_id: 123 ledger_account_id: '495429861345592948' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-08-14T09:12:36.093Z' updated_at: '2026-08-14T09:12:36.093Z' description: Second - id: '495429861374953080' administration_id: 123 ledger_account_id: '495429861345592948' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-08-14T09:12:36.094Z' updated_at: '2026-08-14T09:12:36.094Z' description: Third - id: '495429861376001657' administration_id: 123 ledger_account_id: '495429861345592948' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-08-14T09:12:36.095Z' updated_at: '2026-08-14T09:12:36.095Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:36.097Z' updated_at: '2026-08-14T09:12:36.097Z' ReturnsPaginatedGeneralJournalDocumentsOnPage2: summary: Returns paginated general journal documents on page 2 value: - id: '495429861804869368' administration_id: 123 reference: Deprecations date: '2026-08-14' journal_type: null created_at: '2026-08-14T09:12:36.504Z' updated_at: '2026-08-14T09:12:36.504Z' version: 1786698756 general_journal_document_entries: - id: '495429861806966521' administration_id: 123 ledger_account_id: '495429861783897847' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-08-14T09:12:36.506Z' updated_at: '2026-08-14T09:12:36.506Z' description: First - id: '495429861808015098' administration_id: 123 ledger_account_id: '495429861783897847' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-08-14T09:12:36.507Z' updated_at: '2026-08-14T09:12:36.507Z' description: Second - id: '495429861808015099' administration_id: 123 ledger_account_id: '495429861783897847' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-08-14T09:12:36.508Z' updated_at: '2026-08-14T09:12:36.508Z' description: Third - id: '495429861809063676' administration_id: 123 ledger_account_id: '495429861783897847' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-08-14T09:12:36.509Z' updated_at: '2026-08-14T09:12:36.509Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:36.511Z' updated_at: '2026-08-14T09:12:36.511Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenTooManyGeneralJournalDocumentsAreRequested: summary: Returns an error when too many general journal documents are requested value: error: Per Page is too big symbolic: per_page: max operationId: get_administration_id_documents_general_journal_documents post: summary: Create a new general journal document description: |- Creates a new general journal document. ### Required scope(s) `documents` tags: - 'Documents: General journal documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: general_journal_document: type: object unevaluatedProperties: false properties: reference: type: string date: type: string format: date description: Date of the journal entry. Defaults to today. journal_type: type: string description: Can be `["fiscal_year_ending", "fiscal_year_ending"]`. general_journal_document_entries_attributes: oneOf: - type: array items: type: object unevaluatedProperties: false properties: id: type: integer ledger_account_id: $ref: '#/components/schemas/identifier' description: Should be a valid ledger account id. tax_rate_id: $ref: '#/components/schemas/identifier' description: Should be a valid tax rate id. description: type: string debit: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. credit: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. project_id: $ref: '#/components/schemas/identifier' description: Should be a valid project id. row_order: type: integer _destroy: type: - boolean - string contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. required: [] - type: object additionalProperties: type: object properties: id: type: integer ledger_account_id: $ref: '#/components/schemas/identifier' description: Should be a valid ledger account id. tax_rate_id: $ref: '#/components/schemas/identifier' description: Should be a valid tax rate id. description: type: string debit: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. credit: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. project_id: $ref: '#/components/schemas/identifier' description: Should be a valid project id. row_order: type: integer _destroy: type: - boolean - string contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. required: [] required: [] required: [] examples: CreatesTheGeneralJournalDocument: summary: Creates the general journal document value: general_journal_document: reference: foobar general_journal_document_entries_attributes: '0': ledger_account_id: 495429869355665300 debit: 100 credit: 0 '1': ledger_account_id: 495429869414385600 debit: 0 credit: 100 responses: '201': description: General journal document created content: application/json: schema: $ref: '#/components/schemas/general_journal_document_response' examples: CreatesTheGeneralJournalDocument: summary: Creates the general journal document value: id: '495429869447940015' administration_id: 123 reference: foobar date: '2026-08-14' journal_type: null created_at: '2026-08-14T09:12:43.793Z' updated_at: '2026-08-14T09:12:43.793Z' version: 1786698763 general_journal_document_entries: - id: '495429869450037168' administration_id: 123 ledger_account_id: '495429869355665304' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: null created_at: '2026-08-14T09:12:43.795Z' updated_at: '2026-08-14T09:12:43.795Z' description: null - id: '495429869451085745' administration_id: 123 ledger_account_id: '495429869414385581' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: null created_at: '2026-08-14T09:12:43.796Z' updated_at: '2026-08-14T09:12:43.796Z' description: null notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:43.798Z' updated_at: '2026-08-14T09:12:43.798Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: RequiresAllInput: summary: Requires all input value: error: General Journal Document is required symbolic: general_journal_document: required '402': $ref: '#/components/responses/402_payment_required' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_documents_general_journal_documents /{administration_id}/documents/purchase_invoices/synchronization{format}: get: summary: List ids and versions of purchase invoices description: |- Returns all documents in the administration. The list contains the document id and the version of the document. Check if the version of the document is newer than the version you have stored locally, use the `POST` variant for fetching documents with the given ids. ### Required scope(s) `documents` tags: - 'Documents: Purchase invoices' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: Comma-separated `key:value` filter terms. Same syntax as `GET /documents/purchase_invoices` — see that operation's description for the available keys. schema: type: string examples: ReturnsUniqueIdsEvenWhenPurchaseInvoicesHaveMultipleAttachments: summary: Returns unique ids even when purchase invoices have multiple attachments value: period:this_month RetrievesIdsForSynchronizationUsingAnUpdatedAfterFilter: summary: Retrieves ids for synchronization using an updated after filter value: updated_after:2026-08-13T09:14:21Z responses: '200': description: IDs and versions of records content: application/json: schema: type: array items: type: object unevaluatedProperties: false properties: id: type: - integer - string version: type: - integer - string examples: ReturnsUniqueIdsEvenWhenPurchaseInvoicesHaveMultipleAttachments: summary: Returns unique ids even when purchase invoices have multiple attachments value: - id: '495429971359040616' version: 1786698860 - id: '495429971440829568' version: 1786698861 - id: '495429971483821196' version: 1786698861 RetrievesAllIdsForSynchronization: summary: Retrieves all ids for synchronization value: - id: '495429971568755869' version: 1786698861 - id: '495429971650544821' version: 1786698861 - id: '495429971694585025' version: 1786698861 RetrievesAllIdsForSynchronizationUsingAFilter: summary: Retrieves all ids for synchronization using a filter value: - id: '495429971764839632' version: 1786698861 - id: '495429971844531432' version: 1786698861 - id: '495429971886474484' version: 1786698861 RetrievesIdsForSynchronizationUsingAnUpdatedAfterFilter: summary: Retrieves ids for synchronization using an updated after filter value: - id: '495429971955680515' version: 1786698861 - id: '495429972036420891' version: 1786698861 - id: '495429972076266791' version: 1786698861 operationId: get_administration_id_documents_purchase_invoices_synchronization post: summary: Fetch purchase invoices with given ids x-query: true description: |- Given a list of document ids, returns the document information belonging to the documents. Returns a maximum of 100 documents, even if more ids are provided. ### Required scope(s) `documents` tags: - 'Documents: Purchase invoices' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: ids: type: array items: type: - integer - string required: - ids examples: RetrievesDocumentsForGivenIds: summary: Retrieves documents for given ids value: ids: - 495429972224116030 - 495429972265010500 responses: '200': description: A list of purchase invoices content: application/json: schema: type: array items: $ref: '#/components/schemas/purchase_invoice_response' examples: RetrievesDocumentsForGivenIds: summary: Retrieves documents for given ids value: - id: '495429972224116046' administration_id: 123 contact_id: '495429972116112692' contact: id: '495429972116112692' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:21.705Z' updated_at: '2026-08-14T09:14:21.705Z' version: 1786698861 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-08-14' due_date: '2026-08-28' entry_number: 3 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: false origin: null paid_at: null tax_number: null total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' created_at: '2026-08-14T09:14:21.808Z' updated_at: '2026-08-14T09:14:21.811Z' version: 1786698861 details: - id: '495429972225164623' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:21.810Z' updated_at: '2026-08-14T09:14:21.810Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:21.814Z' updated_at: '2026-08-14T09:14:21.814Z' - id: '495429972265010522' administration_id: 123 contact_id: '495429972116112692' contact: id: '495429972116112692' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:21.705Z' updated_at: '2026-08-14T09:14:21.705Z' version: 1786698861 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-08-14' due_date: '2026-08-28' entry_number: 4 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: false origin: null paid_at: null tax_number: null total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' created_at: '2026-08-14T09:14:21.848Z' updated_at: '2026-08-14T09:14:21.851Z' version: 1786698861 details: - id: '495429972267107675' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:21.850Z' updated_at: '2026-08-14T09:14:21.850Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:21.854Z' updated_at: '2026-08-14T09:14:21.854Z' operationId: post_administration_id_documents_purchase_invoices_synchronization /{administration_id}/documents/purchase_invoices/{id}/attachments/{attachment_id}/download{format}: get: summary: Download attachment description: |- Download the attachment. The response will be a redirect to a temporarily available URL where the attachment can be downloaded. Use the `Location` header in the response to download the attachment. ### Required scope(s) `documents` tags: - 'Documents: Purchase invoices' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: attachment_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '302': description: Found content: text/plain: schema: type: string examples: DownloadsTheAttachment: summary: Downloads the attachment value: '{"message":"Use the Location header to download the attachment"}' '404': $ref: '#/components/responses/404_not_found' operationId: get_administration_id_documents_purchase_invoices_id_attachments_attachment_id_download /{administration_id}/documents/purchase_invoices/{id}/attachments/{attachment_id}{format}: delete: summary: Delete an attachment description: |- Deletes an attachment of an attachable. ### Required scope(s) `documents` tags: - 'Documents: Purchase invoices' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: attachment_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Attachment deleted '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_documents_purchase_invoices_id_attachments_attachment_id /{administration_id}/documents/purchase_invoices/{id}/attachments{format}: post: summary: Add attachment to purchase invoice description: |- Add an attachment to a purchase invoice. ### Required scope(s) `documents` tags: - 'Documents: Purchase invoices' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: multipart/form-data: schema: type: object properties: file: type: string format: binary responses: '200': description: Status code content: application/json: schema: type: integer examples: UploadsAnAttachment: summary: Uploads an attachment value: 200 '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_documents_purchase_invoices_id_attachments /{administration_id}/documents/purchase_invoices/{id}/payments/{payment_id}{format}: delete: summary: Delete a payment description: |- Deletes a payment from a purchase invoice. ### Required scope(s) `documents` tags: - 'Documents: Purchase invoices' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: payment_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Payment deleted '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_documents_purchase_invoices_id_payments_payment_id /{administration_id}/documents/purchase_invoices/{id}/payments{format}: post: summary: Create a payment description: |- Registers a payment for a purchase invoice. ### Required scope(s) `documents` tags: - 'Documents: Purchase invoices' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: payment: type: object unevaluatedProperties: false properties: payment_date: type: string description: The date on which the payment was made. price: $ref: '#/components/schemas/number' description: The amount paid in the document's currency. Both a decimal and a string '10,95' are accepted. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. price_base: $ref: '#/components/schemas/number' description: Amount paid expressed in the base currency of the administration. Required when the document uses a different currency than the administration's base currency. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. financial_account_id: $ref: '#/components/schemas/identifier' description: The ID of the financial account (bank account or cash register) associated with this payment. Required for `private_payment` and `cash_payment` actions. Should be a valid financial account id. financial_mutation_id: $ref: '#/components/schemas/identifier' description: The ID of the bank transaction to link this payment to. Required for `bank_transfer` actions. Should be a valid financial mutation id. transaction_identifier: type: string description: An external transaction reference, e.g. a bank transaction ID or PSP reference. Used to match the payment with financial mutations. manual_payment_action: type: string description: Can be `private_payment` (needs financial_account_id), `payment_without_proof`, `cash_payment` (needs financial_account_id), `rounding_error`, `bank_transfer` (needs financial_mutation_id), `balance_settlement` (needs ledger_account_id) or `invoices_settlement` (needs invoice_id). ledger_account_id: $ref: '#/components/schemas/identifier' description: The ID of the ledger account to book this payment to. Required for `balance_settlement` actions. Should be a valid ledger account id. invoice_id: $ref: '#/components/schemas/identifier' description: The ID of the document to settle this payment against. Required for `invoices_settlement` actions. Should be a valid document id (sales invoice, purchase invoice, receipt, etc.). required: - payment_date - price required: [] examples: CreateAPayment: summary: Create a payment value: payment: payment_date: '2026-08-14T09:14:27.769Z' price: '363.0' responses: '201': description: Payment created content: application/json: schema: $ref: '#/components/schemas/payment_response' examples: CreateAPayment: summary: Create a payment value: id: '495429978487260787' administration_id: 123 invoice_type: Document invoice_id: '495429978422249051' financial_account_id: null user_id: '495429852315255909' payment_transaction_id: null transaction_identifier: null price: '363.0' price_base: '363.0' payment_date: '2026-08-14' credit_invoice_id: null financial_mutation_id: null ledger_account_id: '495429852926575746' linked_payment_id: null manual_payment_action: null created_at: '2026-08-14T09:14:27.781Z' updated_at: '2026-08-14T09:14:27.781Z' '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_documents_purchase_invoices_id_payments /{administration_id}/documents/purchase_invoices/{id}/register_payment{format}: patch: summary: Register a payment for a purchase invoice description: |- This endpoint is deprecated and should no longer be used. It has been replaced by `Create a payment`. ### Required scope(s) `documents` deprecated: true x-sunset: '2026-12-31' tags: - 'Documents: Purchase invoices' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: payment: type: object unevaluatedProperties: false properties: payment_date: type: string price: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. price_base: $ref: '#/components/schemas/number' description: Amount paid expressed in the base currency. Required for foreign currencies. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. financial_account_id: $ref: '#/components/schemas/identifier' description: Should be a valid financial account id. financial_mutation_id: $ref: '#/components/schemas/identifier' description: Should be a valid financial mutation id. transaction_identifier: type: string manual_payment_action: type: string description: Can be `private_payment`, `payment_without_proof`, `cash_payment`, `rounding_error`, `bank_transfer`, `balance_settlement` or `invoices_settlement`. ledger_account_id: $ref: '#/components/schemas/identifier' description: Should be a valid ledger account id. invoice_id: $ref: '#/components/schemas/identifier' required: - payment_date - price required: [] examples: CreateAPayment: summary: Create a payment value: payment: payment_date: '2026-08-14T09:14:26.062Z' price: '363.0' responses: '200': description: Status code content: application/json: schema: type: integer examples: CreateAPayment: summary: Create a payment value: 200 '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' operationId: patch_administration_id_documents_purchase_invoices_id_register_payment /{administration_id}/documents/purchase_invoices/{id}{format}: get: summary: Get purchase invoice description: |- Returns a purchase invoice by id. ### Required scope(s) `documents` tags: - 'Documents: Purchase invoices' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A purchase invoice content: application/json: schema: $ref: '#/components/schemas/purchase_invoice_response' examples: IncludesFiscalAllocations: summary: Includes fiscal allocations value: id: '495429979033569011' administration_id: 123 contact_id: '495429978930808537' contact: id: '495429978930808537' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:28.204Z' updated_at: '2026-08-14T09:14:28.204Z' version: 1786698868 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-08-14' due_date: '2026-08-28' entry_number: 3 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: false origin: null paid_at: null tax_number: null total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' created_at: '2026-08-14T09:14:28.302Z' updated_at: '2026-08-14T09:14:28.305Z' version: 1786698868 details: - id: '495429979035666164' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:28.304Z' updated_at: '2026-08-14T09:14:28.304Z' fiscal_allocations: - id: '495429979056637696' administration_id: 123 ledger_account_id: '495429852896167033' private_ledger_account_id: '495429979052443391' percentage: '25.0' price: '90.75' price_base: '90.75' created_at: '2026-08-14T09:14:28.324Z' updated_at: '2026-08-14T09:14:28.324Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:28.308Z' updated_at: '2026-08-14T09:14:28.308Z' ReturnsTheWantedPurchaseInvoice: summary: Returns the wanted purchase invoice value: id: '495429979636500351' administration_id: 123 contact_id: '495429979601897341' contact: id: '495429979601897341' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:28.844Z' updated_at: '2026-08-14T09:14:28.844Z' version: 1786698868 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-08-14' due_date: '2026-08-28' entry_number: 1 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: false origin: null paid_at: null tax_number: null total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' created_at: '2026-08-14T09:14:28.877Z' updated_at: '2026-08-14T09:14:28.881Z' version: 1786698868 details: - id: '495429979638597504' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:28.879Z' updated_at: '2026-08-14T09:14:28.879Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:28.884Z' updated_at: '2026-08-14T09:14:28.884Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: OnlyReturnsPurchaseInvoices: summary: Only returns purchase invoices value: error: record not found symbolic: id: not_found operationId: get_administration_id_documents_purchase_invoices_id delete: summary: Delete a purchase invoices description: |- Deletes a purchase invoice. ### Required scope(s) `documents` tags: - 'Documents: Purchase invoices' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: Status code content: application/json: schema: type: integer examples: DeletesThePurchaseInvoice: summary: Deletes the purchase invoice value: 200 '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_documents_purchase_invoices_id patch: summary: Update purchase invoice description: |- Updates a purchase invoice. ### Required scope(s) `documents` tags: - 'Documents: Purchase invoices' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: purchase_invoice: type: object unevaluatedProperties: false properties: contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. reference: type: string description: The supplier's invoice number or reference. date: type: string description: The date on the supplier's invoice. format: date due_date: type: string description: The date by which the invoice should be paid. format: date currency: type: string description: ISO three-character currency code, e.g. EUR or USD. prices_are_incl_tax: type: - boolean - string description: Whether the prices on the purchase invoice are inclusive of tax. revenue_invoice: type: - boolean - string description: When `true`, this purchase invoice is treated as a revenue invoice (e.g. a credit note from a supplier). details_attributes: $ref: '#/components/schemas/details_attributes' fiscal_allocations_attributes: $ref: '#/components/schemas/fiscal_allocations_attributes' required: [] required: [] examples: UpdatesThePurchaseInvoice: summary: Updates the purchase invoice value: purchase_invoice: reference: updated reference UpdatesInvoiceDetails: summary: Updates invoice details value: purchase_invoice: details_attributes: '0': description: New detail price: 99 amount: 1 tax_rate_id: 495429853091202200 ledger_account_id: 495429852896167040 '1': id: 495429977064342800 _destroy: true RemovesAFiscalAllocationWithDestroy: summary: Removes a fiscal allocation with destroy value: purchase_invoice: fiscal_allocations_attributes: '0': id: 495429979277887300 _destroy: true AddsFiscalAllocationsToAnExistingDocument: summary: Adds fiscal allocations to an existing document value: purchase_invoice: fiscal_allocations_attributes: - ledger_account_id: 495429852896167040 private_ledger_account_id: 495429979504379800 percentage: '40' responses: '200': description: Purchase invoice updated content: application/json: schema: $ref: '#/components/schemas/purchase_invoice_response' examples: UpdatesThePurchaseInvoice: summary: Updates the purchase invoice value: id: '495429976882939104' administration_id: 123 contact_id: '495429976850433246' contact: id: '495429976850433246' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:26.220Z' updated_at: '2026-08-14T09:14:26.220Z' version: 1786698866 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: updated reference date: '2026-08-14' due_date: '2026-08-28' entry_number: 1 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: false origin: null paid_at: null tax_number: null total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' created_at: '2026-08-14T09:14:26.251Z' updated_at: '2026-08-14T09:14:26.332Z' version: 1786698866 details: - id: '495429976885036257' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:26.253Z' updated_at: '2026-08-14T09:14:26.253Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:26.258Z' updated_at: '2026-08-14T09:14:26.258Z' - administration_id: 123 user_id: '495429852315255909' action: document_updated link_entity_id: null link_entity_type: null data: changes: reference: - 2013-01234 - updated reference updated_at: - '2026-08-14T11:14:26.255+02:00' - '2026-08-14T11:14:26.332+02:00' created_at: '2026-08-14T09:14:26.336Z' updated_at: '2026-08-14T09:14:26.336Z' UpdatesInvoiceDetails: summary: Updates invoice details value: id: '495429977062245646' administration_id: 123 contact_id: '495429977031836940' contact: id: '495429977031836940' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:26.393Z' updated_at: '2026-08-14T09:14:26.393Z' version: 1786698866 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-08-14' due_date: '2026-08-28' entry_number: 1 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: false origin: null paid_at: null tax_number: null total_price_excl_tax: '99.0' total_price_excl_tax_base: '99.0' total_price_incl_tax: '119.79' total_price_incl_tax_base: '119.79' created_at: '2026-08-14T09:14:26.422Z' updated_at: '2026-08-14T09:14:26.515Z' version: 1786698866 details: - id: '495429977157666086' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: '1' amount_decimal: '1.0' description: New detail price: '99.0' period: null row_order: 0 total_price_excl_tax_with_discount: '99.0' total_price_excl_tax_with_discount_base: '99.0' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:26.514Z' updated_at: '2026-08-14T09:14:26.514Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:26.428Z' updated_at: '2026-08-14T09:14:26.428Z' - administration_id: 123 user_id: '495429852315255909' action: document_updated link_entity_id: null link_entity_type: null data: changes: total_price_excl_tax: - '300.0' - '99.0' total_price_excl_tax_base: - '300.0' - '99.0' total_price_incl_tax: - '363.0' - '119.79' total_price_incl_tax_base: - '363.0' - '119.79' cached_taxes: - - tax_rate_id: '495429853091202189' report_reference: NL/5b payable: false debit: '63.0' credit: 0 - - tax_rate_id: '495429853091202189' report_reference: NL/5b payable: false debit: '20.79' credit: 0 updated_at: - '2026-08-14T11:14:26.426+02:00' - '2026-08-14T11:14:26.509+02:00' detail_changes: - id: '495429977064342799' change: removed ledger_account_id: - '495429852896167033' - null tax_rate_id: - '495429853091202189' - null description: - Delivery Apple iPad - null price: - '300.0' - null amount: - '' - null - id: '495429977157666086' change: added ledger_account_id: - null - '495429852896167033' tax_rate_id: - null - '495429853091202189' description: - null - New detail price: - '0.0' - '99.0' amount: - '' - '1' created_at: '2026-08-14T09:14:26.518Z' updated_at: '2026-08-14T09:14:26.518Z' RemovesAFiscalAllocationWithDestroy: summary: Removes a fiscal allocation with destroy value: id: '495429979252721436' administration_id: 123 contact_id: '495429979095435010' contact: id: '495429979095435010' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:28.361Z' updated_at: '2026-08-14T09:14:28.361Z' version: 1786698868 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-08-14' due_date: '2026-08-28' entry_number: 3 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: false origin: null paid_at: null tax_number: null total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' created_at: '2026-08-14T09:14:28.511Z' updated_at: '2026-08-14T09:14:28.515Z' version: 1786698868 details: - id: '495429979254818589' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:28.513Z' updated_at: '2026-08-14T09:14:28.513Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:28.518Z' updated_at: '2026-08-14T09:14:28.518Z' - administration_id: 123 user_id: '495429852315255909' action: document_updated link_entity_id: null link_entity_type: null data: changes: {} created_at: '2026-08-14T09:14:28.569Z' updated_at: '2026-08-14T09:14:28.569Z' AddsFiscalAllocationsToAnExistingDocument: summary: Adds fiscal allocations to an existing document value: id: '495429979483408216' administration_id: 123 contact_id: '495429979364919102' contact: id: '495429979364919102' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:28.618Z' updated_at: '2026-08-14T09:14:28.618Z' version: 1786698868 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-08-14' due_date: '2026-08-28' entry_number: 3 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: false origin: null paid_at: null tax_number: null total_price_excl_tax: '325.2' total_price_excl_tax_base: '325.2' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' created_at: '2026-08-14T09:14:28.731Z' updated_at: '2026-08-14T09:14:28.789Z' version: 1786698868 details: - id: '495429979486553945' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '180.0' total_price_excl_tax_with_discount_base: '180.0' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:28.733Z' updated_at: '2026-08-14T09:14:28.788Z' fiscal_allocations: - id: '495429979541079909' administration_id: 123 ledger_account_id: '495429852896167033' private_ledger_account_id: '495429979504379748' percentage: '40.0' price: '145.2' price_base: '145.2' created_at: '2026-08-14T09:14:28.786Z' updated_at: '2026-08-14T09:14:28.786Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:28.738Z' updated_at: '2026-08-14T09:14:28.738Z' - administration_id: 123 user_id: '495429852315255909' action: document_updated link_entity_id: null link_entity_type: null data: changes: total_price_excl_tax: - '300.0' - '325.2' total_price_excl_tax_base: - '300.0' - '325.2' cached_taxes: - - tax_rate_id: '495429853091202189' report_reference: NL/5b payable: false debit: '63.0' credit: 0 - - tax_rate_id: '495429853091202189' report_reference: NL/5b payable: false debit: '37.8' credit: 0 updated_at: - '2026-08-14T11:14:28.735+02:00' - '2026-08-14T11:14:28.784+02:00' created_at: '2026-08-14T09:14:28.792Z' updated_at: '2026-08-14T09:14:28.792Z' '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: patch_administration_id_documents_purchase_invoices_id /{administration_id}/documents/purchase_invoices/{purchase_invoice_id}/notes/{id}{format}: delete: summary: Destroys note from entity description: |- Deletes a note from the purchase invoice. ### Required scope(s) `documents` tags: - 'Documents: Purchase invoices' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: purchase_invoice_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Note deleted '400': $ref: '#/components/responses/400_bad_request' operationId: delete_administration_id_documents_purchase_invoices_purchase_invoice_id_notes_id /{administration_id}/documents/purchase_invoices/{purchase_invoice_id}/notes{format}: post: summary: Adds note to entity description: |- Adds a note to the purchase invoice. ### Required scope(s) `documents` tags: - 'Documents: Purchase invoices' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: purchase_invoice_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: note: type: object unevaluatedProperties: false properties: note: type: string description: '**Required**. Text for the note or to-do.' todo: type: - boolean - string description: If `true` the note is a to-do. assignee_id: $ref: '#/components/schemas/identifier' description: Assign to-do to user. Should be a valid user id. If assignee_id is provided the note will be a to-do. required: [] required: [] examples: CreateANote: summary: Create a note value: note: note: Text of the note assignee_id: 495429975344678800 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '495429975362504588' administration_id: 123 entity_id: '495429975283861362' entity_type: Document user_id: '495429852315255909' assignee_id: '495429975344678794' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-08-14T09:14:24.801Z' updated_at: '2026-08-14T09:14:24.801Z' '400': $ref: '#/components/responses/400_bad_request' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_documents_purchase_invoices_purchase_invoice_id_notes /{administration_id}/documents/purchase_invoices{format}: get: summary: Get purchase invoices description: |- Returns a paginated list of documents of this type in the administration. ### Required scope(s) `documents` tags: - 'Documents: Purchase invoices' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: |- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:open`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | period | `String` | `this_year` | A named period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom range (`201301..201302`, `20130101..20130131`) | | state | `String` | `all` | `all`, `new`, `saved`, `open`, `paid`, `late` or `pending_payment`. `paid`, `late` and `pending_payment` only apply to documents with a payment lifecycle (purchase invoices and receipts) | | recurring | `String` | `all` | `all`, `enabled` or `disabled` | | attachment | `String` | `all` | `all`, `with` or `without` | | reference | `String` | | Documents with the given reference value | | contact_id | `Integer` | | Documents belonging to the given contact | | ledger_account_id | `Integer` | | Documents booking against the given ledger account | | updated_after | `String` | | ISO 8601 timestamp in UTC; documents updated strictly after this time | Multiple values for `state`, `recurring` and `attachment` can be combined with a pipe, e.g. `state:open|paid`. schema: type: string default: period:this_year - name: new_filter in: query required: false schema: type: string description: 'String terms, example: `key1:value1,key2:value2`.' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: A list of purchase invoices content: application/json: schema: type: array items: $ref: '#/components/schemas/purchase_invoice_response' examples: ReturnsPaginatedPurchaseInvoicesOnPage1: summary: Returns paginated purchase invoices on page 1 value: - id: '495429975600531393' administration_id: 123 contact_id: '495429975390816143' contact: id: '495429975390816143' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:24.828Z' updated_at: '2026-08-14T09:14:24.828Z' version: 1786698864 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-08-14' due_date: '2026-08-28' entry_number: 5 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: false origin: null paid_at: null tax_number: null total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' created_at: '2026-08-14T09:14:25.028Z' updated_at: '2026-08-14T09:14:25.031Z' version: 1786698865 details: - id: '495429975601579970' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:25.030Z' updated_at: '2026-08-14T09:14:25.030Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:25.034Z' updated_at: '2026-08-14T09:14:25.034Z' ReturnsAListOfPurchaseInvoices: summary: Returns a list of purchase invoices value: - id: '495429975871063040' administration_id: 123 contact_id: '495429975678126030' contact: id: '495429975678126030' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:25.102Z' updated_at: '2026-08-14T09:14:25.102Z' version: 1786698865 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-08-14' due_date: '2026-08-28' entry_number: 5 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: false origin: null paid_at: null tax_number: null total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' created_at: '2026-08-14T09:14:25.286Z' updated_at: '2026-08-14T09:14:25.289Z' version: 1786698865 details: - id: '495429975873160193' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:25.288Z' updated_at: '2026-08-14T09:14:25.288Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:25.292Z' updated_at: '2026-08-14T09:14:25.292Z' - id: '495429975830169588' administration_id: 123 contact_id: '495429975678126030' contact: id: '495429975678126030' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:25.102Z' updated_at: '2026-08-14T09:14:25.102Z' version: 1786698865 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-08-14' due_date: '2026-08-28' entry_number: 4 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: false origin: null paid_at: null tax_number: null total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' created_at: '2026-08-14T09:14:25.248Z' updated_at: '2026-08-14T09:14:25.251Z' version: 1786698865 details: - id: '495429975832266741' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:25.249Z' updated_at: '2026-08-14T09:14:25.249Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:25.254Z' updated_at: '2026-08-14T09:14:25.254Z' - id: '495429975789275112' administration_id: 123 contact_id: '495429975678126030' contact: id: '495429975678126030' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:25.102Z' updated_at: '2026-08-14T09:14:25.102Z' version: 1786698865 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-08-14' due_date: '2026-08-28' entry_number: 3 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: false origin: null paid_at: null tax_number: null total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' created_at: '2026-08-14T09:14:25.208Z' updated_at: '2026-08-14T09:14:25.211Z' version: 1786698865 details: - id: '495429975790323689' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:25.210Z' updated_at: '2026-08-14T09:14:25.210Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:25.214Z' updated_at: '2026-08-14T09:14:25.214Z' - id: '495429975709583312' administration_id: 123 contact_id: '495429975678126030' contact: id: '495429975678126030' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:25.102Z' updated_at: '2026-08-14T09:14:25.102Z' version: 1786698865 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-08-14' due_date: '2026-08-28' entry_number: 1 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: false origin: null paid_at: null tax_number: null total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' created_at: '2026-08-14T09:14:25.132Z' updated_at: '2026-08-14T09:14:25.135Z' version: 1786698865 details: - id: '495429975710631889' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:25.134Z' updated_at: '2026-08-14T09:14:25.134Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:25.138Z' updated_at: '2026-08-14T09:14:25.138Z' ReturnsPaginatedPurchaseInvoicesOnPage2: summary: Returns paginated purchase invoices on page 2 value: - id: '495429976316707954' administration_id: 123 contact_id: '495429976172004428' contact: id: '495429976172004428' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:25.574Z' updated_at: '2026-08-14T09:14:25.574Z' version: 1786698865 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-08-14' due_date: '2026-08-28' entry_number: 4 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: false origin: null paid_at: null tax_number: null total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' created_at: '2026-08-14T09:14:25.711Z' updated_at: '2026-08-14T09:14:25.715Z' version: 1786698865 details: - id: '495429976318805107' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:25.713Z' updated_at: '2026-08-14T09:14:25.713Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:25.717Z' updated_at: '2026-08-14T09:14:25.717Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenTooManyPurchaseInvoicesAreRequested: summary: Returns an error when too many purchase invoices are requested value: error: Per Page is too big symbolic: per_page: max operationId: get_administration_id_documents_purchase_invoices post: summary: Create a new purchase invoice description: |- Creates a new purchase invoice. ### Required scope(s) `documents` tags: - 'Documents: Purchase invoices' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: purchase_invoice: type: object unevaluatedProperties: false properties: contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. reference: type: string description: The supplier's invoice number or reference. date: type: string description: The date on the supplier's invoice. format: date due_date: type: string description: The date by which the invoice should be paid. format: date currency: type: string description: ISO three-character currency code, e.g. EUR or USD. prices_are_incl_tax: type: - boolean - string description: Whether the prices on the purchase invoice are inclusive of tax. Defaults to the administration setting. revenue_invoice: type: - boolean - string description: When `true`, this purchase invoice is treated as a revenue invoice (e.g. a credit note from a supplier). Revenue invoices are booked as income instead of expenses. details_attributes: $ref: '#/components/schemas/details_attributes' fiscal_allocations_attributes: $ref: '#/components/schemas/fiscal_allocations_attributes' required: [] required: [] examples: CreatesThePurchaseInvoice: summary: Creates the purchase invoice value: purchase_invoice: reference: foobar contact_id: 495429972662420900 details_attributes: '0': description: Lunch price: 20 tax_rate_id: 495429853091202200 ledger_account_id: 495429852896167040 CreatesADocumentWithFiscalAllocations: summary: Creates a document with fiscal allocations value: purchase_invoice: reference: with fiscal allocations contact_id: 495429978630915700 details_attributes: - description: Test detail price: 100 tax_rate_id: 495429853091202200 ledger_account_id: 495429852896167040 fiscal_allocations_attributes: - ledger_account_id: 495429852896167040 private_ledger_account_id: 495429978716899000 percentage: '30' responses: '201': description: Purchase invoice created content: application/json: schema: $ref: '#/components/schemas/purchase_invoice_response' examples: CreatesThePurchaseInvoice: summary: Creates the purchase invoice value: id: '495429972775667164' administration_id: 123 contact_id: '495429972662420930' contact: id: '495429972662420930' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:22.226Z' updated_at: '2026-08-14T09:14:22.226Z' version: 1786698862 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: foobar date: '2026-08-14' due_date: null entry_number: 3 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: false origin: api paid_at: null tax_number: null total_price_excl_tax: '20.0' total_price_excl_tax_base: '20.0' total_price_incl_tax: '24.2' total_price_incl_tax_base: '24.2' created_at: '2026-08-14T09:14:22.334Z' updated_at: '2026-08-14T09:14:22.337Z' version: 1786698862 details: - id: '495429972776715741' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Lunch price: '20.0' period: null row_order: 0 total_price_excl_tax_with_discount: '20.0' total_price_excl_tax_with_discount_base: '20.0' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:22.336Z' updated_at: '2026-08-14T09:14:22.336Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:22.340Z' updated_at: '2026-08-14T09:14:22.340Z' CreatesADocumentWithFiscalAllocations: summary: Creates a document with fiscal allocations value: id: '495429978756744876' administration_id: 123 contact_id: '495429978630915729' contact: id: '495429978630915729' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:27.918Z' updated_at: '2026-08-14T09:14:27.918Z' version: 1786698867 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: with fiscal allocations date: '2026-08-14' due_date: null entry_number: 3 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: false origin: api paid_at: null tax_number: null total_price_excl_tax: '106.3' total_price_excl_tax_base: '106.3' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' created_at: '2026-08-14T09:14:28.038Z' updated_at: '2026-08-14T09:14:28.044Z' version: 1786698868 details: - id: '495429978760939182' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Test detail price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '70.0' total_price_excl_tax_with_discount_base: '70.0' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:28.042Z' updated_at: '2026-08-14T09:14:28.042Z' fiscal_allocations: - id: '495429978758842029' administration_id: 123 ledger_account_id: '495429852896167033' private_ledger_account_id: '495429978716898987' percentage: '30.0' price: '36.3' price_base: '36.3' created_at: '2026-08-14T09:14:28.040Z' updated_at: '2026-08-14T09:14:28.040Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:28.046Z' updated_at: '2026-08-14T09:14:28.046Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: RequiresAllInput: summary: Requires all input value: error: Purchase Invoice is required symbolic: purchase_invoice: required '402': $ref: '#/components/responses/402_payment_required' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_documents_purchase_invoices /{administration_id}/documents/receipts/synchronization{format}: get: summary: List ids and versions of receipts description: |- Returns all documents in the administration. The list contains the document id and the version of the document. Check if the version of the document is newer than the version you have stored locally, use the `POST` variant for fetching documents with the given ids. ### Required scope(s) `documents` tags: - 'Documents: Receipts' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: Comma-separated `key:value` filter terms. Same syntax as `GET /documents/receipts` — see that operation's description for the available keys. schema: type: string examples: RetrievesAllIdsForSynchronizationUsingAFilter: summary: Retrieves all ids for synchronization using a filter value: period:this_month responses: '200': description: IDs and versions of records content: application/json: schema: type: array items: type: object unevaluatedProperties: false properties: id: type: - integer - string version: type: - integer - string examples: RetrievesAllIdsForSynchronization: summary: Retrieves all ids for synchronization value: - id: '495429987402253835' version: 1786698876 - id: '495429987478799907' version: 1786698876 - id: '495429987515500079' version: 1786698876 RetrievesAllIdsForSynchronizationUsingAFilter: summary: Retrieves all ids for synchronization using a filter value: - id: '495429987578414654' version: 1786698876 - id: '495429987656009302' version: 1786698876 - id: '495429987690612322' version: 1786698876 operationId: get_administration_id_documents_receipts_synchronization post: summary: Fetch receipts with given ids x-query: true description: |- Given a list of document ids, returns the document information belonging to the documents. Returns a maximum of 100 documents, even if more ids are provided. ### Required scope(s) `documents` tags: - 'Documents: Receipts' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: ids: type: array items: type: - integer - string required: - ids examples: RetrievesDocumentsForGivenIds: summary: Retrieves documents for given ids value: ids: - 495429987831121540 - 495429987866773100 responses: '200': description: A list of receipts content: application/json: schema: type: array items: $ref: '#/components/schemas/receipt_response' examples: RetrievesDocumentsForGivenIds: summary: Retrieves documents for given ids value: - id: '495429987831121545' administration_id: 123 contact_id: '495429987731506799' contact: id: '495429987731506799' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:36.597Z' updated_at: '2026-08-14T09:14:36.597Z' version: 1786698876 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-08-14' due_date: null entry_number: 3 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: true origin: null paid_at: null tax_number: null total_price_excl_tax: '247.93' total_price_excl_tax_base: '247.93' total_price_incl_tax: '300.0' total_price_incl_tax_base: '300.0' created_at: '2026-08-14T09:14:36.693Z' updated_at: '2026-08-14T09:14:36.696Z' version: 1786698876 details: - id: '495429987833218698' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '247.93' total_price_excl_tax_with_discount_base: '247.93' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:36.694Z' updated_at: '2026-08-14T09:14:36.694Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:36.698Z' updated_at: '2026-08-14T09:14:36.698Z' - id: '495429987866773141' administration_id: 123 contact_id: '495429987731506799' contact: id: '495429987731506799' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:36.597Z' updated_at: '2026-08-14T09:14:36.597Z' version: 1786698876 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-08-14' due_date: null entry_number: 4 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: true origin: null paid_at: null tax_number: null total_price_excl_tax: '247.93' total_price_excl_tax_base: '247.93' total_price_incl_tax: '300.0' total_price_incl_tax_base: '300.0' created_at: '2026-08-14T09:14:36.726Z' updated_at: '2026-08-14T09:14:36.729Z' version: 1786698876 details: - id: '495429987867821718' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '247.93' total_price_excl_tax_with_discount_base: '247.93' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:36.728Z' updated_at: '2026-08-14T09:14:36.728Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:36.732Z' updated_at: '2026-08-14T09:14:36.732Z' operationId: post_administration_id_documents_receipts_synchronization /{administration_id}/documents/receipts/{id}/attachments/{attachment_id}/download{format}: get: summary: Download attachment description: |- Download the attachment. The response will be a redirect to a temporarily available URL where the attachment can be downloaded. Use the `Location` header in the response to download the attachment. ### Required scope(s) `documents` tags: - 'Documents: Receipts' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: attachment_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '302': description: Found content: text/plain: schema: type: string examples: DownloadsTheAttachment: summary: Downloads the attachment value: '{"message":"Use the Location header to download the attachment"}' '404': $ref: '#/components/responses/404_not_found' operationId: get_administration_id_documents_receipts_id_attachments_attachment_id_download /{administration_id}/documents/receipts/{id}/attachments/{attachment_id}{format}: delete: summary: Delete an attachment description: |- Deletes an attachment of an attachable. ### Required scope(s) `documents` tags: - 'Documents: Receipts' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: attachment_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Attachment deleted '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_documents_receipts_id_attachments_attachment_id /{administration_id}/documents/receipts/{id}/attachments{format}: post: summary: Add attachment to receipt description: |- Add an attachment to a receipt. ### Required scope(s) `documents` tags: - 'Documents: Receipts' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: multipart/form-data: schema: type: object properties: file: type: string format: binary responses: '200': description: Status code content: application/json: schema: type: integer examples: UploadsAnAttachment: summary: Uploads an attachment value: 200 '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_documents_receipts_id_attachments /{administration_id}/documents/receipts/{id}/payments/{payment_id}{format}: delete: summary: Delete a payment description: |- Deletes a payment from a receipt. ### Required scope(s) `documents` tags: - 'Documents: Receipts' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: payment_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Payment deleted '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_documents_receipts_id_payments_payment_id /{administration_id}/documents/receipts/{id}/payments{format}: post: summary: Create a payment description: |- Registers a payment for a receipt. ### Required scope(s) `documents` tags: - 'Documents: Receipts' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: payment: type: object unevaluatedProperties: false properties: payment_date: type: string description: The date on which the payment was made. price: $ref: '#/components/schemas/number' description: The amount paid in the document's currency. Both a decimal and a string '10,95' are accepted. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. price_base: $ref: '#/components/schemas/number' description: Amount paid expressed in the base currency of the administration. Required when the document uses a different currency than the administration's base currency. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. financial_account_id: $ref: '#/components/schemas/identifier' description: The ID of the financial account (bank account or cash register) associated with this payment. Required for `private_payment` and `cash_payment` actions. Should be a valid financial account id. financial_mutation_id: $ref: '#/components/schemas/identifier' description: The ID of the bank transaction to link this payment to. Required for `bank_transfer` actions. Should be a valid financial mutation id. transaction_identifier: type: string description: An external transaction reference, e.g. a bank transaction ID or PSP reference. Used to match the payment with financial mutations. manual_payment_action: type: string description: Can be `private_payment` (needs financial_account_id), `payment_without_proof`, `cash_payment` (needs financial_account_id), `rounding_error`, `bank_transfer` (needs financial_mutation_id), `balance_settlement` (needs ledger_account_id) or `invoices_settlement` (needs invoice_id). ledger_account_id: $ref: '#/components/schemas/identifier' description: The ID of the ledger account to book this payment to. Required for `balance_settlement` actions. Should be a valid ledger account id. invoice_id: $ref: '#/components/schemas/identifier' description: The ID of the document to settle this payment against. Required for `invoices_settlement` actions. Should be a valid document id (sales invoice, purchase invoice, receipt, etc.). required: - payment_date - price required: [] examples: CreateAPayment: summary: Create a payment value: payment: payment_date: '2026-08-14T09:14:29.945Z' price: '300.0' responses: '201': description: Payment created content: application/json: schema: $ref: '#/components/schemas/payment_response' examples: CreateAPayment: summary: Create a payment value: id: '495429980768961642' administration_id: 123 invoice_type: Document invoice_id: '495429980696609874' financial_account_id: null user_id: '495429852315255909' payment_transaction_id: null transaction_identifier: null price: '300.0' price_base: '300.0' payment_date: '2026-08-14' credit_invoice_id: null financial_mutation_id: null ledger_account_id: '495429852926575746' linked_payment_id: null manual_payment_action: null created_at: '2026-08-14T09:14:29.957Z' updated_at: '2026-08-14T09:14:29.957Z' '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_documents_receipts_id_payments /{administration_id}/documents/receipts/{id}/register_payment{format}: patch: summary: Register a payment for a receipt description: |- This endpoint is deprecated and should no longer be used. It has been replaced by `Create a payment`. ### Required scope(s) `documents` deprecated: true x-sunset: '2026-12-31' tags: - 'Documents: Receipts' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: payment: type: object unevaluatedProperties: false properties: payment_date: type: string price: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. price_base: $ref: '#/components/schemas/number' description: Amount paid expressed in the base currency. Required for foreign currencies. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. financial_account_id: $ref: '#/components/schemas/identifier' description: Should be a valid financial account id. financial_mutation_id: $ref: '#/components/schemas/identifier' description: Should be a valid financial mutation id. transaction_identifier: type: string manual_payment_action: type: string description: Can be `private_payment`, `payment_without_proof`, `cash_payment`, `rounding_error`, `bank_transfer`, `balance_settlement` or `invoices_settlement`. ledger_account_id: $ref: '#/components/schemas/identifier' description: Should be a valid ledger account id. invoice_id: $ref: '#/components/schemas/identifier' required: - payment_date - price required: [] examples: RegistersPayments: summary: Registers payments value: payment: payment_date: '2026-08-14T09:14:31.775Z' price: '300.0' responses: '200': description: Status code content: application/json: schema: type: integer examples: RegistersPayments: summary: Registers payments value: 200 '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' operationId: patch_administration_id_documents_receipts_id_register_payment /{administration_id}/documents/receipts/{id}{format}: get: summary: Get a receipt description: |- Returns a receipt by id. ### Required scope(s) `documents` tags: - 'Documents: Receipts' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A receipt content: application/json: schema: $ref: '#/components/schemas/receipt_response' examples: ReturnsTheWantedReceipt: summary: Returns the wanted receipt value: id: '495429982131062184' administration_id: 123 contact_id: '495429982104847782' contact: id: '495429982104847782' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:31.231Z' updated_at: '2026-08-14T09:14:31.231Z' version: 1786698871 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-08-14' due_date: null entry_number: 1 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: true origin: null paid_at: null tax_number: null total_price_excl_tax: '247.93' total_price_excl_tax_base: '247.93' total_price_incl_tax: '300.0' total_price_incl_tax_base: '300.0' created_at: '2026-08-14T09:14:31.256Z' updated_at: '2026-08-14T09:14:31.260Z' version: 1786698871 details: - id: '495429982133159337' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '247.93' total_price_excl_tax_with_discount_base: '247.93' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:31.258Z' updated_at: '2026-08-14T09:14:31.258Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:31.262Z' updated_at: '2026-08-14T09:14:31.262Z' IncludesFiscalAllocations: summary: Includes fiscal allocations value: id: '495429983676663592' administration_id: 123 contact_id: '495429983574951694' contact: id: '495429983574951694' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:32.633Z' updated_at: '2026-08-14T09:14:32.633Z' version: 1786698872 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-08-14' due_date: null entry_number: 3 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: true origin: null paid_at: null tax_number: null total_price_excl_tax: '247.93' total_price_excl_tax_base: '247.93' total_price_incl_tax: '300.0' total_price_incl_tax_base: '300.0' created_at: '2026-08-14T09:14:32.730Z' updated_at: '2026-08-14T09:14:32.734Z' version: 1786698872 details: - id: '495429983678760745' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '247.93' total_price_excl_tax_with_discount_base: '247.93' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:32.732Z' updated_at: '2026-08-14T09:14:32.732Z' fiscal_allocations: - id: '495429983710218037' administration_id: 123 ledger_account_id: '495429852896167033' private_ledger_account_id: '495429983706023732' percentage: '25.0' price: '75.0' price_base: '75.0' created_at: '2026-08-14T09:14:32.762Z' updated_at: '2026-08-14T09:14:32.762Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:32.736Z' updated_at: '2026-08-14T09:14:32.736Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: OnlyReturnsReceipts: summary: Only returns receipts value: error: record not found symbolic: id: not_found operationId: get_administration_id_documents_receipts_id delete: summary: Delete a receipts description: |- Deletes a receipt. ### Required scope(s) `documents` tags: - 'Documents: Receipts' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: Status code content: application/json: schema: type: integer examples: DeletesTheReceipt: summary: Deletes the receipt value: 200 '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_documents_receipts_id patch: summary: Update a receipt description: |- Updates a receipt. ### Required scope(s) `documents` tags: - 'Documents: Receipts' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: receipt: type: object unevaluatedProperties: false properties: contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. reference: type: string description: A reference for this receipt, e.g. a receipt number or supplier name. date: type: string description: The date of the receipt. format: date currency: type: string description: ISO three-character currency code, e.g. EUR or USD. prices_are_incl_tax: type: - boolean - string description: Whether the prices on the receipt are inclusive of tax. details_attributes: $ref: '#/components/schemas/details_attributes' fiscal_allocations_attributes: $ref: '#/components/schemas/fiscal_allocations_attributes' required: [] payment: type: object unevaluatedProperties: false properties: financial_account_id: $ref: '#/components/schemas/identifier' description: Should be a valid financial account id. required: [] required: [] examples: UpdatesTheReceiptDetails: summary: Updates the receipt details value: receipt: details_attributes: '0': id: 495429981257598140 description: updated description price: 20 UpdatesTheReceipt: summary: Updates the receipt value: receipt: reference: updated reference RemovesAFiscalAllocationWithDestroy: summary: Removes a fiscal allocation with destroy value: receipt: fiscal_allocations_attributes: '0': id: 495429983500502800 _destroy: true AddsFiscalAllocationsToAnExistingDocument: summary: Adds fiscal allocations to an existing document value: receipt: fiscal_allocations_attributes: - ledger_account_id: 495429852896167040 private_ledger_account_id: 495429983868553000 percentage: '40' responses: '200': description: Receipt updated content: application/json: schema: $ref: '#/components/schemas/receipt_response' examples: UpdatesTheReceiptDetails: summary: Updates the receipt details value: id: '495429981255501019' administration_id: 123 contact_id: '495429981232432345' contact: id: '495429981232432345' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:30.399Z' updated_at: '2026-08-14T09:14:30.399Z' version: 1786698870 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-08-14' due_date: null entry_number: 1 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: true origin: null paid_at: null tax_number: null total_price_excl_tax: '16.53' total_price_excl_tax_base: '16.53' total_price_incl_tax: '20.0' total_price_incl_tax_base: '20.0' created_at: '2026-08-14T09:14:30.421Z' updated_at: '2026-08-14T09:14:30.508Z' version: 1786698870 details: - id: '495429981257598172' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: updated description price: '20.0' period: null row_order: 0 total_price_excl_tax_with_discount: '16.53' total_price_excl_tax_with_discount_base: '16.53' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:30.423Z' updated_at: '2026-08-14T09:14:30.506Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:30.427Z' updated_at: '2026-08-14T09:14:30.427Z' - administration_id: 123 user_id: '495429852315255909' action: document_updated link_entity_id: null link_entity_type: null data: changes: total_price_excl_tax: - '247.93' - '16.53' total_price_excl_tax_base: - '247.93' - '16.53' total_price_incl_tax: - '300.0' - '20.0' total_price_incl_tax_base: - '300.0' - '20.0' cached_taxes: - - tax_rate_id: '495429853091202189' report_reference: NL/5b payable: false debit: '52.07' credit: 0 - - tax_rate_id: '495429853091202189' report_reference: NL/5b payable: false debit: '3.47' credit: 0 updated_at: - '2026-08-14T11:14:30.424+02:00' - '2026-08-14T11:14:30.505+02:00' detail_changes: - id: '495429981257598172' change: updated description: - Delivery Apple iPad - updated description price: - '300.0' - '20.0' created_at: '2026-08-14T09:14:30.510Z' updated_at: '2026-08-14T09:14:30.510Z' UpdatesTheReceipt: summary: Updates the receipt value: id: '495429981416981769' administration_id: 123 contact_id: '495429981394961671' contact: id: '495429981394961671' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:30.554Z' updated_at: '2026-08-14T09:14:30.554Z' version: 1786698870 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: updated reference date: '2026-08-14' due_date: null entry_number: 1 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: true origin: null paid_at: null tax_number: null total_price_excl_tax: '247.93' total_price_excl_tax_base: '247.93' total_price_incl_tax: '300.0' total_price_incl_tax_base: '300.0' created_at: '2026-08-14T09:14:30.576Z' updated_at: '2026-08-14T09:14:30.657Z' version: 1786698870 details: - id: '495429981419078922' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '247.93' total_price_excl_tax_with_discount_base: '247.93' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:30.578Z' updated_at: '2026-08-14T09:14:30.578Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:30.582Z' updated_at: '2026-08-14T09:14:30.582Z' - administration_id: 123 user_id: '495429852315255909' action: document_updated link_entity_id: null link_entity_type: null data: changes: reference: - Lunch supermarket - updated reference updated_at: - '2026-08-14T11:14:30.579+02:00' - '2026-08-14T11:14:30.657+02:00' created_at: '2026-08-14T09:14:30.661Z' updated_at: '2026-08-14T09:14:30.661Z' RemovesAFiscalAllocationWithDestroy: summary: Removes a fiscal allocation with destroy value: id: '495429983476385516' administration_id: 123 contact_id: '495429983374673618' contact: id: '495429983374673618' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:32.442Z' updated_at: '2026-08-14T09:14:32.442Z' version: 1786698872 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-08-14' due_date: null entry_number: 3 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: true origin: null paid_at: null tax_number: null total_price_excl_tax: '247.93' total_price_excl_tax_base: '247.93' total_price_incl_tax: '300.0' total_price_incl_tax_base: '300.0' created_at: '2026-08-14T09:14:32.539Z' updated_at: '2026-08-14T09:14:32.543Z' version: 1786698872 details: - id: '495429983478482669' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '247.93' total_price_excl_tax_with_discount_base: '247.93' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:32.541Z' updated_at: '2026-08-14T09:14:32.541Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:32.545Z' updated_at: '2026-08-14T09:14:32.545Z' - administration_id: 123 user_id: '495429852315255909' action: document_updated link_entity_id: null link_entity_type: null data: changes: {} created_at: '2026-08-14T09:14:32.591Z' updated_at: '2026-08-14T09:14:32.591Z' AddsFiscalAllocationsToAnExistingDocument: summary: Adds fiscal allocations to an existing document value: id: '495429983849678673' administration_id: 123 contact_id: '495429983750063927' contact: id: '495429983750063927' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:32.800Z' updated_at: '2026-08-14T09:14:32.800Z' version: 1786698872 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-08-14' due_date: null entry_number: 3 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: true origin: null paid_at: null tax_number: null total_price_excl_tax: '268.76' total_price_excl_tax_base: '268.76' total_price_incl_tax: '300.0' total_price_incl_tax_base: '300.0' created_at: '2026-08-14T09:14:32.895Z' updated_at: '2026-08-14T09:14:32.946Z' version: 1786698872 details: - id: '495429983850727250' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '148.76' total_price_excl_tax_with_discount_base: '148.76' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:32.897Z' updated_at: '2026-08-14T09:14:32.944Z' fiscal_allocations: - id: '495429983900010334' administration_id: 123 ledger_account_id: '495429852896167033' private_ledger_account_id: '495429983868553053' percentage: '40.0' price: '120.0' price_base: '120.0' created_at: '2026-08-14T09:14:32.943Z' updated_at: '2026-08-14T09:14:32.943Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:32.901Z' updated_at: '2026-08-14T09:14:32.901Z' - administration_id: 123 user_id: '495429852315255909' action: document_updated link_entity_id: null link_entity_type: null data: changes: total_price_excl_tax: - '247.93' - '268.76' total_price_excl_tax_base: - '247.93' - '268.76' cached_taxes: - - tax_rate_id: '495429853091202189' report_reference: NL/5b payable: false debit: '52.07' credit: 0 - - tax_rate_id: '495429853091202189' report_reference: NL/5b payable: false debit: '31.24' credit: 0 updated_at: - '2026-08-14T11:14:32.898+02:00' - '2026-08-14T11:14:32.942+02:00' created_at: '2026-08-14T09:14:32.948Z' updated_at: '2026-08-14T09:14:32.948Z' '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: patch_administration_id_documents_receipts_id /{administration_id}/documents/receipts/{receipt_id}/notes/{id}{format}: delete: summary: Destroys note from entity description: |- Deletes a note from the receipt. ### Required scope(s) `documents` tags: - 'Documents: Receipts' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: receipt_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Note deleted '400': $ref: '#/components/responses/400_bad_request' operationId: delete_administration_id_documents_receipts_receipt_id_notes_id /{administration_id}/documents/receipts/{receipt_id}/notes{format}: post: summary: Adds note to entity description: |- Adds a note to the receipt. ### Required scope(s) `documents` tags: - 'Documents: Receipts' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: receipt_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: note: type: object unevaluatedProperties: false properties: note: type: string description: '**Required**. Text for the note or to-do.' todo: type: - boolean - string description: If `true` the note is a to-do. assignee_id: $ref: '#/components/schemas/identifier' description: Assign to-do to user. Should be a valid user id. If assignee_id is provided the note will be a to-do. required: [] required: [] examples: CreateANote: summary: Create a note value: note: note: Text of the note assignee_id: 495429980419785700 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '495429980436562967' administration_id: 123 entity_id: '495429980357920765' entity_type: Document user_id: '495429852315255909' assignee_id: '495429980419785749' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-08-14T09:14:29.640Z' updated_at: '2026-08-14T09:14:29.640Z' '400': $ref: '#/components/responses/400_bad_request' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_documents_receipts_receipt_id_notes /{administration_id}/documents/receipts{format}: get: summary: List receipts description: |- Returns a paginated list of documents of this type in the administration. ### Required scope(s) `documents` tags: - 'Documents: Receipts' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: |- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:open`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | period | `String` | `this_year` | A named period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom range (`201301..201302`, `20130101..20130131`) | | state | `String` | `all` | `all`, `new`, `saved`, `open`, `paid`, `late` or `pending_payment`. `paid`, `late` and `pending_payment` only apply to documents with a payment lifecycle (purchase invoices and receipts) | | recurring | `String` | `all` | `all`, `enabled` or `disabled` | | attachment | `String` | `all` | `all`, `with` or `without` | | reference | `String` | | Documents with the given reference value | | contact_id | `Integer` | | Documents belonging to the given contact | | ledger_account_id | `Integer` | | Documents booking against the given ledger account | | updated_after | `String` | | ISO 8601 timestamp in UTC; documents updated strictly after this time | Multiple values for `state`, `recurring` and `attachment` can be combined with a pipe, e.g. `state:open|paid`. schema: type: string default: period:this_year - name: new_filter in: query required: false schema: type: string description: 'String terms, example: `key1:value1,key2:value2`.' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: A list of receipts content: application/json: schema: type: array items: $ref: '#/components/schemas/receipt_response' examples: ReturnsAListOfReceipts: summary: Returns a list of receipts value: - id: '495429985924809896' administration_id: 123 contact_id: '495429985733969014' contact: id: '495429985733969014' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:34.692Z' updated_at: '2026-08-14T09:14:34.692Z' version: 1786698874 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-08-14' due_date: null entry_number: 5 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: true origin: null paid_at: null tax_number: null total_price_excl_tax: '247.93' total_price_excl_tax_base: '247.93' total_price_incl_tax: '300.0' total_price_incl_tax_base: '300.0' created_at: '2026-08-14T09:14:34.875Z' updated_at: '2026-08-14T09:14:34.879Z' version: 1786698874 details: - id: '495429985927955625' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '247.93' total_price_excl_tax_with_discount_base: '247.93' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:34.877Z' updated_at: '2026-08-14T09:14:34.877Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:34.881Z' updated_at: '2026-08-14T09:14:34.881Z' - id: '495429985884963996' administration_id: 123 contact_id: '495429985733969014' contact: id: '495429985733969014' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:34.692Z' updated_at: '2026-08-14T09:14:34.692Z' version: 1786698874 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-08-14' due_date: null entry_number: 4 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: true origin: null paid_at: null tax_number: null total_price_excl_tax: '247.93' total_price_excl_tax_base: '247.93' total_price_incl_tax: '300.0' total_price_incl_tax_base: '300.0' created_at: '2026-08-14T09:14:34.836Z' updated_at: '2026-08-14T09:14:34.840Z' version: 1786698874 details: - id: '495429985887061149' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '247.93' total_price_excl_tax_with_discount_base: '247.93' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:34.838Z' updated_at: '2026-08-14T09:14:34.838Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:34.843Z' updated_at: '2026-08-14T09:14:34.843Z' - id: '495429985845118096' administration_id: 123 contact_id: '495429985733969014' contact: id: '495429985733969014' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:34.692Z' updated_at: '2026-08-14T09:14:34.692Z' version: 1786698874 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-08-14' due_date: null entry_number: 3 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: true origin: null paid_at: null tax_number: null total_price_excl_tax: '247.93' total_price_excl_tax_base: '247.93' total_price_incl_tax: '300.0' total_price_incl_tax_base: '300.0' created_at: '2026-08-14T09:14:34.798Z' updated_at: '2026-08-14T09:14:34.802Z' version: 1786698874 details: - id: '495429985847215249' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '247.93' total_price_excl_tax_with_discount_base: '247.93' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:34.800Z' updated_at: '2026-08-14T09:14:34.800Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:34.804Z' updated_at: '2026-08-14T09:14:34.804Z' - id: '495429985759134840' administration_id: 123 contact_id: '495429985733969014' contact: id: '495429985733969014' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:34.692Z' updated_at: '2026-08-14T09:14:34.692Z' version: 1786698874 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-08-14' due_date: null entry_number: 1 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: true origin: null paid_at: null tax_number: null total_price_excl_tax: '247.93' total_price_excl_tax_base: '247.93' total_price_incl_tax: '300.0' total_price_incl_tax_base: '300.0' created_at: '2026-08-14T09:14:34.716Z' updated_at: '2026-08-14T09:14:34.719Z' version: 1786698874 details: - id: '495429985761231993' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '247.93' total_price_excl_tax_with_discount_base: '247.93' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:34.718Z' updated_at: '2026-08-14T09:14:34.718Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:34.722Z' updated_at: '2026-08-14T09:14:34.722Z' ReturnsPaginatedReceiptsOnPage2: summary: Returns paginated receipts on page 2 value: - id: '495429986365211930' administration_id: 123 contact_id: '495429986224702708' contact: id: '495429986224702708' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:35.160Z' updated_at: '2026-08-14T09:14:35.160Z' version: 1786698875 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-08-14' due_date: null entry_number: 4 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: true origin: null paid_at: null tax_number: null total_price_excl_tax: '247.93' total_price_excl_tax_base: '247.93' total_price_incl_tax: '300.0' total_price_incl_tax_base: '300.0' created_at: '2026-08-14T09:14:35.294Z' updated_at: '2026-08-14T09:14:35.298Z' version: 1786698875 details: - id: '495429986367309083' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '247.93' total_price_excl_tax_with_discount_base: '247.93' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:35.296Z' updated_at: '2026-08-14T09:14:35.296Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:35.300Z' updated_at: '2026-08-14T09:14:35.300Z' ReturnsPaginatedReceiptsOnPage1: summary: Returns paginated receipts on page 1 value: - id: '495429986665104741' administration_id: 123 contact_id: '495429986485798195' contact: id: '495429986485798195' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:35.409Z' updated_at: '2026-08-14T09:14:35.409Z' version: 1786698875 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-08-14' due_date: null entry_number: 5 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: true origin: null paid_at: null tax_number: null total_price_excl_tax: '247.93' total_price_excl_tax_base: '247.93' total_price_incl_tax: '300.0' total_price_incl_tax_base: '300.0' created_at: '2026-08-14T09:14:35.581Z' updated_at: '2026-08-14T09:14:35.584Z' version: 1786698875 details: - id: '495429986667201894' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Delivery Apple iPad price: '300.0' period: null row_order: 0 total_price_excl_tax_with_discount: '247.93' total_price_excl_tax_with_discount_base: '247.93' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:35.582Z' updated_at: '2026-08-14T09:14:35.582Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:35.586Z' updated_at: '2026-08-14T09:14:35.586Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenTooManyReceiptsAreRequested: summary: Returns an error when too many receipts are requested value: error: Per Page is too big symbolic: per_page: max operationId: get_administration_id_documents_receipts post: summary: Create a new receipt description: |- Creates a new receipt. ### Required scope(s) `documents` tags: - 'Documents: Receipts' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: receipt: type: object unevaluatedProperties: false properties: contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. reference: type: string description: A reference for this receipt, e.g. a receipt number or supplier name. date: type: string description: The date of the receipt. format: date currency: type: string description: ISO three-character currency code, e.g. EUR or USD. prices_are_incl_tax: type: - boolean - string description: Whether the prices on the receipt are inclusive of tax. Defaults to the administration setting. details_attributes: $ref: '#/components/schemas/details_attributes' fiscal_allocations_attributes: $ref: '#/components/schemas/fiscal_allocations_attributes' required: [] payment: type: object unevaluatedProperties: false properties: financial_account_id: $ref: '#/components/schemas/identifier' description: Should be a valid financial account id. required: [] required: [] examples: CreatesADocumentWithFiscalAllocations: summary: Creates a document with fiscal allocations value: receipt: reference: with fiscal allocations contact_id: 495429983069537900 details_attributes: - description: Test detail price: 100 tax_rate_id: 495429853091202200 ledger_account_id: 495429852896167040 fiscal_allocations_attributes: - ledger_account_id: 495429852896167040 private_ledger_account_id: 495429983160764100 percentage: '30' CreatesTheReceipt: summary: Creates the receipt value: receipt: reference: foobar contact_id: 495429988026156740 details_attributes: '0': description: Lunch price: 20 tax_rate_id: 495429853091202200 ledger_account_id: 495429852896167040 responses: '201': description: Receipt created content: application/json: schema: $ref: '#/components/schemas/receipt_response' examples: CreatesADocumentWithFiscalAllocations: summary: Creates a document with fiscal allocations value: id: '495429983193269925' administration_id: 123 contact_id: '495429983069537930' contact: id: '495429983069537930' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:32.151Z' updated_at: '2026-08-14T09:14:32.151Z' version: 1786698872 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: with fiscal allocations date: '2026-08-14' due_date: null entry_number: 3 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: true origin: null paid_at: null tax_number: null total_price_excl_tax: '87.85' total_price_excl_tax_base: '87.85' total_price_incl_tax: '100.0' total_price_incl_tax_base: '100.0' created_at: '2026-08-14T09:14:32.269Z' updated_at: '2026-08-14T09:14:32.274Z' version: 1786698872 details: - id: '495429983196415655' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Test detail price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '57.85' total_price_excl_tax_with_discount_base: '57.85' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:32.272Z' updated_at: '2026-08-14T09:14:32.272Z' fiscal_allocations: - id: '495429983194318502' administration_id: 123 ledger_account_id: '495429852896167033' private_ledger_account_id: '495429983160764068' percentage: '30.0' price: '30.0' price_base: '30.0' created_at: '2026-08-14T09:14:32.271Z' updated_at: '2026-08-14T09:14:32.271Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:32.276Z' updated_at: '2026-08-14T09:14:32.276Z' CreatesTheReceipt: summary: Creates the receipt value: id: '495429988179248855' administration_id: 123 contact_id: '495429988026156733' contact: id: '495429988026156733' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:36.878Z' updated_at: '2026-08-14T09:14:36.878Z' version: 1786698876 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: foobar date: '2026-08-14' due_date: null entry_number: 3 state: open currency: EUR exchange_rate: '1.0' revenue_invoice: false prices_are_incl_tax: true origin: null paid_at: null tax_number: null total_price_excl_tax: '16.53' total_price_excl_tax_base: '16.53' total_price_incl_tax: '20.0' total_price_incl_tax_base: '20.0' created_at: '2026-08-14T09:14:37.024Z' updated_at: '2026-08-14T09:14:37.028Z' version: 1786698877 details: - id: '495429988181346008' administration_id: 123 tax_rate_id: '495429853091202189' ledger_account_id: '495429852896167033' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Lunch price: '20.0' period: null row_order: 0 total_price_excl_tax_with_discount: '16.53' total_price_excl_tax_with_discount_base: '16.53' tax_report_reference: - NL/5b mandatory_tax_text: null created_at: '2026-08-14T09:14:37.026Z' updated_at: '2026-08-14T09:14:37.026Z' fiscal_allocations: [] payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:37.030Z' updated_at: '2026-08-14T09:14:37.030Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: RequiresAllInput: summary: Requires all input value: error: Receipt is required symbolic: receipt: required '402': $ref: '#/components/responses/402_payment_required' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_documents_receipts /{administration_id}/documents/typeless_documents/synchronization{format}: get: summary: List ids and versions of typeless documents description: |- Returns all documents in the administration. The list contains the document id and the version of the document. Check if the version of the document is newer than the version you have stored locally, use the `POST` variant for fetching documents with the given ids. ### Required scope(s) `documents` tags: - 'Documents: Typeless documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: Comma-separated `key:value` filter terms. Same syntax as `GET /documents/typeless_documents` — see that operation's description for the available keys. schema: type: string responses: '200': description: IDs and versions of records content: application/json: schema: type: array items: type: object unevaluatedProperties: false properties: id: type: - integer - string version: type: - integer - string examples: RetrievesAllIdsForSynchronization: summary: Retrieves all ids for synchronization value: - id: '495429873165141262' version: 1786698767 - id: '495429873176675600' version: 1786698767 - id: '495429873187161362' version: 1786698767 operationId: get_administration_id_documents_typeless_documents_synchronization post: summary: Fetch typeless documents with given ids x-query: true description: |- Given a list of document ids, returns the document information belonging to the documents. Returns a maximum of 100 documents, even if more ids are provided. ### Required scope(s) `documents` tags: - 'Documents: Typeless documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: ids: type: array items: type: - integer - string required: - ids examples: RetrievesDocumentsForGivenIds: summary: Retrieves documents for given ids value: ids: - 495429873330816300 - 495429873342350660 responses: '200': description: A list of typeless documents content: application/json: schema: type: array items: $ref: '#/components/schemas/typeless_document_response' examples: RetrievesDocumentsForGivenIds: summary: Retrieves documents for given ids value: - id: '495429873342350631' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-08-14' state: new origin: null created_at: '2026-08-14T09:12:47.507Z' updated_at: '2026-08-14T09:12:47.507Z' version: 1786698767 attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:47.510Z' updated_at: '2026-08-14T09:12:47.510Z' - id: '495429873330816293' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-08-14' state: new origin: null created_at: '2026-08-14T09:12:47.496Z' updated_at: '2026-08-14T09:12:47.496Z' version: 1786698767 attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:47.499Z' updated_at: '2026-08-14T09:12:47.499Z' operationId: post_administration_id_documents_typeless_documents_synchronization /{administration_id}/documents/typeless_documents/{id}/attachments/{attachment_id}/download{format}: get: summary: Download attachment description: |- Download the attachment. The response will be a redirect to a temporarily available URL where the attachment can be downloaded. Use the `Location` header in the response to download the attachment. ### Required scope(s) `documents` tags: - 'Documents: Typeless documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: attachment_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '302': description: Found content: text/plain: schema: type: string examples: DownloadsTheAttachment: summary: Downloads the attachment value: '{"message":"Use the Location header to download the attachment"}' '404': $ref: '#/components/responses/404_not_found' operationId: get_administration_id_documents_typeless_documents_id_attachments_attachment_id_download /{administration_id}/documents/typeless_documents/{id}/attachments/{attachment_id}{format}: delete: summary: Delete an attachment description: |- Deletes an attachment of an attachable. ### Required scope(s) `documents` tags: - 'Documents: Typeless documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: attachment_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Attachment deleted '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_documents_typeless_documents_id_attachments_attachment_id /{administration_id}/documents/typeless_documents/{id}/attachments{format}: post: summary: Add attachment to typeless document description: |- Add an attachment to a typeless document. ### Required scope(s) `documents` tags: - 'Documents: Typeless documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: multipart/form-data: schema: type: object properties: file: type: string format: binary responses: '200': description: Status code content: application/json: schema: type: integer examples: UploadsAnAttachment: summary: Uploads an attachment value: 200 '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_documents_typeless_documents_id_attachments /{administration_id}/documents/typeless_documents/{id}{format}: get: summary: Get a typeless document description: |- Returns a typeless document by id. ### Required scope(s) `documents` tags: - 'Documents: Typeless documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A typeless document content: application/json: schema: $ref: '#/components/schemas/typeless_document_response' examples: ReturnsTheWantedTypelessDocument: summary: Returns the wanted typeless document value: id: '495429873596106057' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-08-14' state: new origin: null created_at: '2026-08-14T09:12:47.749Z' updated_at: '2026-08-14T09:12:47.749Z' version: 1786698767 attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:47.753Z' updated_at: '2026-08-14T09:12:47.753Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: OnlyReturnsTypelessDocuments: summary: Only returns typeless documents value: error: record not found symbolic: id: not_found operationId: get_administration_id_documents_typeless_documents_id delete: summary: Delete a typeless document description: |- Deletes a typeless document. ### Required scope(s) `documents` tags: - 'Documents: Typeless documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: Status code content: application/json: schema: type: integer examples: DeletesTheTypelessDocument: summary: Deletes the typeless document value: 200 '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_documents_typeless_documents_id /{administration_id}/documents/typeless_documents{format}: get: summary: Get typeless documents description: |- Returns a paginated list of documents of this type in the administration. ### Required scope(s) `documents` tags: - 'Documents: Typeless documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: |- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:open`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | period | `String` | `this_year` | A named period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom range (`201301..201302`, `20130101..20130131`) | | state | `String` | `all` | `all`, `new`, `saved`, `open`, `paid`, `late` or `pending_payment`. `paid`, `late` and `pending_payment` only apply to documents with a payment lifecycle (purchase invoices and receipts) | | recurring | `String` | `all` | `all`, `enabled` or `disabled` | | attachment | `String` | `all` | `all`, `with` or `without` | | reference | `String` | | Documents with the given reference value | | contact_id | `Integer` | | Documents belonging to the given contact | | ledger_account_id | `Integer` | | Documents booking against the given ledger account | | updated_after | `String` | | ISO 8601 timestamp in UTC; documents updated strictly after this time | Multiple values for `state`, `recurring` and `attachment` can be combined with a pipe, e.g. `state:open|paid`. schema: type: string default: period:this_year - name: new_filter in: query required: false schema: type: string description: 'String terms, example: `key1:value1,key2:value2`.' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: A list of typeless documents content: application/json: schema: type: array items: $ref: '#/components/schemas/typeless_document_response' examples: ReturnsPaginatedTypelessDocumentsOnPage2: summary: Returns paginated typeless documents on page 2 value: - id: '495429874381489595' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-08-14' state: new origin: null created_at: '2026-08-14T09:12:48.498Z' updated_at: '2026-08-14T09:12:48.498Z' version: 1786698768 attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:48.500Z' updated_at: '2026-08-14T09:12:48.500Z' ReturnsPaginatedTypelessDocumentsOnPage1: summary: Returns paginated typeless documents on page 1 value: - id: '495429874554504660' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-08-14' state: new origin: null created_at: '2026-08-14T09:12:48.663Z' updated_at: '2026-08-14T09:12:48.663Z' version: 1786698768 attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:48.666Z' updated_at: '2026-08-14T09:12:48.666Z' ReturnsAListOfTypelessDocuments: summary: Returns a list of typeless documents value: - id: '495429874729616875' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-08-14' state: new origin: null created_at: '2026-08-14T09:12:48.830Z' updated_at: '2026-08-14T09:12:48.830Z' version: 1786698768 attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:48.833Z' updated_at: '2026-08-14T09:12:48.833Z' - id: '495429874719131113' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-08-14' state: new origin: null created_at: '2026-08-14T09:12:48.820Z' updated_at: '2026-08-14T09:12:48.820Z' version: 1786698768 attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:48.823Z' updated_at: '2026-08-14T09:12:48.823Z' - id: '495429874707596775' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-08-14' state: new origin: null created_at: '2026-08-14T09:12:48.810Z' updated_at: '2026-08-14T09:12:48.810Z' version: 1786698768 attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:48.813Z' updated_at: '2026-08-14T09:12:48.813Z' - id: '495429874697111013' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-08-14' state: new origin: null created_at: '2026-08-14T09:12:48.799Z' updated_at: '2026-08-14T09:12:48.799Z' version: 1786698768 attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:48.802Z' updated_at: '2026-08-14T09:12:48.802Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenTooManyTypelessDocumentsAreRequested: summary: Returns an error when too many typeless documents are requested value: error: Per Page is too big symbolic: per_page: max operationId: get_administration_id_documents_typeless_documents post: summary: Create a new typeless document description: |- Creates a new typeless document. ### Required scope(s) `documents` tags: - 'Documents: Typeless documents' security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: typeless_document: type: object unevaluatedProperties: false properties: reference: type: string date: type: string format: date description: Date of the document. Defaults to today. contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. required: [] required: [] examples: CreatesTheTypelessDocument: summary: Creates the typeless document value: typeless_document: reference: foobar contact_id: 495429873894950300 responses: '201': description: Typeless document created content: application/json: schema: $ref: '#/components/schemas/typeless_document_response' examples: CreatesTheTypelessDocument: summary: Creates the typeless document value: id: '495429873971496318' administration_id: 123 contact_id: '495429873894950254' contact: id: '495429873894950254' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:12:48.033Z' updated_at: '2026-08-14T09:12:48.033Z' version: 1786698768 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false reference: foobar date: '2026-08-14' state: new origin: api created_at: '2026-08-14T09:12:48.107Z' updated_at: '2026-08-14T09:12:48.107Z' version: 1786698768 attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:12:48.110Z' updated_at: '2026-08-14T09:12:48.110Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: RequiresAllInput: summary: Requires all input value: error: Typeless Document is required symbolic: typeless_document: required '402': $ref: '#/components/responses/402_payment_required' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_documents_typeless_documents /{administration_id}/downloads/{id}/download{format}: post: summary: Download a file description: |- Returns a redirect to the actual file download URL. The required permission scope depends on the download's type (for example `export_documents` requires `documents`, `export_sales_invoices` requires `sales_invoices`, `export_contacts` requires `contacts`, and report exports require the same permissions as the corresponding report). The token must have the permission matching the download type. The response is a 302 redirect. The client should follow the `Location` header to download the actual file. The link is valid for 30 seconds. tags: - Downloads security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' description: The download ID responses: '302': description: Found content: text/plain: schema: type: string examples: RedirectsToTheDownloadLink: summary: Redirects to the download link value: '{"message":"Use the Location header to download the file"}' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksPermission: summary: Returns 401 when user lacks permission value: error: No access to sales_invoices '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenDownloadDoesNotExist: summary: Returns 404 when download does not exist value: error: 'Record not found for model name: Download' operationId: post_administration_id_downloads_id_download /{administration_id}/downloads{format}: get: summary: List all downloads description: |- Returns a paginated list of all downloads in the administration. Only downloads that the authenticated user has permission to access will be returned, based on the download type and the user's permissions within the administration. tags: - Downloads security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/page' - name: download_type in: query required: false schema: type: string description: | Filter downloads by type. Common download types include: - `auditfile` - `brugstaat` - `export_ledger_account_report` Check the `download_type` field in the response to see all available types. examples: ReturnsDownloadsByDownloadType: summary: Returns downloads by download type value: export_contacts - name: downloaded in: query required: false schema: type: - boolean - string examples: ReturnsDownloadsByDownloadedStatus: summary: Returns downloads by downloaded status value: 'true' - name: failed in: query required: false schema: type: - boolean - string examples: ReturnsDownloadsByFailedStatus: summary: Returns downloads by failed status value: 'true' responses: '200': description: A list of downloads headers: Link: $ref: '#/components/headers/link' X-Total-Count: $ref: '#/components/headers/x-total-count' content: application/json: schema: type: array items: $ref: '#/components/schemas/download_response' examples: ReturnsDownloadsByFailedStatus: summary: Returns downloads by failed status value: - id: '495429945448727577' user_id: null download_type: export_documents filename: Unknown content_type: application/octet-stream failed: true downloaded: false created_at: '2026-08-14T09:13:56.274Z' updated_at: '2026-08-14T09:13:56.274Z' ReturnsPaginatedDownloads: summary: Returns paginated downloads value: - id: '495429945517933598' user_id: null download_type: export_sales_invoices filename: Unknown content_type: application/octet-stream failed: false downloaded: true created_at: '2026-08-14T09:13:56.339Z' updated_at: '2026-08-14T09:13:56.339Z' ReturnsDownloadsByDownloadedStatus: summary: Returns downloads by downloaded status value: - id: '495429945560925217' user_id: null download_type: export_sales_invoices filename: Unknown content_type: application/octet-stream failed: false downloaded: true created_at: '2026-08-14T09:13:56.380Z' updated_at: '2026-08-14T09:13:56.380Z' ReturnsAllDownloadsOfAnAdministration: summary: Returns all downloads of an administration value: - id: '495429945607062565' user_id: null download_type: export_documents filename: Unknown content_type: application/octet-stream failed: true downloaded: false created_at: '2026-08-14T09:13:56.425Z' updated_at: '2026-08-14T09:13:56.425Z' - id: '495429945604965412' user_id: null download_type: export_sales_invoices filename: Unknown content_type: application/octet-stream failed: false downloaded: true created_at: '2026-08-14T09:13:56.423Z' updated_at: '2026-08-14T09:13:56.423Z' - id: '495429945602868259' user_id: null download_type: export_contacts filename: Unknown content_type: application/octet-stream failed: false downloaded: false created_at: '2026-08-14T09:13:56.420Z' updated_at: '2026-08-14T09:13:56.420Z' ReturnsDownloadsByDownloadType: summary: Returns downloads by download type value: - id: '495429945664734246' user_id: null download_type: export_contacts filename: Unknown content_type: application/octet-stream failed: false downloaded: false created_at: '2026-08-14T09:13:56.479Z' updated_at: '2026-08-14T09:13:56.479Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenPerPageExceedsLimit: summary: Returns an error when per page exceeds limit value: error: per_page does not have a valid value ReturnsAnErrorWhenDownloadTypeIsInvalid: summary: Returns an error when download type is invalid value: error: download_type does not have a valid value operationId: get_administration_id_downloads /{administration_id}/estimates/find_by_estimate_id/{estimate_id}{format}: get: summary: Get an estimate by estimate_id description: |- Returns all information about an estimate with the given estimate id ### Required scope(s) `estimates` tags: - Estimates security: - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - name: estimate_id in: path required: true schema: type: string description: Unique record identifier example: 2025-0001 - $ref: '#/components/parameters/format' responses: '200': description: An estimate content: application/json: schema: $ref: '#/components/schemas/estimate_response' examples: ReturnsEstimateByGivenEstimateId: summary: Returns estimate by given estimate value: id: '495430041617827325' administration_id: 123 contact_id: '495430041579030008' contact: id: '495430041579030008' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:27.950Z' updated_at: '2026-08-14T09:15:27.950Z' version: 1786698927 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '495430041583224314' contact_person: id: null contact_id: '495430041579030008' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:15:27.954Z' updated_at: '2026-08-14T09:15:27.954Z' version: 1786698927 estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:27.988Z' updated_at: '2026-08-14T09:15:28.045Z' public_view_code: '417488' public_view_code_expires_at: '2026-11-14T09:15:28.016Z' version: 1786698928 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430041620973054' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:27.990Z' updated_at: '2026-08-14T09:15:28.043Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/8fdc39ff14ed7a81b37dc3b63533a3218460e612cae4f2ce6fd799981f63a638/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:27.995Z' updated_at: '2026-08-14T09:15:27.995Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com; janjanssen@dev.null.moneybird.net email_message: |- Geachte Jan Janssen, Hierbij ontvangt u van ons een prijsopgave 2026-0001 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:28.052Z' updated_at: '2026-08-14T09:15:28.052Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: RespondsWithA404CodeWhenEstimateDoesNotExist: summary: Responds with a 404 code when estimate does not exist value: error: 'Estimate with estimate_id: 0 was not found' symbolic: estimate_id: not_found operationId: get_administration_id_estimates_find_by_estimate_id_estimate_id /{administration_id}/estimates/synchronization{format}: get: summary: List all ids and versions description: |- Returns all estimates in the administration. The list contains the id and version of the estimate. If the version of the estimate is newer than the version you have stored locally, use the `POST` variant to fetch estimates with the given ids. ### Required scope(s) `estimates` tags: - Estimates security: - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: Comma-separated `key:value` filter terms. Same syntax as `GET /estimates` — see that operation's description for the available keys. schema: type: string examples: ReturnsUniqueIdsEvenWhenEstimatesHaveMultipleAttachments: summary: Returns unique ids even when estimates have multiple attachments value: state:open responses: '200': description: IDs and versions of records content: application/json: schema: type: array items: type: object unevaluatedProperties: false properties: id: type: - integer - string version: type: - integer - string examples: RetrievesTheIdsForSynchronization: summary: Retrieves the ids for synchronization value: - id: '495430039008970133' version: 1786698925 - id: '495430038904112528' version: 1786698925 ReturnsUniqueIdsEvenWhenEstimatesHaveMultipleAttachments: summary: Returns unique ids even when estimates have multiple attachments value: - id: '495430039081321886' version: 1786698925 RetrievesTheIdsForSynchronizationFilteredOnState: summary: Retrieves the ids for synchronization filtered on state value: - id: '495430039263774126' version: 1786698925 operationId: get_administration_id_estimates_synchronization post: summary: Fetch estimates with given ids x-query: true description: |- Given a list of estimate ids, returns the estimate information belonging to the estimates. Returns a maximum of 100 estimates, even if more ids are provided. ### Required scope(s) `estimates` tags: - Estimates security: - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: ids: type: array items: type: - integer - string required: - ids examples: RetrievesEstimatesByGivenIds: summary: Retrieves estimates by given ids value: ids: - 495430032162818000 - 495430032061106100 responses: '200': description: A list of estimates content: application/json: schema: type: array items: $ref: '#/components/schemas/estimate_response' examples: RetrievesEstimatesByGivenIds: summary: Retrieves estimates by given ids value: - id: '495430032162817983' administration_id: 123 contact_id: '495430032011823029' contact: id: '495430032011823029' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:18.826Z' updated_at: '2026-08-14T09:15:18.826Z' version: 1786698918 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: - id: '495430032016017335' contact_id: '495430032011823029' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:15:18.830Z' updated_at: '2026-08-14T09:15:18.830Z' version: 1786698918 archived: false contact_person_id: null contact_person: null estimate_id: null estimate_sequence_id: null workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: 2 state: draft estimate_date: null due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: null accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:18.970Z' updated_at: '2026-08-14T09:15:18.973Z' public_view_code: null public_view_code_expires_at: null version: 1786698918 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430032164915136' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:18.972Z' updated_at: '2026-08-14T09:15:18.972Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/3a90971714d29f819633b6a484c34297d3f321576bcc1c06cf44c1234df5140a/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:18.977Z' updated_at: '2026-08-14T09:15:18.977Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '495430032061106106' administration_id: 123 contact_id: '495430032011823029' contact: id: '495430032011823029' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:18.826Z' updated_at: '2026-08-14T09:15:18.826Z' version: 1786698918 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '495430032016017335' contact_person: id: null contact_id: '495430032011823029' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:15:18.830Z' updated_at: '2026-08-14T09:15:18.830Z' version: 1786698918 estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:18.873Z' updated_at: '2026-08-14T09:15:18.929Z' public_view_code: '812517' public_view_code_expires_at: '2026-11-14T09:15:18.901Z' version: 1786698918 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430032063203259' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:18.875Z' updated_at: '2026-08-14T09:15:18.928Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/ca7ea7e90765cb5719fb914e78de1cc08c72b08b943897ec98c89b7021fb2295/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:18.880Z' updated_at: '2026-08-14T09:15:18.880Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com; janjanssen@dev.null.moneybird.net email_message: |- Geachte Jan Janssen, Hierbij ontvangt u van ons een prijsopgave 2026-0001 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:18.936Z' updated_at: '2026-08-14T09:15:18.936Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400IfIdsParamIsMissing: summary: Returns 400 if ids param is missing value: error: Ids is required symbolic: ids: required operationId: post_administration_id_estimates_synchronization /{administration_id}/estimates/{estimate_id}/attachments/{id}/download{format}: get: summary: Download attachment description: |- Download the attachment. The response will be a redirect to a temporarily available URL where the attachment can be downloaded. Use the `Location` header in the response to download the attachment. ### Required scope(s) `estimates` tags: - Estimates security: - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - name: estimate_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '302': description: Found content: text/plain: schema: type: string examples: DownloadsTheAttachment: summary: Downloads the attachment value: '{"message":"Use the Location header to download the attachment"}' '404': $ref: '#/components/responses/404_not_found' operationId: get_administration_id_estimates_estimate_id_attachments_id_download /{administration_id}/estimates/{estimate_id}/attachments/{id}{format}: delete: summary: Delete an attachment description: |- Deletes an attachment of an attachable. ### Required scope(s) `estimates` tags: - Estimates security: - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - name: estimate_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Attachment deleted '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_estimates_estimate_id_attachments_id /{administration_id}/estimates/{estimate_id}/notes/{id}{format}: delete: summary: Destroys note from entity description: |- Deletes a note from the estimate. ### Required scope(s) `estimates` tags: - Estimates security: - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - name: estimate_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Note deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404IfTheIdIsWrong: summary: Returns 404 if the id is wrong value: error: record not found symbolic: id: not_found operationId: delete_administration_id_estimates_estimate_id_notes_id /{administration_id}/estimates/{estimate_id}/notes{format}: post: summary: Adds note to entity description: |- Adds a note to the estimate. ### Required scope(s) `estimates` tags: - Estimates security: - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - name: estimate_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: note: type: object unevaluatedProperties: false properties: note: type: string description: '**Required**. Text for the note or to-do.' todo: type: - boolean - string description: If `true` the note is a to-do. assignee_id: type: - integer - string description: Assign to-do to user. Should be a valid user id. If assignee_id is provided the note will be a to-do. required: [] required: [] examples: CreatesANote: summary: Creates a note value: note: note: A pending TODO assignee_id: 495430038665037200 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreatesANote: summary: Creates a note value: id: '495430038682862973' administration_id: 123 entity_id: '495430038580102518' entity_type: Estimate user_id: '495429852315255909' assignee_id: '495430038665037179' todo: true note: A pending TODO completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-08-14T09:15:25.188Z' updated_at: '2026-08-14T09:15:25.188Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400IfTheEstimateDoesNotExist: summary: Returns 400 if the estimate does not exist value: error: Entity is invalid; User has no permissions to notes for Estimate symbolic: entity: not_found user: insufficient_permissions '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422IfTheNoteIsInvalid: summary: Returns 422 if the note is invalid value: error: note: - can't be blank todo_type: - can't be blank details: note: - error: blank todo_type: - error: blank operationId: post_administration_id_estimates_estimate_id_notes /{administration_id}/estimates/{id}/attachments{format}: post: summary: Add attachment to estimate description: |- Add an attachment to an estimate. ### Required scope(s) `estimates` tags: - Estimates security: - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: multipart/form-data: schema: type: object properties: file: type: string format: binary responses: '200': description: Status code content: application/json: schema: type: integer examples: UploadsAnAttachment: summary: Uploads an attachment value: 200 '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_estimates_id_attachments /{administration_id}/estimates/{id}/bill_estimate{format}: patch: summary: Bills an estimate description: |- An invoice is created based on the accepted estimate. ### Required scope(s) `estimates` tags: - Estimates security: - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object examples: BillsAnAcceptedEstimate: summary: Bills an accepted estimate value: {} BillsAnOpenEstimate: summary: Bills an open estimate value: {} responses: '200': description: Estimate billed content: application/json: schema: $ref: '#/components/schemas/sales_invoice_response' examples: BillsAnAcceptedEstimate: summary: Bills an accepted estimate value: id: '495430042327713321' administration_id: 123 contact_id: '495430042003703321' contact: id: '495430042003703321' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:28.355Z' updated_at: '2026-08-14T09:15:28.355Z' version: 1786698928 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: - id: '495430042007897627' contact_id: '495430042003703321' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:15:28.359Z' updated_at: '2026-08-14T09:15:28.359Z' version: 1786698928 archived: false contact_person_id: null contact_person: null invoice_id: null recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: 1 state: draft invoice_date: null due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: null short_payment_reference: null reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: null created_at: '2026-08-14T09:15:28.664Z' updated_at: '2026-08-14T09:15:28.669Z' public_view_code: null public_view_code_expires_at: null version: 1786698928 details: - id: '495430042330859050' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:28.667Z' updated_at: '2026-08-14T09:15:28.667Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: null original_estimate_id: '495430042175669795' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/18113e0797f0c6031f009d68ae15d995483ce7f4368b88f6e90eabbddc37a4be/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/18113e0797f0c6031f009d68ae15d995483ce7f4368b88f6e90eabbddc37a4be/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created_based_on_estimate link_entity_id: null link_entity_type: null data: original_estimate: 2026-0002 created_at: '2026-08-14T09:15:28.673Z' updated_at: '2026-08-14T09:15:28.673Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] BillsAnOpenEstimate: summary: Bills an open estimate value: id: '495430042715686462' administration_id: 123 contact_id: '495430042418939438' contact: id: '495430042418939438' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:28.751Z' updated_at: '2026-08-14T09:15:28.751Z' version: 1786698928 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: - id: '495430042423133744' contact_id: '495430042418939438' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:15:28.756Z' updated_at: '2026-08-14T09:15:28.756Z' version: 1786698928 archived: false contact_person_id: null contact_person: null invoice_id: null recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: 1 state: draft invoice_date: null due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: null short_payment_reference: null reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: null created_at: '2026-08-14T09:15:29.034Z' updated_at: '2026-08-14T09:15:29.039Z' public_view_code: null public_view_code_expires_at: null version: 1786698929 details: - id: '495430042718832191' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:29.037Z' updated_at: '2026-08-14T09:15:29.037Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: null original_estimate_id: '495430042570982968' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/fa2761a331bbac1d81d0947736a0fec312b575f49b4d07bf0818a16950b19b1e/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/fa2761a331bbac1d81d0947736a0fec312b575f49b4d07bf0818a16950b19b1e/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created_based_on_estimate link_entity_id: null link_entity_type: null data: original_estimate: 2026-0002 created_at: '2026-08-14T09:15:29.041Z' updated_at: '2026-08-14T09:15:29.041Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: CanNotBillAnOpenEstimate: summary: Can not bill an open estimate value: error: Invalid estimate state symbolic: id: state '402': description: Payment required content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Return402IfLimitIsReached: summary: Return 402 if limit is reached value: error: creating sales invoices is limited symbolic: administration: limit_reached '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404IfTheEstimateDoesNotExist: summary: Returns 404 if the estimate does not exist value: error: record not found symbolic: id: not_found operationId: patch_administration_id_estimates_id_bill_estimate /{administration_id}/estimates/{id}/change_state{format}: patch: summary: Changes the state of an estimate description: |- Not every state change is allowed. e.g. open to billed is accepted, draft to open is not. Note: this only changes the state and does not perform other actions like sending or billing the estimate. ### Required scope(s) `estimates` tags: - Estimates security: - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: state: type: string description: Can be accepted, rejected, open, late, billed or archived. required: - state examples: ChangesFromOpenToAccepted: summary: Changes from open to accepted value: state: accepted responses: '200': description: Estimate updated content: application/json: schema: $ref: '#/components/schemas/estimate_response' examples: ChangesFromOpenToAccepted: summary: Changes from open to accepted value: id: '495430034496947299' administration_id: 123 contact_id: '495430034339660889' contact: id: '495430034339660889' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:21.046Z' updated_at: '2026-08-14T09:15:21.046Z' version: 1786698921 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null estimate_id: 2026-0002 estimate_sequence_id: '0002' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: accepted estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: '2026-08-14' rejected_at: null archived_at: null created_at: '2026-08-14T09:15:21.196Z' updated_at: '2026-08-14T09:15:21.281Z' public_view_code: '815483' public_view_code_expires_at: '2026-11-14T09:15:21.225Z' version: 1786698921 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430034499044452' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:21.198Z' updated_at: '2026-08-14T09:15:21.250Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/a84d2c392b39e654137271bead1d23a077f12c5a572c9bef19251322e866cdde/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:21.203Z' updated_at: '2026-08-14T09:15:21.203Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., Hierbij ontvangt u van ons een prijsopgave 2026-0002 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:21.259Z' updated_at: '2026-08-14T09:15:21.259Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_mark_accepted link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:21.284Z' updated_at: '2026-08-14T09:15:21.284Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400IfTheStateChangeIsInvalid: summary: Returns 400 if the state change is invalid value: error: State isn't an option symbolic: state: in ReturnsAnErrorIfEstimateCannotBeMarkedFromDraftToOpen: summary: Returns an error if estimate cannot be marked from draft to open value: error: State is invalid symbolic: state: can_not_change_draft_to_open '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404IfTheEstimateDoesNotExist: summary: Returns 404 if the estimate does not exist value: error: record not found symbolic: id: not_found operationId: patch_administration_id_estimates_id_change_state /{administration_id}/estimates/{id}/download_pdf{format}: get: summary: Download estimate PDF by id description: |- Redirects to the download URL of the estimate as PDF. The link is valid for 30 seconds. ### Required scope(s) `estimates` tags: - Estimates security: - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' - name: media in: query required: false schema: type: string description: In case you want to hide sender address and logo you can set this to 'stationery'. responses: '302': description: Found content: text/plain: schema: type: string examples: ReturnsEstimateByGivenIdAsPdf: summary: Returns estimate by given id as pdf value: '"This resource has been moved temporarily to http://moneybird-storage:3100/798b35bb855ccd559acc376c9111e23c220c306f1a11f2941a770b88f2be3a67/3458ea03ffa89a0b9904cc7b75394f3664c5a1cf461a8c28e2196a627a84dd02/download."' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenEstimateDoesNotExist: summary: Returns 404 when estimate does not exist value: error: record not found symbolic: id: not_found operationId: get_administration_id_estimates_id_download_pdf /{administration_id}/estimates/{id}/send_estimate{format}: patch: summary: Sends an estimate description: |- You can provide a send method, email address and message. If you don't provide any arguments, the defaults from the contact and workflow will be used. If you have sent the estimate before, then the settings from the previous sending are used instead of the defaults. ### Required scope(s) `estimates` tags: - Estimates security: - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: estimate_sending: type: object unevaluatedProperties: false properties: delivery_method: type: string enum: - Email - Manual email_address: type: string description: Recipient email address. Only used when `delivery_method` is `Email`; defaults to the contact's email address. email_message: type: string description: Message included in the email. Only used when `delivery_method` is `Email`; defaults to the workflow's estimate email text. sign_online: type: - boolean - string required: [] sender: type: - boolean - string signature_output: type: string audit_trail: type: string ip_address: type: string required: [] examples: SendsAnEstimateWithAlternativeInformation: summary: Sends an estimate with alternative information value: estimate_sending: delivery_method: Email email_address: alternative@example.com email_message: Hi, this is an estimate with id {invoice_id}! SendsAnEstimateByGivenId: summary: Sends an estimate by given id value: {} SendsViaEmailIfContactHasDeliveryMethodSimplerinvoicing: summary: Sends via email if contact has delivery method simplerinvoicing value: {} responses: '200': description: Estimate updated content: application/json: schema: $ref: '#/components/schemas/estimate_response' examples: SendsAnEstimateWithAlternativeInformation: summary: Sends an estimate with alternative information value: id: '495430037248410905' administration_id: 123 contact_id: '495430037215905047' contact: id: '495430037215905047' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:23.789Z' updated_at: '2026-08-14T09:15:23.789Z' version: 1786698923 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:23.820Z' updated_at: '2026-08-14T09:15:23.881Z' public_view_code: '287283' public_view_code_expires_at: '2026-11-14T10:15:23.854Z' version: 1786698923 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430037250508058' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:23.822Z' updated_at: '2026-08-14T09:15:23.880Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/f95db096d7e2ce8cec6434d0f0096bd3b2aea07dd119374f5e901fd0e37d37b2/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:23.827Z' updated_at: '2026-08-14T09:15:23.827Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: alternative@example.com email_message: Hi, this is an estimate with id {invoice_id}! created_at: '2026-08-14T09:15:23.888Z' updated_at: '2026-08-14T09:15:23.888Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' SendsAnEstimateByGivenId: summary: Sends an estimate by given id value: id: '495430037407794465' administration_id: 123 contact_id: '495430037375288607' contact: id: '495430037375288607' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:23.941Z' updated_at: '2026-08-14T09:15:23.941Z' version: 1786698923 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:23.972Z' updated_at: '2026-08-14T09:15:24.036Z' public_view_code: '621451' public_view_code_expires_at: '2026-11-14T10:15:24.008Z' version: 1786698924 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430037408843042' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:23.974Z' updated_at: '2026-08-14T09:15:24.035Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/44c58c0ddace52deca6f099ff16930e23aeff388bc56054149adbf16211eae4b/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:23.979Z' updated_at: '2026-08-14T09:15:23.979Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., Hierbij ontvangt u van ons een prijsopgave 2026-0001 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:24.044Z' updated_at: '2026-08-14T09:15:24.044Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' SendsViaEmailIfContactHasDeliveryMethodSimplerinvoicing: summary: Sends via email if contact has delivery method simplerinvoicing value: id: '495430037862876482' administration_id: 123 contact_id: '495430037832467776' contact: id: '495430037832467776' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Simplerinvoicing customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '12345678' si_identifier_type: NL:KVK moneybird_payments_mandate: false created_at: '2026-08-14T09:15:24.377Z' updated_at: '2026-08-14T09:15:24.422Z' version: 1786698924 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:24.406Z' updated_at: '2026-08-14T09:15:24.471Z' public_view_code: '774232' public_view_code_expires_at: '2026-11-14T10:15:24.445Z' version: 1786698924 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430037864973635' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:24.408Z' updated_at: '2026-08-14T09:15:24.470Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/7a6e468d9388ab4e6a785c543cc1784eb4d9d94e24a0231fa725abfa43acaccb/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:24.413Z' updated_at: '2026-08-14T09:15:24.413Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., Hierbij ontvangt u van ons een prijsopgave 2026-0001 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:24.478Z' updated_at: '2026-08-14T09:15:24.478Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorWhenSendingInvalidEstimateWithoutDetails: summary: Returns error when sending invalid estimate without details value: error: details cannot be empty symbolic: estimate: details_cannot_be_empty ReturnsAnErrorIfDeliveryMethodSimplerinvoicingIsGiven: summary: Returns an error if delivery method simplerinvoicing is given value: error: Delivery Method isn't an option symbolic: estimate_sending: delivery_method: in '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404IfTheEstimateDoesNotExist: summary: Returns 404 if the estimate does not exist value: error: record not found symbolic: id: not_found '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsErrorWhenSendingEstimateFromIdentityWithoutEmail: summary: Returns error when sending estimate from identity without email value: error: delivery_method: - The sender address must contain an email address details: delivery_method: - error: need_identity_email ReturnsErrorWhenSendingEstimateToContactWithoutEmailAddress: summary: Returns error when sending estimate to contact without email address value: error: email_address: - can't be blank details: email_address: - error: blank operationId: patch_administration_id_estimates_id_send_estimate /{administration_id}/estimates/{id}{format}: get: summary: Get an estimate by id description: |- Returns all information about an estimate. ### Required scope(s) `estimates` tags: - Estimates security: - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' - name: includes in: query required: false schema: type: array items: type: string responses: '200': description: A estimate content: application/json: schema: $ref: '#/components/schemas/estimate_response' examples: ReturnsEstimateByGivenId: summary: Returns estimate by given id value: id: '495430038243509600' administration_id: 123 contact_id: '495430038205760859' contact: id: '495430038205760859' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:24.733Z' updated_at: '2026-08-14T09:15:24.733Z' version: 1786698924 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '495430038209955165' contact_person: id: null contact_id: '495430038205760859' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:15:24.737Z' updated_at: '2026-08-14T09:15:24.737Z' version: 1786698924 estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:24.769Z' updated_at: '2026-08-14T09:15:24.824Z' public_view_code: '451151' public_view_code_expires_at: '2026-11-14T09:15:24.797Z' version: 1786698924 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430038245606753' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:24.771Z' updated_at: '2026-08-14T09:15:24.822Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/fe490a9b9f18e22ee8bbcb08b03b2e4cfa4a77e4921c1dd6c346e340a69d187a/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:24.776Z' updated_at: '2026-08-14T09:15:24.776Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com; janjanssen@dev.null.moneybird.net email_message: |- Geachte Jan Janssen, Hierbij ontvangt u van ons een prijsopgave 2026-0001 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:24.831Z' updated_at: '2026-08-14T09:15:24.831Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: RespondsWithA404CodeWhenEstimateDoesNotExist: summary: Responds with a 404 code when estimate does not exist value: error: record not found symbolic: id: not_found operationId: get_administration_id_estimates_id patch: summary: Updates an estimate description: |- When updating an estimate, provide only the attributes you want to update. The other attributes will not be changed. ### Required scope(s) `estimates` tags: - Estimates security: - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: estimate: type: object unevaluatedProperties: false properties: contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. contact_person_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact person id. update_contact: type: - boolean - string description: When `true`, the contact's address and other details are updated on the estimate from the current contact record. document_style_id: $ref: '#/components/schemas/identifier' description: Default document style is used when value is not provided. Should be a valid document style id. workflow_id: $ref: '#/components/schemas/identifier' description: If value is not provided, the workflow saved in the contact is used. If the contact doesn't have a default workflow, the administration's default workflow is used. Should be a valid workflow id. reference: type: string description: Your own reference for this estimate, e.g. a project code or PO number. Visible to the recipient. estimate_date: type: string description: The date of the estimate. format: date estimate_sequence_id: type: string description: The ID of the numbering sequence to use for the estimate number. remove_estimate_sequence_id: type: - boolean - string description: Set to `true` to remove the assigned numbering sequence, reverting to the administration default. language: type: string description: Can be `bg`, `cs`, `da`, `de`, `el`, `en`, `es`, `fr`, `hr`, `hu`, `it`, `no`, `nl`, `nl-be`, `pl`, `pt`, `ro`, `sv`, `tr` or `uk`. currency: type: string description: ISO three-character currency code, e.g. EUR or USD. prices_are_incl_tax: type: - boolean - string description: Whether the prices on the estimate are inclusive of tax. show_tax: type: - boolean - string description: Whether to show tax amounts on the estimate. first_due_interval: type: integer description: The number of days after the estimate date before the estimate expires. pre_text: type: string description: Introductory text displayed above the details on the estimate document. post_text: type: string description: Closing text displayed below the details on the estimate document. discount: $ref: '#/components/schemas/number' description: Discount percentage, e.g. 10,0%. Should be a number 0 <= *n* <= 100. original_sales_invoice_id: $ref: '#/components/schemas/identifier' description: The ID of the sales invoice this estimate was created from. details_attributes: $ref: '#/components/schemas/details_attributes' custom_fields_attributes: $ref: '#/components/schemas/custom_fields_attributes' required: [] required: [] examples: UpdatesTheDiscount: summary: Updates the discount value: estimate: reference: Updated Reference UpdatesEstimateDetails: summary: Updates estimate details value: estimate: details_attributes: '0': description: Detail description price: 99 amount: 1 tax_rate_id: 495429853078619260 ledger_account_id: 495429852896167040 '1': id: 495430032768895000 _destroy: true responses: '200': description: Estimate updated content: application/json: schema: $ref: '#/components/schemas/estimate_response' examples: UpdatesTheDiscount: summary: Updates the discount value: id: '495430032439642070' administration_id: 123 contact_id: '495430032400844753' contact: id: '495430032400844753' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:19.197Z' updated_at: '2026-08-14T09:15:19.197Z' version: 1786698919 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '495430032403990483' contact_person: id: null contact_id: '495430032400844753' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:15:19.201Z' updated_at: '2026-08-14T09:15:19.201Z' version: 1786698919 estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Updated Reference language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:19.234Z' updated_at: '2026-08-14T09:15:19.327Z' public_view_code: '297349' public_view_code_expires_at: '2026-11-14T09:15:19.261Z' version: 1786698919 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430032441739223' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:19.236Z' updated_at: '2026-08-14T09:15:19.287Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/4dcd668909d1e307fcd43a6865bda03e1bfbe4015f82af8ba24e08990c9caacc/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:19.241Z' updated_at: '2026-08-14T09:15:19.241Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com; janjanssen@dev.null.moneybird.net email_message: |- Geachte Jan Janssen, Hierbij ontvangt u van ons een prijsopgave 2026-0001 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:19.295Z' updated_at: '2026-08-14T09:15:19.295Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_updated link_entity_id: null link_entity_type: null data: reference: - Project X - Updated Reference updated_at: - '2026-08-14T11:15:19.288+02:00' - '2026-08-14T11:15:19.327+02:00' created_at: '2026-08-14T09:15:19.330Z' updated_at: '2026-08-14T09:15:19.330Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' UpdatesEstimateDetails: summary: Updates estimate details value: id: '495430032766797805' administration_id: 123 contact_id: '495430032728000488' contact: id: '495430032728000488' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:19.509Z' updated_at: '2026-08-14T09:15:19.509Z' version: 1786698919 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '495430032732194794' contact_person: id: null contact_id: '495430032728000488' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:15:19.513Z' updated_at: '2026-08-14T09:15:19.513Z' version: 1786698919 estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:19.546Z' updated_at: '2026-08-14T09:15:19.699Z' public_view_code: '633395' public_view_code_expires_at: '2026-11-14T09:15:19.574Z' version: 1786698919 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430032925132786' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: '1' amount_decimal: '1.0' description: Detail description price: '99.0' period: null row_order: 0 total_price_excl_tax_with_discount: '99.0' total_price_excl_tax_with_discount_base: '99.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:19.697Z' updated_at: '2026-08-14T09:15:19.697Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '99.0' total_price_excl_tax_base: '99.0' total_price_incl_tax: '119.79' total_price_incl_tax_base: '119.79' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/69e40a12e33f289c60809c85a8bc19f342c5421ef1e9bf05a50859be2c496c3e/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:19.553Z' updated_at: '2026-08-14T09:15:19.553Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com; janjanssen@dev.null.moneybird.net email_message: |- Geachte Jan Janssen, Hierbij ontvangt u van ons een prijsopgave 2026-0001 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:19.610Z' updated_at: '2026-08-14T09:15:19.610Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_updated link_entity_id: null link_entity_type: null data: total_price_excl_tax: - '300.0' - '99.0' total_price_excl_tax_base: - '300.0' - '99.0' total_price_incl_tax: - '363.0' - '119.79' total_price_incl_tax_base: - '363.0' - '119.79' cached_taxes: - - tax_rate_id: '495429853078619274' report_reference: NL/1a payable: true debit: 0 credit: '63.0' - - tax_rate_id: '495429853078619274' report_reference: NL/1a payable: true debit: 0 credit: '20.79' updated_at: - '2026-08-14T11:15:19.603+02:00' - '2026-08-14T11:15:19.691+02:00' created_at: '2026-08-14T09:15:19.700Z' updated_at: '2026-08-14T09:15:19.700Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '99.0' taxable_amount_base: '99.0' tax_amount: '20.79' tax_amount_base: '20.79' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400IfTheUpdateIsInvalid: summary: Returns 400 if the update is invalid value: error: Estimate can't be nil symbolic: estimate: nils '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: RespondsWithA404CodeWhenEstimateDoesNotExist: summary: Responds with a 404 code when estimate does not exist value: error: record not found symbolic: id: not_found '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422IfTheUpdateIsInvalid: summary: Returns 422 if the update is invalid value: error: language: - is not included in the list details: language: - error: inclusion value: abracadabra operationId: patch_administration_id_estimates_id delete: summary: Deletes an estimate description: |- Deletes an estimate. ### Required scope(s) `estimates` tags: - Estimates security: - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Estimate deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404IfTheEstimateDoesNotExist: summary: Returns 404 if the estimate does not exist value: error: record not found symbolic: id: not_found operationId: delete_administration_id_estimates_id /{administration_id}/estimates{format}: get: summary: List all estimates description: |- Returns a paginated list of estimates in the administration. ### Required scope(s) `estimates` tags: - Estimates security: - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: |- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:all`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | --- | --- | --- | --- | | state | `String` | `all` | `all`, `draft`, `open`, `late`, `accepted`, `rejected`, `billed` or `archived` | | period | `String` | `this_year` | This can either be the description of a period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom period (`201301..201302`, `20130101..20130131`) | | contact_id | `Integer` | | Filters estimates by a single contact | | workflow_id | `Integer` | | Filters estimates by a single workflow | You can filter by multiple states at the same time as well. To do this, separate the state values by a pipe: `state:draft|scheduled`. schema: type: string default: period:this_year examples: ReturnsAllEstimatesFilteredOnPeriod: summary: Returns all estimates filtered on period value: period:this_month ReturnsAllEstimatesFilteredOnState: summary: Returns all estimates filtered on state value: state:open - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: A list of estimates content: application/json: schema: type: array items: $ref: '#/components/schemas/estimate_response' examples: ReturnsPaginatedEstimatesOnPage2: summary: Returns paginated estimates on page 2 value: - id: '495430029029672730' administration_id: 123 contact_id: '495430028784305932' contact: id: '495430028784305932' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:15.748Z' updated_at: '2026-08-14T09:15:15.748Z' version: 1786698915 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null estimate_id: 2026-0003 estimate_sequence_id: '0003' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:15.982Z' updated_at: '2026-08-14T09:15:16.035Z' public_view_code: '602980' public_view_code_expires_at: '2026-11-14T09:15:16.009Z' version: 1786698916 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430029031769883' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:15.984Z' updated_at: '2026-08-14T09:15:16.033Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/16271a49ae97f49c1e4e0b294b43bae9d3995caa55a7ab383560dd181c59354d/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:15.989Z' updated_at: '2026-08-14T09:15:15.989Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., Hierbij ontvangt u van ons een prijsopgave 2026-0003 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:16.042Z' updated_at: '2026-08-14T09:15:16.042Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' ReturnsAllEstimatesOfAnAdministration: summary: Returns all estimates of an administration value: - id: '495430029600098104' administration_id: 123 contact_id: '495430029275039526' contact: id: '495430029275039526' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:16.216Z' updated_at: '2026-08-14T09:15:16.216Z' version: 1786698916 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null estimate_id: 2026-0004 estimate_sequence_id: '0004' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:16.527Z' updated_at: '2026-08-14T09:15:16.578Z' public_view_code: '396857' public_view_code_expires_at: '2026-11-14T09:15:16.553Z' version: 1786698916 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430029602195257' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:16.529Z' updated_at: '2026-08-14T09:15:16.576Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/6ed37f5a509a94f843ad15931d0a8353955ce8917128cd50c9500e3d0be7a750/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:16.533Z' updated_at: '2026-08-14T09:15:16.533Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., Hierbij ontvangt u van ons een prijsopgave 2026-0004 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:16.584Z' updated_at: '2026-08-14T09:15:16.584Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '495430029505726260' administration_id: 123 contact_id: '495430029275039526' contact: id: '495430029275039526' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:16.216Z' updated_at: '2026-08-14T09:15:16.216Z' version: 1786698916 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null estimate_id: 2026-0003 estimate_sequence_id: '0003' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:16.436Z' updated_at: '2026-08-14T09:15:16.488Z' public_view_code: '710554' public_view_code_expires_at: '2026-11-14T09:15:16.463Z' version: 1786698916 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430029507823413' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:16.438Z' updated_at: '2026-08-14T09:15:16.487Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/542e4f49a33349e8fbe0264409e0649de3e5778a8d0e842077a8652da0a8e0d9/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:16.443Z' updated_at: '2026-08-14T09:15:16.443Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., Hierbij ontvangt u van ons een prijsopgave 2026-0003 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:16.495Z' updated_at: '2026-08-14T09:15:16.495Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '495430029410305840' administration_id: 123 contact_id: '495430029275039526' contact: id: '495430029275039526' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:16.216Z' updated_at: '2026-08-14T09:15:16.216Z' version: 1786698916 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null estimate_id: 2026-0002 estimate_sequence_id: '0002' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:16.345Z' updated_at: '2026-08-14T09:15:16.397Z' public_view_code: '893437' public_view_code_expires_at: '2026-11-14T09:15:16.371Z' version: 1786698916 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430029412402993' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:16.347Z' updated_at: '2026-08-14T09:15:16.396Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/d6b01bccdd447699b347dae10256ffa561c4cf696d963c6fc0783d4150d649c5/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:16.351Z' updated_at: '2026-08-14T09:15:16.351Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., Hierbij ontvangt u van ons een prijsopgave 2026-0002 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:16.404Z' updated_at: '2026-08-14T09:15:16.404Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '495430029313836843' administration_id: 123 contact_id: '495430029275039526' contact: id: '495430029275039526' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:16.216Z' updated_at: '2026-08-14T09:15:16.216Z' version: 1786698916 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '495430029279233832' contact_person: id: null contact_id: '495430029275039526' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:15:16.220Z' updated_at: '2026-08-14T09:15:16.220Z' version: 1786698916 estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:16.253Z' updated_at: '2026-08-14T09:15:16.307Z' public_view_code: '883229' public_view_code_expires_at: '2026-11-14T09:15:16.280Z' version: 1786698916 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430029315933996' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:16.255Z' updated_at: '2026-08-14T09:15:16.306Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/0f8816282792555006c969f83bbfd8d2d65deb1d9a9bbedfe8bd43f0b23d2ea3/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:16.259Z' updated_at: '2026-08-14T09:15:16.259Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com; janjanssen@dev.null.moneybird.net email_message: |- Geachte Jan Janssen, Hierbij ontvangt u van ons een prijsopgave 2026-0001 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:16.314Z' updated_at: '2026-08-14T09:15:16.314Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' ReturnsAllEstimatesFilteredOnPeriod: summary: Returns all estimates filtered on period value: - id: '495430030120191826' administration_id: 123 contact_id: '495430029776258880' contact: id: '495430029776258880' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:16.694Z' updated_at: '2026-08-14T09:15:16.694Z' version: 1786698916 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null estimate_id: 2026-0004 estimate_sequence_id: '0004' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:17.022Z' updated_at: '2026-08-14T09:15:17.075Z' public_view_code: '906150' public_view_code_expires_at: '2026-11-14T09:15:17.049Z' version: 1786698917 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430030122288979' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:17.024Z' updated_at: '2026-08-14T09:15:17.073Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/bb5f7e3bd5829013b913e4f969742c6bc2eb57e4df36582f7158837ecb05772e/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:17.028Z' updated_at: '2026-08-14T09:15:17.028Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., Hierbij ontvangt u van ons een prijsopgave 2026-0004 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:17.081Z' updated_at: '2026-08-14T09:15:17.081Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '495430030022674254' administration_id: 123 contact_id: '495430029776258880' contact: id: '495430029776258880' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:16.694Z' updated_at: '2026-08-14T09:15:16.694Z' version: 1786698916 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null estimate_id: 2026-0003 estimate_sequence_id: '0003' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:16.929Z' updated_at: '2026-08-14T09:15:16.983Z' public_view_code: '661279' public_view_code_expires_at: '2026-11-14T09:15:16.957Z' version: 1786698916 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430030024771407' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:16.931Z' updated_at: '2026-08-14T09:15:16.982Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/e3f66e3ffa0aaec54fcd4953d3df7f0bca32aaf94b0e8f6340754905eaaed7b0/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:16.936Z' updated_at: '2026-08-14T09:15:16.936Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., Hierbij ontvangt u van ons een prijsopgave 2026-0003 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:16.990Z' updated_at: '2026-08-14T09:15:16.990Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '495430029924108106' administration_id: 123 contact_id: '495430029776258880' contact: id: '495430029776258880' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:16.694Z' updated_at: '2026-08-14T09:15:16.694Z' version: 1786698916 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null estimate_id: 2026-0002 estimate_sequence_id: '0002' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:16.835Z' updated_at: '2026-08-14T09:15:16.890Z' public_view_code: '685708' public_view_code_expires_at: '2026-11-14T09:15:16.864Z' version: 1786698916 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430029926205259' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:16.837Z' updated_at: '2026-08-14T09:15:16.888Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/221fe4b2cff22dc718a6b010e2b1e6a02925dd4d499b142b94aa9aa4074883cf/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:16.842Z' updated_at: '2026-08-14T09:15:16.842Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., Hierbij ontvangt u van ons een prijsopgave 2026-0002 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:16.897Z' updated_at: '2026-08-14T09:15:16.897Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '495430029816104773' administration_id: 123 contact_id: '495430029776258880' contact: id: '495430029776258880' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:16.694Z' updated_at: '2026-08-14T09:15:16.694Z' version: 1786698916 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '495430029779404610' contact_person: id: null contact_id: '495430029776258880' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:15:16.698Z' updated_at: '2026-08-14T09:15:16.698Z' version: 1786698916 estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:16.732Z' updated_at: '2026-08-14T09:15:16.795Z' public_view_code: '189883' public_view_code_expires_at: '2026-11-14T09:15:16.765Z' version: 1786698916 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430029819250502' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:16.735Z' updated_at: '2026-08-14T09:15:16.793Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/4c5e3c0d43d813b676e843b5dad855ef176450812498075bce9e2af82c54a128/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:16.741Z' updated_at: '2026-08-14T09:15:16.741Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com; janjanssen@dev.null.moneybird.net email_message: |- Geachte Jan Janssen, Hierbij ontvangt u van ons een prijsopgave 2026-0001 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:16.802Z' updated_at: '2026-08-14T09:15:16.802Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' ReturnsAllEstimatesFilteredOnState: summary: Returns all estimates filtered on state value: - id: '495430030663354220' administration_id: 123 contact_id: '495430030295304026' contact: id: '495430030295304026' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:17.189Z' updated_at: '2026-08-14T09:15:17.189Z' version: 1786698917 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null estimate_id: 2026-0004 estimate_sequence_id: '0004' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:17.540Z' updated_at: '2026-08-14T09:15:17.596Z' public_view_code: '034169' public_view_code_expires_at: '2026-11-14T09:15:17.568Z' version: 1786698917 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430030665451373' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:17.542Z' updated_at: '2026-08-14T09:15:17.595Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/e8fb722606d63226bb4d7f0bd7578d8fee8ba5e96d8d9a125fb0283d262d949a/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:17.547Z' updated_at: '2026-08-14T09:15:17.547Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., Hierbij ontvangt u van ons een prijsopgave 2026-0004 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:17.603Z' updated_at: '2026-08-14T09:15:17.603Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '495430030562690920' administration_id: 123 contact_id: '495430030295304026' contact: id: '495430030295304026' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:17.189Z' updated_at: '2026-08-14T09:15:17.189Z' version: 1786698917 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null estimate_id: 2026-0003 estimate_sequence_id: '0003' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:17.444Z' updated_at: '2026-08-14T09:15:17.500Z' public_view_code: '447554' public_view_code_expires_at: '2026-11-14T09:15:17.473Z' version: 1786698917 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430030564788073' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:17.446Z' updated_at: '2026-08-14T09:15:17.499Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/ce920db723707e90bfe001721882647e21546d5c18dcbcb1ee1d755953f61a34/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:17.450Z' updated_at: '2026-08-14T09:15:17.450Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., Hierbij ontvangt u van ons een prijsopgave 2026-0003 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:17.507Z' updated_at: '2026-08-14T09:15:17.507Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '495430030431618916' administration_id: 123 contact_id: '495430030295304026' contact: id: '495430030295304026' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:17.189Z' updated_at: '2026-08-14T09:15:17.189Z' version: 1786698917 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null estimate_id: 2026-0002 estimate_sequence_id: '0002' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:17.319Z' updated_at: '2026-08-14T09:15:17.399Z' public_view_code: '607348' public_view_code_expires_at: '2026-11-14T09:15:17.345Z' version: 1786698917 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430030432667493' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:17.321Z' updated_at: '2026-08-14T09:15:17.369Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/4f3e4361ac48d3dc05a5ad30b289f6f3078a090fec87647534e1fe27ef937a1d/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:17.325Z' updated_at: '2026-08-14T09:15:17.325Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., Hierbij ontvangt u van ons een prijsopgave 2026-0002 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:17.407Z' updated_at: '2026-08-14T09:15:17.407Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '495430030333052767' administration_id: 123 contact_id: '495430030295304026' contact: id: '495430030295304026' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:17.189Z' updated_at: '2026-08-14T09:15:17.189Z' version: 1786698917 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '495430030298449756' contact_person: id: null contact_id: '495430030295304026' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:15:17.193Z' updated_at: '2026-08-14T09:15:17.193Z' version: 1786698917 estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:17.225Z' updated_at: '2026-08-14T09:15:17.280Z' public_view_code: '386904' public_view_code_expires_at: '2026-11-14T09:15:17.253Z' version: 1786698917 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430030335149920' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:17.227Z' updated_at: '2026-08-14T09:15:17.279Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/d6179eba10bbc87d78cd347b114d3f1270c23c6ba35ac19d5ac23d505254445e/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:17.232Z' updated_at: '2026-08-14T09:15:17.232Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com; janjanssen@dev.null.moneybird.net email_message: |- Geachte Jan Janssen, Hierbij ontvangt u van ons een prijsopgave 2026-0001 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:17.287Z' updated_at: '2026-08-14T09:15:17.287Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' ReturnsPaginatedEstimatesOnPage1: summary: Returns paginated estimates on page 1 value: - id: '495430031681521568' administration_id: 123 contact_id: '495430031343880078' contact: id: '495430031343880078' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:18.189Z' updated_at: '2026-08-14T09:15:18.189Z' version: 1786698918 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null estimate_id: 2026-0004 estimate_sequence_id: '0004' workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open estimate_date: '2026-08-14' due_date: '2026-08-28' reference: Project X language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: '2026-08-14' accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:18.511Z' updated_at: '2026-08-14T09:15:18.564Z' public_view_code: '988847' public_view_code_expires_at: '2026-11-14T09:15:18.538Z' version: 1786698918 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '495430031683618721' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:18.513Z' updated_at: '2026-08-14T09:15:18.563Z' is_optional: false is_selected: true prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/fa29780da46fd4ea0785ed96bf9f04d7ec28388ab59ba0b265c03084b060d8cd/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:18.517Z' updated_at: '2026-08-14T09:15:18.517Z' - administration_id: 123 user_id: '495429852315255909' action: estimate_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., Hierbij ontvangt u van ons een prijsopgave 2026-0004 voor onze diensten. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:18.571Z' updated_at: '2026-08-14T09:15:18.571Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenTooManyEstimatesAreRequested: summary: Returns an error when too many estimates are requested value: error: per_page does not have a valid value operationId: get_administration_id_estimates post: summary: Creates a new estimate description: |- Creates a new estimate. ### Required scope(s) `estimates` tags: - Estimates security: - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: estimate: type: object unevaluatedProperties: false properties: contact_id: type: - integer - string description: Should be a valid contact id. contact_person_id: type: - integer - string description: Should be a valid contact person id. document_style_id: type: - integer - string description: Default document style is used when value is not provided. Should be a valid document style id. workflow_id: type: - integer - string description: If value is not provided, the workflow saved in the contact is used. If the contact doesn't have a default workflow, the administration's default workflow is used. Should be a valid workflow id. reference: type: string description: Your own reference for this estimate, e.g. a project code or PO number. Visible to the recipient. estimate_date: type: string description: The date of the estimate. Defaults to the current date. format: date estimate_sequence_id: type: string description: The ID of the numbering sequence to use for the estimate number. If not provided, the administration default is used. remove_estimate_sequence_id: type: - boolean - string description: Set to `true` to remove the assigned numbering sequence, reverting to the administration default. language: type: string description: Can be `bg`, `cs`, `da`, `de`, `el`, `en`, `es`, `fr`, `hr`, `hu`, `it`, `no`, `nl`, `nl-be`, `pl`, `pt`, `ro`, `sv`, `tr` or `uk`. currency: type: string description: ISO three-character currency code, e.g. EUR or USD. Defaults to the workflow's currency. prices_are_incl_tax: type: - boolean - string description: Whether the prices on the estimate are inclusive of tax. Defaults to the workflow's setting. show_tax: type: - boolean - string description: Whether to show tax amounts on the estimate. Useful for non-VAT registered businesses or tax-exempt clients. Defaults to the workflow's setting. first_due_interval: type: - integer - string description: The number of days after the estimate date before the estimate expires. Defaults to the first workflow step's due interval. pre_text: type: string description: Introductory text displayed above the details on the estimate document. Defaults to the workflow's pre-text. post_text: type: string description: Closing text displayed below the details on the estimate document. Defaults to the workflow's post-text. discount: $ref: '#/components/schemas/number' description: Discount percentage, e.g. 10,0%. Should be a number 0 <= *n* <= 100. original_sales_invoice_id: $ref: '#/components/schemas/identifier' description: The ID of the sales invoice this estimate was created from (e.g. for credit notes or revised estimates). details_attributes: $ref: '#/components/schemas/details_attributes' custom_fields_attributes: $ref: '#/components/schemas/custom_fields_attributes' required: [] required: [] examples: CreatesANewEstimate: summary: Creates a new estimate value: estimate: contact_id: 495430041391334900 reference: Estimate Reference responses: '201': description: Estimate created content: application/json: schema: $ref: '#/components/schemas/estimate_response' examples: CreatesANewEstimate: summary: Creates a new estimate value: id: '495430041529746933' administration_id: 123 contact_id: '495430041391334891' contact: id: '495430041391334891' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:27.771Z' updated_at: '2026-08-14T09:15:27.771Z' version: 1786698927 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: - id: '495430041395529197' contact_id: '495430041391334891' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:15:27.775Z' updated_at: '2026-08-14T09:15:27.775Z' version: 1786698927 archived: false contact_person_id: null contact_person: null estimate_id: null estimate_sequence_id: null workflow_id: '495429853572498581' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: 2 state: draft estimate_date: null due_date: '2026-08-28' reference: Estimate Reference language: nl currency: EUR exchange_rate: '1.0' discount: '0.0' original_estimate_id: null show_tax: true sign_online: true sent_at: null accepted_at: null rejected_at: null archived_at: null created_at: '2026-08-14T09:15:27.903Z' updated_at: '2026-08-14T09:15:27.903Z' public_view_code: null public_view_code_expires_at: null version: 1786698927 pre_text: |- Geachte {recipient.name}, Hierbij ontvangt u van ons de prijsopgave {document.estimate_id} voor de onderstaande diensten. post_text: |- We hopen u hiermee voldoende geïnformeerd te hebben. Met vriendelijke groet, {company.company_name} details: [] prices_are_incl_tax: false total_price_excl_tax: '0.0' total_price_excl_tax_base: '0.0' total_price_incl_tax: '0.0' total_price_incl_tax_base: '0.0' total_discount: 0 url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/43196e762fbb5eefed771e9f03d392af5bb703a6acc517e5160ef47835aff68b/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:27.907Z' updated_at: '2026-08-14T09:15:27.907Z' tax_totals: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400IfTheCreationIsInvalid: summary: Returns 400 if the creation is invalid value: error: Estimate can't be nil symbolic: estimate: nils '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422IfTheCreationIsInvalid: summary: Returns 422 if the creation is invalid value: error: contact_id: - can't be blank language: - is not included in the list details: contact_id: - error: blank language: - error: inclusion value: abracadabra operationId: post_administration_id_estimates /{administration_id}/external_sales_invoices/attachment{format}: post: summary: Create external sales invoice from attachment description: |- Creates an external sales invoice from an attachment. ### Required scope(s) `sales_invoices` tags: - External sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: multipart/form-data: schema: type: object properties: file: type: string format: binary responses: '200': $ref: '#/components/responses/status_code' '400': $ref: '#/components/responses/400_bad_request' operationId: post_administration_id_external_sales_invoices_attachment /{administration_id}/external_sales_invoices/synchronization{format}: get: summary: List all ids and versions description: |- Returns all external sales invoices in the administration. The list contains the id and the version of the external sales invoice. Check if the version of an external sales invoice is newer than the version you have stored locally, use the `POST` variant for fetching external sales invoices with the given ids. ### Required scope(s) `sales_invoices` tags: - External sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: |- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:all`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | --- | --- | --- | --- | | state | `String` | `all` | `all`, `new`, `open`, `late`, or `paid` | | period | `String` | `this_year` | This can either be the description of a period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom period (`201301..201302`, `20130101..20130131`) | | contact_id | `Integer` | | Select invoices belonging to a certain contact | You can filter by multiple states at the same time as well. To do this, separate the state values by a pipe: `state:new|open`. schema: type: string default: period:this_year examples: RetrievesTheIdsForSynchronizationWithAFilter: summary: Retrieves the ids for synchronization with a filter value: state:open responses: '200': description: IDs and versions of records content: application/json: schema: type: array items: type: object unevaluatedProperties: false properties: id: type: - integer - string version: type: - integer - string examples: RetrievesTheIdsForSynchronization: summary: Retrieves the ids for synchronization value: - id: '495429960490550827' version: 1786698850 - id: '495429960507328047' version: 1786698850 - id: '495429960524105267' version: 1786698850 - id: '495429960531445301' version: 1786698850 RetrievesTheIdsForSynchronizationWithAFilter: summary: Retrieves the ids for synchronization with a filter value: - id: '495429960566048312' version: 1786698850 - id: '495429960583874108' version: 1786698850 - id: '495429960599602752' version: 1786698850 ReturnsUniqueIdsEvenWhenSalesInvoicesHaveMultipleAttachments: summary: Returns unique ids even when sales invoices have multiple attachments value: - id: '495429960642594373' version: 1786698850 - id: '495429960659371593' version: 1786698850 - id: '495429960675100237' version: 1786698850 operationId: get_administration_id_external_sales_invoices_synchronization post: summary: Fetch external sales invoices with given ids x-query: true description: |- Given a list of external sales invoice ids, returns the external sales invoice information belonging to the external sales invoice. Returns a maximum of 100 external sales invoices, even if more ids are provided. ### Required scope(s) `sales_invoices` tags: - External sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: ids: type: array items: type: - integer - string required: - ids examples: RetrievesSalesInvoicesGivenByIds: summary: Retrieves sales invoices given by ids value: ids: - 495429956870866300 - 495429956887643500 responses: '200': description: A list of external sales invoices content: application/json: schema: type: array items: $ref: '#/components/schemas/external_sales_invoice_response' examples: RetrievesSalesInvoicesGivenByIds: summary: Retrieves sales invoices given by ids value: - id: '495429956887643500' administration_id: 123 contact_id: '495429956880303467' contact: id: '495429956880303467' administration_id: 123 company_name: Relation 3 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-3 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:07.175Z' updated_at: '2026-08-14T09:14:07.175Z' version: 1786698847 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000003/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-08-14' state: open due_date: null reference: Invoice 3 entry_number: 103 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:07.182Z' updated_at: '2026-08-14T09:14:07.186Z' version: 1786698847 details: - id: '495429956889740653' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Invoice detail description price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '100.0' total_price_excl_tax_with_discount_base: '100.0' tax_report_reference: [] mandatory_tax_text: null created_at: '2026-08-14T09:14:07.184Z' updated_at: '2026-08-14T09:14:07.184Z' payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: [] tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' - id: '495429956870866280' administration_id: 123 contact_id: '495429956862477671' contact: id: '495429956862477671' administration_id: 123 company_name: Relation 2 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-2 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:07.158Z' updated_at: '2026-08-14T09:14:07.158Z' version: 1786698847 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-08-14' state: open due_date: null reference: Invoice 2 entry_number: 102 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:07.166Z' updated_at: '2026-08-14T09:14:07.169Z' version: 1786698847 details: - id: '495429956871914857' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Invoice detail description price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '100.0' total_price_excl_tax_with_discount_base: '100.0' tax_report_reference: [] mandatory_tax_text: null created_at: '2026-08-14T09:14:07.168Z' updated_at: '2026-08-14T09:14:07.168Z' payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: [] tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' '400': $ref: '#/components/responses/400_bad_request' operationId: post_administration_id_external_sales_invoices_synchronization /{administration_id}/external_sales_invoices/{external_sales_invoice_id}/attachments/{id}/download{format}: get: summary: Download attachment description: |- Download the attachment. The response will be a redirect to a temporarily available URL where the attachment can be downloaded. Use the `Location` header in the response to download the attachment. ### Required scope(s) `sales_invoices` tags: - External sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: external_sales_invoice_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '302': description: Found content: text/plain: schema: type: string examples: DownloadsTheAttachment: summary: Downloads the attachment value: | Use the Location header to download the attachment '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTheAttachmentDoesNotExist: summary: Returns 404 when the attachment does not exist value: error: 'Record not found for model name: Attachment' operationId: get_administration_id_external_sales_invoices_external_sales_invoice_id_attachments_id_download /{administration_id}/external_sales_invoices/{external_sales_invoice_id}/attachments/{id}{format}: delete: summary: Delete an attachment description: |- Deletes an attachment of an attachable. ### Required scope(s) `sales_invoices` tags: - External sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: external_sales_invoice_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Attachment deleted '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_external_sales_invoices_external_sales_invoice_id_attachments_id /{administration_id}/external_sales_invoices/{external_sales_invoice_id}/notes/{id}{format}: delete: summary: Destroys note from entity description: |- Deletes a note from the external sales invoice ### Required scope(s) `sales_invoices` tags: - External sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: external_sales_invoice_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Note deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenInvoiceDoesNotExist: summary: Returns 404 when invoice does not exist value: error: record not found symbolic: id: not_found operationId: delete_administration_id_external_sales_invoices_external_sales_invoice_id_notes_id /{administration_id}/external_sales_invoices/{external_sales_invoice_id}/notes{format}: post: summary: Adds note to entity description: |- Adds a note to the external sales invoice. ### Required scope(s) `sales_invoices` tags: - External sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: external_sales_invoice_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: note: type: object unevaluatedProperties: false properties: note: type: string description: '**Required**. Text for the note or to-do.' todo: type: - boolean - string description: If `true` the note is a to-do. assignee_id: type: - integer - string description: Assign to-do to user. Should be a valid user id. If assignee_id is provided the note will be a to-do. required: [] required: [] examples: CreateANote: summary: Create a note value: note: note: Text of the note assignee_id: 495429960919418500 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '495429960938292841' administration_id: 123 entity_id: '495429960911029861' entity_type: ExternalSalesInvoice user_id: '495429852315255909' assignee_id: '495429960919418471' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-08-14T09:14:11.045Z' updated_at: '2026-08-14T09:14:11.045Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenInvoiceDoesNotExist: summary: Returns 400 when invoice does not exist value: error: Entity is invalid; User has no permissions to notes for ExternalSalesInvoice symbolic: entity: not_found user: insufficient_permissions '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenNoteParamsAreInvalid: summary: Returns 422 when note params are invalid value: error: note: - can't be blank todo_type: - can't be blank details: note: - error: blank todo_type: - error: blank operationId: post_administration_id_external_sales_invoices_external_sales_invoice_id_notes /{administration_id}/external_sales_invoices/{external_sales_invoice_id}/payments/{id}{format}: delete: summary: Delete a payment description: |- Deletes a payment from an external sales invoice. ### Required scope(s) `sales_invoices` tags: - External sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: external_sales_invoice_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Payment deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenPaymentDoesNotExist: summary: Returns 404 when payment does not exist value: error: record not found symbolic: id: not_found operationId: delete_administration_id_external_sales_invoices_external_sales_invoice_id_payments_id /{administration_id}/external_sales_invoices/{external_sales_invoice_id}/payments{format}: post: summary: Create a payment description: |- Registers a payment for a external sales invoice. ### Required scope(s) `sales_invoices` tags: - External sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: external_sales_invoice_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: payment: type: object unevaluatedProperties: false properties: payment_date: type: string description: The date on which the payment was made. price: $ref: '#/components/schemas/number' description: The amount paid in the document's currency. Both a decimal and a string '10,95' are accepted. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. price_base: $ref: '#/components/schemas/number' description: Amount paid expressed in the base currency of the administration. Required when the document uses a different currency than the administration's base currency. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. financial_account_id: $ref: '#/components/schemas/identifier' description: The ID of the financial account (bank account or cash register) associated with this payment. Required for `private_payment` and `cash_payment` actions. Should be a valid financial account id. financial_mutation_id: $ref: '#/components/schemas/identifier' description: The ID of the bank transaction to link this payment to. Required for `bank_transfer` actions. Should be a valid financial mutation id. transaction_identifier: type: string description: An external transaction reference, e.g. a bank transaction ID or PSP reference. Used to match the payment with financial mutations. manual_payment_action: type: string description: Can be `private_payment` (needs financial_account_id), `payment_without_proof`, `cash_payment` (needs financial_account_id), `rounding_error`, `bank_transfer` (needs financial_mutation_id), `balance_settlement` (needs ledger_account_id) or `invoices_settlement` (needs invoice_id). ledger_account_id: $ref: '#/components/schemas/identifier' description: The ID of the ledger account to book this payment to. Required for `balance_settlement` actions. Should be a valid ledger account id. invoice_id: $ref: '#/components/schemas/identifier' description: The ID of the document to settle this payment against. Required for `invoices_settlement` actions. Should be a valid document id (sales invoice, purchase invoice, receipt, etc.). required: - payment_date - price required: [] examples: CreateAPayment: summary: Create a payment value: payment: payment_date: '2026-08-14T09:14:11.519Z' price: '121.0' responses: '201': description: Payment created content: application/json: schema: $ref: '#/components/schemas/payment_response' examples: CreateAPayment: summary: Create a payment value: id: '495429961447900831' administration_id: 123 invoice_type: ExternalSalesInvoice invoice_id: '495429961429026461' financial_account_id: null user_id: '495429852315255909' payment_transaction_id: null transaction_identifier: null price: '121.0' price_base: '121.0' payment_date: '2026-08-14' credit_invoice_id: null financial_mutation_id: null ledger_account_id: '495429852926575747' linked_payment_id: null manual_payment_action: null created_at: '2026-08-14T09:14:11.531Z' updated_at: '2026-08-14T09:14:11.531Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenInvoiceDoesNotExist: summary: Returns 404 when invoice does not exist value: error: record not found symbolic: invoice_id: not_found '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenPaymentParamsAreInvalid: summary: Returns 422 when payment params are invalid value: error: payment_date: - can't be blank - is not a valid date price: - can't be blank - is not a number details: payment_date: - error: blank - error: is not a valid date price: - error: blank - error: not_a_number value: null operationId: post_administration_id_external_sales_invoices_external_sales_invoice_id_payments /{administration_id}/external_sales_invoices/{id}/attachment{format}: post: summary: Add attachment to external sales invoice description: |- Add an attachment to an external sales invoice. ### Required scope(s) `sales_invoices` tags: - External sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: multipart/form-data: schema: type: object properties: file: type: string format: binary responses: '200': $ref: '#/components/responses/status_code' '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' operationId: post_administration_id_external_sales_invoices_id_attachment /{administration_id}/external_sales_invoices/{id}/mark_as_dubious{format}: patch: summary: Mark as dubious description: |- This endpoint marks an external sales invoice as dubious. ### Required scope(s) `sales_invoices` tags: - External sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: dubious_date: type: string format: date required: [] examples: MarksTheExternalSalesInvoiceAsDubious: summary: Marks the external sales invoice as dubious value: {} responses: '200': description: External sales invoice updated content: application/json: schema: $ref: '#/components/schemas/external_sales_invoice_response' examples: MarksTheExternalSalesInvoiceAsDubious: summary: Marks the external sales invoice as dubious value: id: '495429955693315289' administration_id: 123 contact_id: '495429955682829528' contact: id: '495429955682829528' administration_id: 123 company_name: Relation 1 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:06.033Z' updated_at: '2026-08-14T09:14:06.033Z' version: 1786698846 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-05-16' state: open due_date: null reference: Invoice 1 entry_number: 101 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:06.043Z' updated_at: '2026-08-14T09:14:06.261Z' version: 1786698846 details: - id: '495429955695412442' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Invoice detail description price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '100.0' total_price_excl_tax_with_discount_base: '100.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:06.045Z' updated_at: '2026-08-14T09:14:06.045Z' payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: '2026-08-14' marked_uncollectible_on: null notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: external_sales_invoice_marked_as_dubious link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:06.264Z' updated_at: '2026-08-14T09:14:06.264Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenInvoiceCannotBeMarkedAsDubious: summary: Returns 400 when invoice cannot be marked as dubious value: error: Invoice should be open, late or due, not a credit invoice and cannot have an invoice date in the future symbolic: invoice: not_open '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenInvoiceDoesNotExist: summary: Returns 404 when invoice does not exist value: error: 'Record not found for model name: External invoice' operationId: patch_administration_id_external_sales_invoices_id_mark_as_dubious /{administration_id}/external_sales_invoices/{id}/mark_as_uncollectible{format}: patch: summary: Mark as uncollectible description: |- This endpoint marks an external sales invoice as uncollectible. ### Required scope(s) `sales_invoices` tags: - External sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: uncollectible_date: type: string format: date book_method: type: string description: Can be `revenue`. required: [] examples: MarksTheSalesInvoiceAsUncollectibleUsingTheUncollectibleRevenue: summary: Marks the sales invoice as uncollectible using the uncollectible revenue value: {} responses: '200': description: External sales invoice updated content: application/json: schema: $ref: '#/components/schemas/external_sales_invoice_response' examples: MarksTheSalesInvoiceAsUncollectibleUsingTheUncollectibleRevenue: summary: Marks the sales invoice as uncollectible using the uncollectible revenue value: id: '495429959019398562' administration_id: 123 contact_id: '495429959008912801' contact: id: '495429959008912801' administration_id: 123 company_name: Relation 1 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:09.205Z' updated_at: '2026-08-14T09:14:09.205Z' version: 1786698849 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-05-16' state: uncollectible due_date: null reference: Invoice 1 entry_number: 101 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:09.215Z' updated_at: '2026-08-14T09:14:09.602Z' version: 1786698849 details: - id: '495429959020447139' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Invoice detail description price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '100.0' total_price_excl_tax_with_discount_base: '100.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:09.217Z' updated_at: '2026-08-14T09:14:09.601Z' payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: '2026-08-14' notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: external_sales_invoice_state_changed_to_uncollectible link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:09.588Z' updated_at: '2026-08-14T09:14:09.588Z' - administration_id: 123 user_id: '495429852315255909' action: external_sales_invoice_marked_as_uncollectible link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:09.606Z' updated_at: '2026-08-14T09:14:09.606Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenInvoiceCannotBeMarkedAsUncollectible: summary: Returns 400 when invoice cannot be marked as uncollectible value: error: Sales invoice should be open, late or due, not a credit invoice and cannot have a invoice date in the future symbolic: invoice: not_open '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenInvoiceDoesNotExist: summary: Returns 404 when invoice does not exist value: error: 'Record not found for model name: External invoice' operationId: patch_administration_id_external_sales_invoices_id_mark_as_uncollectible /{administration_id}/external_sales_invoices/{id}{format}: get: summary: Get an external sales invoice by id description: |- Returns an external sales invoice in the administration. ### Required scope(s) `sales_invoices` tags: - External sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: An external sales invoice content: application/json: schema: $ref: '#/components/schemas/external_sales_invoice_response' examples: ReturnsInvoiceByGivenId: summary: Returns invoice by given id value: id: '495429960765277784' administration_id: 123 contact_id: '495429960755840599' contact: id: '495429960755840599' administration_id: 123 company_name: Relation 1 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:10.871Z' updated_at: '2026-08-14T09:14:10.871Z' version: 1786698850 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-08-14' state: open due_date: null reference: Invoice 1 entry_number: 101 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:10.880Z' updated_at: '2026-08-14T09:14:10.883Z' version: 1786698850 details: - id: '495429960766326361' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Invoice detail description price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '100.0' total_price_excl_tax_with_discount_base: '100.0' tax_report_reference: [] mandatory_tax_text: null created_at: '2026-08-14T09:14:10.882Z' updated_at: '2026-08-14T09:14:10.882Z' payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: [] tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenInvoiceDoesNotExist: summary: Returns 404 when invoice does not exist value: error: 'Record not found for model name: External invoice' operationId: get_administration_id_external_sales_invoices_id patch: summary: Update an external sales invoice description: |- When updating an external sales invoice, provide only the attributes you want to update. The other attributes will not be changed. ### Required scope(s) `sales_invoices` tags: - External sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: external_sales_invoice: type: object unevaluatedProperties: false properties: contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. reference: type: string description: The invoice number or reference from the external system that created this invoice, e.g. a webshop order ID. date: type: string description: The date of the invoice. format: date due_date: type: string description: The date by which the invoice should be paid. format: date currency: type: string description: ISO three-character currency code, e.g. EUR or USD. prices_are_incl_tax: type: - boolean - string description: Whether the prices on the invoice are inclusive of tax. source: type: string description: The name of the external system that created this invoice. source_url: type: string description: A URL linking back to the invoice in the external system. details_attributes: $ref: '#/components/schemas/details_attributes' required: [] required: [] examples: UpdatingTheInvoiceReference: summary: Updating the invoice reference value: external_sales_invoice: reference: '30053' AddingAndRemovingAnInvoiceDetail: summary: Adding and removing an invoice detail value: external_sales_invoice: details_attributes: - description: Sofa price: 199.99 - id: 495429961317877400 _destroy: true responses: '200': description: External sales invoice updated content: application/json: schema: $ref: '#/components/schemas/external_sales_invoice_response' examples: UpdatingTheInvoiceReference: summary: Updating the invoice reference value: id: '495429961142765177' administration_id: 123 contact_id: '495429961134376568' contact: id: '495429961134376568' administration_id: 123 company_name: Relation 1 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:11.232Z' updated_at: '2026-08-14T09:14:11.232Z' version: 1786698851 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-08-14' state: open due_date: null reference: '30053' entry_number: 1 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:11.241Z' updated_at: '2026-08-14T09:14:11.275Z' version: 1786698851 details: - id: '495429961144862330' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Invoice detail description price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '100.0' total_price_excl_tax_with_discount_base: '100.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:11.242Z' updated_at: '2026-08-14T09:14:11.274Z' payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: external_sales_invoice_updated link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:11.277Z' updated_at: '2026-08-14T09:14:11.277Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' AddingAndRemovingAnInvoiceDetail: summary: Adding and removing an invoice detail value: id: '495429961315780237' administration_id: 123 contact_id: '495429961307391628' contact: id: '495429961307391628' administration_id: 123 company_name: Relation 1 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:11.397Z' updated_at: '2026-08-14T09:14:11.397Z' version: 1786698851 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-08-14' state: open due_date: null reference: Invoice 1 entry_number: 1 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:11.406Z' updated_at: '2026-08-14T09:14:11.452Z' version: 1786698851 details: - id: '495429961362966160' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Sofa price: '199.99' period: null row_order: 0 total_price_excl_tax_with_discount: '199.99' total_price_excl_tax_with_discount_base: '199.99' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:11.450Z' updated_at: '2026-08-14T09:14:11.450Z' payments: [] total_paid: '0.0' total_unpaid: '241.99' total_unpaid_base: '241.99' prices_are_incl_tax: false total_price_excl_tax: '199.99' total_price_excl_tax_base: '199.99' total_price_incl_tax: '241.99' total_price_incl_tax_base: '241.99' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: external_sales_invoice_updated link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:11.454Z' updated_at: '2026-08-14T09:14:11.454Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '199.99' taxable_amount_base: '199.99' tax_amount: '42.0' tax_amount_base: '42.0' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenInvoiceDoesNotExist: summary: Returns 404 when invoice does not exist value: error: record not found symbolic: id: not_found '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenUpdateParamsAreInvalid: summary: Returns 422 when update params are invalid value: error: reference: - can't be blank details: reference: - error: blank operationId: patch_administration_id_external_sales_invoices_id delete: summary: Delete an external sales invoice description: |- Deletes an external sales invoice. ### Required scope(s) `sales_invoices` tags: - External sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: External sales invoice deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenInvoiceDoesNotExist: summary: Returns 404 when invoice does not exist value: error: record not found symbolic: id: not_found operationId: delete_administration_id_external_sales_invoices_id /{administration_id}/external_sales_invoices{format}: get: summary: List all external invoices description: |- Returns a paginated list of external sales invoices in the administration. ### Required scope(s) `sales_invoices` tags: - External sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: |- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:all`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | --- | --- | --- | --- | | state | `String` | `all` | `all`, `new`, `open`, `late`, or `paid` | | period | `String` | `this_year` | This can either be the description of a period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom period (`201301..201302`, `20130101..20130131`) | | contact_id | `Integer` | | Select invoices belonging to a certain contact | You can filter by multiple states at the same time as well. To do this, separate the state values by a pipe: `state:new|open`. schema: type: string default: period:this_year examples: ReturnsAllInvoicesFilteredOnPeriod: summary: Returns all invoices filtered on period value: period:this_month ReturnsAllInvoicesFilteredOnState: summary: Returns all invoices filtered on state value: state:open - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: A list of external sales invoices content: application/json: schema: type: array items: $ref: '#/components/schemas/external_sales_invoice_response' examples: ReturnsAllInvoicesFilteredOnPeriod: summary: Returns all invoices filtered on period value: - id: '495429959553123788' administration_id: 123 contact_id: null contact: null date: '2026-08-14' state: new due_date: null reference: Invoice 4 entry_number: 104 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:09.724Z' updated_at: '2026-08-14T09:14:09.724Z' version: 1786698849 details: [] payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: [] tax_totals: [] - id: '495429959545783754' administration_id: 123 contact_id: '495429959538443721' contact: id: '495429959538443721' administration_id: 123 company_name: Relation 3 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-3 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:09.710Z' updated_at: '2026-08-14T09:14:09.710Z' version: 1786698849 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000003/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-08-14' state: open due_date: null reference: Invoice 3 entry_number: 103 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:09.717Z' updated_at: '2026-08-14T09:14:09.720Z' version: 1786698849 details: - id: '495429959546832331' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Invoice detail description price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '100.0' total_price_excl_tax_with_discount_base: '100.0' tax_report_reference: [] mandatory_tax_text: null created_at: '2026-08-14T09:14:09.718Z' updated_at: '2026-08-14T09:14:09.718Z' payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: [] tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' - id: '495429959527957958' administration_id: 123 contact_id: '495429959520617925' contact: id: '495429959520617925' administration_id: 123 company_name: Relation 2 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-2 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:09.693Z' updated_at: '2026-08-14T09:14:09.693Z' version: 1786698849 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-08-14' state: open due_date: null reference: Invoice 2 entry_number: 102 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:09.701Z' updated_at: '2026-08-14T09:14:09.704Z' version: 1786698849 details: - id: '495429959530055111' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Invoice detail description price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '100.0' total_price_excl_tax_with_discount_base: '100.0' tax_report_reference: [] mandatory_tax_text: null created_at: '2026-08-14T09:14:09.702Z' updated_at: '2026-08-14T09:14:09.702Z' payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: [] tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' - id: '495429959511180738' administration_id: 123 contact_id: '495429959502792129' contact: id: '495429959502792129' administration_id: 123 company_name: Relation 1 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:09.676Z' updated_at: '2026-08-14T09:14:09.676Z' version: 1786698849 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-08-14' state: open due_date: null reference: Invoice 1 entry_number: 101 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:09.684Z' updated_at: '2026-08-14T09:14:09.687Z' version: 1786698849 details: - id: '495429959513277891' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Invoice detail description price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '100.0' total_price_excl_tax_with_discount_base: '100.0' tax_report_reference: [] mandatory_tax_text: null created_at: '2026-08-14T09:14:09.686Z' updated_at: '2026-08-14T09:14:09.686Z' payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: [] tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' ReturnsPaginatedExternalSalesInvoicesOnPage1: summary: Returns paginated external sales invoices on page 1 value: - id: '495429959675807193' administration_id: 123 contact_id: null contact: null date: '2026-08-14' state: new due_date: null reference: Invoice 4 entry_number: 104 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:09.841Z' updated_at: '2026-08-14T09:14:09.841Z' version: 1786698849 details: [] payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: [] tax_totals: [] ReturnsPaginatedExternalSalesInvoicesOnPage2: summary: Returns paginated external sales invoices on page 2 value: - id: '495429959836239345' administration_id: 123 contact_id: '495429959827850736' contact: id: '495429959827850736' administration_id: 123 company_name: Relation 3 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-3 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:09.987Z' updated_at: '2026-08-14T09:14:09.987Z' version: 1786698849 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000003/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-08-14' state: open due_date: null reference: Invoice 3 entry_number: 103 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:09.994Z' updated_at: '2026-08-14T09:14:09.997Z' version: 1786698849 details: - id: '495429959837287922' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Invoice detail description price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '100.0' total_price_excl_tax_with_discount_base: '100.0' tax_report_reference: [] mandatory_tax_text: null created_at: '2026-08-14T09:14:09.995Z' updated_at: '2026-08-14T09:14:09.995Z' payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: [] tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' ReturnsAllExternalSalesInvoicesOfAnAdministration: summary: Returns all external sales invoices of an administration value: - id: '495429959941096960' administration_id: 123 contact_id: null contact: null date: '2026-08-14' state: new due_date: null reference: Invoice 4 entry_number: 104 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:10.094Z' updated_at: '2026-08-14T09:14:10.094Z' version: 1786698850 details: [] payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: [] tax_totals: [] - id: '495429959932708350' administration_id: 123 contact_id: '495429959925368317' contact: id: '495429959925368317' administration_id: 123 company_name: Relation 3 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-3 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:10.079Z' updated_at: '2026-08-14T09:14:10.079Z' version: 1786698850 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000003/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-08-14' state: open due_date: null reference: Invoice 3 entry_number: 103 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:10.087Z' updated_at: '2026-08-14T09:14:10.090Z' version: 1786698850 details: - id: '495429959934805503' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Invoice detail description price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '100.0' total_price_excl_tax_with_discount_base: '100.0' tax_report_reference: [] mandatory_tax_text: null created_at: '2026-08-14T09:14:10.088Z' updated_at: '2026-08-14T09:14:10.088Z' payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: [] tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' - id: '495429959916979706' administration_id: 123 contact_id: '495429959909639673' contact: id: '495429959909639673' administration_id: 123 company_name: Relation 2 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-2 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:10.064Z' updated_at: '2026-08-14T09:14:10.064Z' version: 1786698850 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-08-14' state: open due_date: null reference: Invoice 2 entry_number: 102 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:10.071Z' updated_at: '2026-08-14T09:14:10.074Z' version: 1786698850 details: - id: '495429959918028283' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Invoice detail description price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '100.0' total_price_excl_tax_with_discount_base: '100.0' tax_report_reference: [] mandatory_tax_text: null created_at: '2026-08-14T09:14:10.073Z' updated_at: '2026-08-14T09:14:10.073Z' payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: [] tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' - id: '495429959900202486' administration_id: 123 contact_id: '495429959891813877' contact: id: '495429959891813877' administration_id: 123 company_name: Relation 1 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:10.047Z' updated_at: '2026-08-14T09:14:10.047Z' version: 1786698850 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-08-14' state: open due_date: null reference: Invoice 1 entry_number: 101 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:10.055Z' updated_at: '2026-08-14T09:14:10.058Z' version: 1786698850 details: - id: '495429959901251063' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Invoice detail description price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '100.0' total_price_excl_tax_with_discount_base: '100.0' tax_report_reference: [] mandatory_tax_text: null created_at: '2026-08-14T09:14:10.057Z' updated_at: '2026-08-14T09:14:10.057Z' payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: [] tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' ReturnsAllInvoicesFilteredOnState: summary: Returns all invoices filtered on state value: - id: '495429960059586059' administration_id: 123 contact_id: '495429960052246026' contact: id: '495429960052246026' administration_id: 123 company_name: Relation 3 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-3 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:10.200Z' updated_at: '2026-08-14T09:14:10.200Z' version: 1786698850 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000003/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-08-14' state: open due_date: null reference: Invoice 3 entry_number: 103 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:10.208Z' updated_at: '2026-08-14T09:14:10.210Z' version: 1786698850 details: - id: '495429960061683212' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Invoice detail description price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '100.0' total_price_excl_tax_with_discount_base: '100.0' tax_report_reference: [] mandatory_tax_text: null created_at: '2026-08-14T09:14:10.209Z' updated_at: '2026-08-14T09:14:10.209Z' payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: [] tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' - id: '495429960043857415' administration_id: 123 contact_id: '495429960035468806' contact: id: '495429960035468806' administration_id: 123 company_name: Relation 2 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-2 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:10.184Z' updated_at: '2026-08-14T09:14:10.184Z' version: 1786698850 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-08-14' state: open due_date: null reference: Invoice 2 entry_number: 102 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:10.192Z' updated_at: '2026-08-14T09:14:10.195Z' version: 1786698850 details: - id: '495429960044905992' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Invoice detail description price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '100.0' total_price_excl_tax_with_discount_base: '100.0' tax_report_reference: [] mandatory_tax_text: null created_at: '2026-08-14T09:14:10.193Z' updated_at: '2026-08-14T09:14:10.193Z' payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: [] tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' - id: '495429960026031619' administration_id: 123 contact_id: '495429960017643010' contact: id: '495429960017643010' administration_id: 123 company_name: Relation 1 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:10.167Z' updated_at: '2026-08-14T09:14:10.167Z' version: 1786698850 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-08-14' state: open due_date: null reference: Invoice 1 entry_number: 101 origin: null source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:10.175Z' updated_at: '2026-08-14T09:14:10.179Z' version: 1786698850 details: - id: '495429960028128772' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Invoice detail description price: '100.0' period: null row_order: 0 total_price_excl_tax_with_discount: '100.0' total_price_excl_tax_with_discount_base: '100.0' tax_report_reference: [] mandatory_tax_text: null created_at: '2026-08-14T09:14:10.177Z' updated_at: '2026-08-14T09:14:10.177Z' payments: [] total_paid: '0.0' total_unpaid: '121.0' total_unpaid_base: '121.0' prices_are_incl_tax: false total_price_excl_tax: '100.0' total_price_excl_tax_base: '100.0' total_price_incl_tax: '121.0' total_price_incl_tax_base: '121.0' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: [] tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenTooManyExternalSalesInvoicesAreRequested: summary: Returns an error when too many external sales invoices are requested value: error: per_page does not have a valid value '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorMessageIfFilterContactIdIsNotFound: summary: Returns an error message if filter contact id is not found value: error: record not found symbolic: contact_id: not_found operationId: get_administration_id_external_sales_invoices post: summary: Create an external sales invoice description: |- Creates a new external sales invoice. ### Required scope(s) `sales_invoices` tags: - External sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: external_sales_invoice: type: object unevaluatedProperties: false properties: contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. reference: type: string description: The invoice number or reference from the external system that created this invoice, e.g. a webshop order ID. date: type: string description: The date of the invoice. format: date due_date: type: string description: The date by which the invoice should be paid. format: date currency: type: string description: ISO three-character currency code, e.g. EUR or USD. prices_are_incl_tax: type: - boolean - string description: Whether the prices on the invoice are inclusive of tax. Defaults to the administration setting. source: type: string description: The name of the external system that created this invoice, e.g. your webshop or POS system name. source_url: type: string description: A URL linking back to the invoice in the external system. details_attributes: $ref: '#/components/schemas/details_attributes' required: [] required: [] examples: CreateAnExternalSalesInvoiceInAForeignCurrency: summary: Create an external sales invoice in a foreign currency value: external_sales_invoice: reference: '30052' contact_id: 495429956259546400 currency: USD details_attributes: - description: Rocking Chair price: 159.99 tax_rate_id: 495429956255352060 CreateABasicExternalSalesInvoice: summary: Create a basic external sales invoice value: external_sales_invoice: reference: '30052' contact_id: 495429956544759100 details_attributes: - description: Rocking Chair price: 129.95 responses: '201': description: External sales invoice created content: application/json: schema: $ref: '#/components/schemas/external_sales_invoice_response' examples: CreateAnExternalSalesInvoiceInAForeignCurrency: summary: Create an external sales invoice in a foreign currency value: id: '495429956287857940' administration_id: 123 contact_id: '495429956259546386' contact: id: '495429956259546386' administration_id: 123 company_name: Relation 2 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-2 tax_number: BE0123456789 chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: '2026-08-14T09:14:06.582Z' tax_number_valid: true invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:06.583Z' updated_at: '2026-08-14T09:14:06.583Z' version: 1786698846 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-08-14' state: open due_date: null reference: '30052' entry_number: 1 origin: api source: null source_url: null currency: USD paid_at: null created_at: '2026-08-14T09:14:06.611Z' updated_at: '2026-08-14T09:14:06.614Z' version: 1786698846 details: - id: '495429956289955093' administration_id: 123 tax_rate_id: '495429956255352080' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Rocking Chair price: '159.99' period: null row_order: 0 total_price_excl_tax_with_discount: '159.99' total_price_excl_tax_with_discount_base: '127.99' tax_report_reference: - NL/3a mandatory_tax_text: Intracommunautaire levering, artikel 138, lid 1, Richtlijn 2006/112 created_at: '2026-08-14T09:14:06.612Z' updated_at: '2026-08-14T09:14:06.612Z' payments: [] total_paid: '0.0' total_unpaid: '159.99' total_unpaid_base: '127.99' prices_are_incl_tax: false total_price_excl_tax: '159.99' total_price_excl_tax_base: '127.99' total_price_incl_tax: '159.99' total_price_incl_tax_base: '127.99' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: external_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:06.616Z' updated_at: '2026-08-14T09:14:06.616Z' tax_totals: [] CreateABasicExternalSalesInvoice: summary: Create a basic external sales invoice value: id: '495429956575167799' administration_id: 123 contact_id: '495429956544759093' contact: id: '495429956544759093' administration_id: 123 company_name: Relation 2 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-2 tax_number: BE0123456789 chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: invoices@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: invoices@example.com send_estimates_to_attention: null send_estimates_to_email: estimates@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: '2026-08-14T09:14:06.853Z' tax_number_valid: true invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:06.855Z' updated_at: '2026-08-14T09:14:06.855Z' version: 1786698846 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-08-14' state: open due_date: null reference: '30052' entry_number: 1 origin: api source: null source_url: null currency: EUR paid_at: null created_at: '2026-08-14T09:14:06.884Z' updated_at: '2026-08-14T09:14:06.887Z' version: 1786698846 details: - id: '495429956576216376' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Rocking Chair price: '129.95' period: null row_order: 0 total_price_excl_tax_with_discount: '129.95' total_price_excl_tax_with_discount_base: '129.95' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:06.886Z' updated_at: '2026-08-14T09:14:06.886Z' payments: [] total_paid: '0.0' total_unpaid: '157.24' total_unpaid_base: '157.24' prices_are_incl_tax: false total_price_excl_tax: '129.95' total_price_excl_tax_base: '129.95' total_price_incl_tax: '157.24' total_price_incl_tax_base: '157.24' marked_dubious_on: null marked_uncollectible_on: null notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: external_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:06.888Z' updated_at: '2026-08-14T09:14:06.888Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '129.95' taxable_amount_base: '129.95' tax_amount: '27.29' tax_amount_base: '27.29' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenRequiredParamsAreIncorrect: summary: Returns 400 when required params are incorrect value: error: Contact ID is invalid symbolic: external_sales_invoice: contact_id: contact_invalid '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenDateIsNotAValidDateString: summary: Returns 422 when date is not a valid date string value: error: date: - is not a valid date reference: - can't be blank details: date: - error: is not a valid date reference: - error: blank Returns422WhenADetailReferencesAUnknownProjectIdForThisAdministration: summary: Returns 422 when a detail references a unknown project id for this administration value: error: details.project_id: - is not found reference: - can't be blank details: details.project_id: - error: invalid reference: - error: blank operationId: post_administration_id_external_sales_invoices /{administration_id}/financial_accounts{format}: get: summary: Retrieve all available financial accounts for the administration description: |- Retrieve the financial accounts for the administration. Only active financial accounts are returned; inactive (archived) accounts are omitted. ### Required scope(s) `settings` tags: - Financial accounts security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' responses: '200': description: A list of financial accounts content: application/json: schema: type: array items: $ref: '#/components/schemas/financial_account_response' examples: ReturnsAllFinancialAccountsOfAnAdministration: summary: Returns all financial accounts of an administration value: - id: '495430085030971190' administration_id: 123 type: CreditCardAccount name: Creditcard 0001 identifier: '0001' currency: EUR provider: null active: true created_at: '2026-08-14T09:16:09.390Z' updated_at: '2026-08-14T09:16:09.390Z' operationId: get_administration_id_financial_accounts /{administration_id}/financial_mutations/synchronization{format}: get: summary: List all ids and versions description: |- Returns all financial mutations in the administration. The list contains the id and the version of the financial mutation. Check if the version of the financial mutation is newer than the version you have stored locally, use the `POST` variant for fetching financial mutations with the given ids. ### Required scope(s) `bank` tags: - Financial mutations security: - bearerAuth: - bank parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: |- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:all`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | period | `String` | `this_year` | This can either be the description of a period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom period (`201301..201302`, `20130101..20130131`) | | state | `String` | | Can be `all`, `unprocessed` or `processed`| | mutation_type | `String` | | Can be `all`, `debit` or `credit` | | financial_account_id | `String` | | schema: type: string default: period:this_year examples: RetrievesTheIdSForSynchronizationWithAFilter: summary: Retrieves the id's for synchronization with a filter value: period:this_month responses: '200': description: IDs and versions of records content: application/json: schema: type: array items: type: object unevaluatedProperties: false properties: id: type: - integer - string version: type: - integer - string examples: RetrievesTheIdSForSynchronizationWithAFilter: summary: Retrieves the id's for synchronization with a filter value: - id: '495429965153567922' version: 1786698855 - id: '495429965171393723' version: 1786698855 - id: '495429965190268100' version: 1786698855 RetrievesTheIdSForSynchronization: summary: Retrieves the id's for synchronization value: - id: '495429965247939792' version: 1786698855 - id: '495429965265765593' version: 1786698855 - id: '495429965283591394' version: 1786698855 RetrievesOnlyUniqueIds: summary: Retrieves only unique ids value: - id: '495429965339165934' version: 1786698855 - id: '495429965358040311' version: 1786698855 - id: '495429965375866112' version: 1786698855 operationId: get_administration_id_financial_mutations_synchronization post: summary: Fetch financial mutations with given ids x-query: true description: |- Given a list of financial mutation ids, returns the financial mutation information belonging to the financial mutation. Returns a maximum of 100 financial mutations, even if more ids are provided. ### Required scope(s) `bank` tags: - Financial mutations security: - bearerAuth: - bank parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: ids: type: array items: type: - integer - string required: - ids examples: RetrievesFinancialMutationsGivenByIds: summary: Retrieves financial mutations given by ids value: ids: - 495429964115477570 - 495429964133303360 responses: '200': description: A financial mutation content: application/json: schema: type: array items: $ref: '#/components/schemas/financial_mutation_response' examples: RetrievesFinancialMutationsGivenByIds: summary: Retrieves financial mutations given by ids value: - id: '495429964133303356' administration_id: 123 amount: '100.0' code: null date: '2026-08-14' message: Factuur contra_account_name: null contra_account_number: '' state: unprocessed settlement_state: settled amount_open: '100.0' sepa_fields: null batch_reference: null financial_account_id: '495429964077728806' currency: EUR original_amount: null created_at: '2026-08-14T09:14:14.092Z' updated_at: '2026-08-14T09:14:14.092Z' version: 1786698854 financial_statement_id: '495429964132254779' processed_at: null account_servicer_transaction_id: null payments: [] ledger_account_bookings: [] - id: '495429964115477555' administration_id: 123 amount: '100.0' code: null date: '2026-08-14' message: Factuur contra_account_name: null contra_account_number: '' state: unprocessed settlement_state: settled amount_open: '100.0' sepa_fields: null batch_reference: null financial_account_id: '495429964077728806' currency: EUR original_amount: null created_at: '2026-08-14T09:14:14.075Z' updated_at: '2026-08-14T09:14:14.075Z' version: 1786698854 financial_statement_id: '495429964114428978' processed_at: null account_servicer_transaction_id: null payments: [] ledger_account_bookings: [] '400': $ref: '#/components/responses/400_bad_request' operationId: post_administration_id_financial_mutations_synchronization /{administration_id}/financial_mutations/{id}/link_booking{format}: patch: summary: Links a financial mutation to a booking description: |- Linking a booking to a financial mutation allows you to process financial mutations. Financial mutations can be linked to invoices, documents, ledger accounts and payment batches. ### Required scope(s) `bank` tags: - Financial mutations security: - bearerAuth: - bank parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: booking_type: type: string description: The type of record to link the mutation to. enum: - SalesInvoice - Document - LedgerAccount - PaymentTransactionBatch - PurchaseTransaction - NewPurchaseInvoice - NewReceipt - PaymentTransaction - PurchaseTransactionBatch - ExternalSalesInvoice - Payment - VatDocument booking_id: $ref: '#/components/schemas/identifier' description: The id of the record to link, of the type set in `booking_type` (e.g. the ledger account id when `booking_type` is `LedgerAccount`). price_base: $ref: '#/components/schemas/number' description: |- The booking amount, in the administration's base currency. This is the field that carries the amount for most booking types; when linking a payment to an invoice it is the base-currency counterpart of `price`. For `booking_type` `LedgerAccount` send the amount here — `price` is ignored. Both a decimal and a string '10,95' are accepted. Whether to send a positive or a negative amount depends on `booking_type`: | **`booking_type`** | **Amount** | | --- | --- | | `SalesInvoice`, `ExternalSalesInvoice`, `Document` | Always positive. The payment direction is taken from the financial mutation, so refunds and credit notes also take a positive amount, whichever way the money moved | | `LedgerAccount` | Positive books in the same direction as the mutation, negative against it. Splitting a mutation over several bookings takes one request per part: an outgoing mutation of -95 consisting of 100 in costs and 5 received back takes one request with `100` and one with `-5`. One exception: once an incoming mutation has more booked than its own amount (its open amount went negative), positive and negative swap — a positive amount then books against the mutation | | `VatDocument` | The amount as it appears on the VAT return: positive when VAT is payable, negative for a refund | | `NewPurchaseInvoice`, `NewReceipt` | Positive when the mutation is outgoing (a purchase you paid), negative when it is incoming (money received back) | | `Payment`, `PaymentTransaction`, `PaymentTransactionBatch`, `PurchaseTransactionBatch`, `PurchaseTransaction` | Ignored — the amount comes from the record being linked | price: $ref: '#/components/schemas/number' description: |- Amount in the booking's own currency, used when linking a payment to an invoice. The same positive/negative rules apply as for `price_base` (see the table there). For a foreign-currency invoice both `price` and `price_base` are required; otherwise `price_base` alone is enough. Only used when `booking_type` is `SalesInvoice`, `ExternalSalesInvoice`, `Document` or `VatDocument`; every other booking type takes its amount from `price_base` or ignores it. Both a decimal and a string '10,95' are accepted. description: type: string payment_batch_identifier: type: string project_id: $ref: '#/components/schemas/identifier' description: Should be a valid project id. mark_open_sepa_transaction_as_paid: type: - boolean - string required: - booking_type examples: CreatesALedgerAccountBookingForAPositiveAmount: summary: Creates a ledger account booking for a positive amount value: booking_type: LedgerAccount booking_id: 495429965491209500 price_base: 100 LinksASalesInvoiceToTheFinancialMutation: summary: Links a sales invoice to the financial mutation value: booking_type: SalesInvoice booking_id: 495429965628573000 price_base: '363.0' CreatesABookingForAForeignInvoiceWithAnExchangeRateDifference: summary: Creates a booking for a foreign invoice with an exchange rate difference value: booking_type: LedgerAccount booking_id: 495429966115112300 price_base: 1.48 CreatesANewPurchaseInvoice: summary: Creates a new purchase invoice value: booking_type: NewPurchaseInvoice price_base: -100 CreatesALedgerAccountBookingForANegativeAmount: summary: Creates a ledger account booking for a negative amount value: booking_type: LedgerAccount booking_id: 495429966500988350 price_base: 100 LinksAPurchaseInvoiceToTheFinancialMutation: summary: Links a purchase invoice to the financial mutation value: booking_type: Document booking_id: 495429966626817500 price_base: -100 CreatesANewReceipt: summary: Creates a new receipt value: booking_type: NewReceipt price_base: -100 responses: '200': description: Status code content: application/json: schema: type: integer examples: CreatesALedgerAccountBookingForAPositiveAmount: summary: Creates a ledger account booking for a positive amount value: 200 LinksASalesInvoiceToTheFinancialMutation: summary: Links a sales invoice to the financial mutation value: 200 CreatesABookingForAForeignInvoiceWithAnExchangeRateDifference: summary: Creates a booking for a foreign invoice with an exchange rate difference value: 200 CreatesANewPurchaseInvoice: summary: Creates a new purchase invoice value: 200 CreatesALedgerAccountBookingForANegativeAmount: summary: Creates a ledger account booking for a negative amount value: 200 LinksAPurchaseInvoiceToTheFinancialMutation: summary: Links a purchase invoice to the financial mutation value: 200 CreatesANewReceipt: summary: Creates a new receipt value: 200 '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400InsteadOfCrashingWhenPriceBaseIsOmittedForANegativeMutation: summary: Returns a 400 instead of crashing when price base is omitted for a negative mutation value: error: Price can't be nil symbolic: price: nils '404': $ref: '#/components/responses/404_not_found' operationId: patch_administration_id_financial_mutations_id_link_booking /{administration_id}/financial_mutations/{id}/unlink_booking{format}: delete: summary: Unlinks a booking from a financial mutation description: |- Unlinks a booking from a financial mutation. ### Required scope(s) `bank` tags: - Financial mutations security: - bearerAuth: - bank parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: booking_type: type: string enum: - Payment - LedgerAccountBooking description: Can be `Payment` or `LedgerAccountBooking`. booking_id: $ref: '#/components/schemas/identifier' required: - booking_type - booking_id examples: UnlinksAPaymentBooking: summary: Unlinks a payment booking value: booking_type: Payment booking_id: 495429964452070500 responses: '200': description: A financial mutation content: application/json: schema: $ref: '#/components/schemas/financial_mutation_response' examples: UnlinksAPaymentBooking: summary: Unlinks a payment booking value: id: '495429964232918088' administration_id: 123 amount: '100.0' code: null date: '2026-08-14' message: Factuur contra_account_name: null contra_account_number: '' state: unprocessed settlement_state: settled amount_open: '100.0' sepa_fields: null batch_reference: null financial_account_id: '495429964176294980' currency: EUR original_amount: null created_at: '2026-08-14T09:14:14.187Z' updated_at: '2026-08-14T09:14:14.476Z' version: 1786698854 financial_statement_id: '495429964231869511' processed_at: null account_servicer_transaction_id: null payments: [] ledger_account_bookings: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorIfBookingTypeIsInvalid: summary: Returns an error if booking type is invalid value: error: Booking Type isn't an option symbolic: booking_type: in '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorIfBookingIdIsNotFound: summary: Returns an error if booking id is not found value: error: record not found symbolic: booking_id: not_found operationId: delete_administration_id_financial_mutations_id_unlink_booking /{administration_id}/financial_mutations/{id}{format}: get: summary: Get a financial mutation by id description: |- Returns a single financial mutation in the administration. ### Required scope(s) `bank` tags: - Financial mutations security: - bearerAuth: - bank parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A financial mutation content: application/json: schema: $ref: '#/components/schemas/financial_mutation_response' examples: ReturnsFinancialMutationByTheGivenId: summary: Returns financial mutation by the given id value: id: '495429963538761652' administration_id: 123 amount: '100.0' code: null date: '2026-08-14' message: Factuur contra_account_name: null contra_account_number: '' state: unprocessed settlement_state: settled amount_open: '100.0' sepa_fields: null batch_reference: null financial_account_id: '495429963519887280' currency: EUR original_amount: null created_at: '2026-08-14T09:14:13.525Z' updated_at: '2026-08-14T09:14:13.525Z' version: 1786698853 financial_statement_id: '495429963537713075' processed_at: null account_servicer_transaction_id: null payments: - id: '495429963601676229' administration_id: 123 invoice_type: SalesInvoice invoice_id: '495429963581753281' financial_account_id: '495429963519887280' user_id: 1 payment_transaction_id: null transaction_identifier: null price: '80.0' price_base: '80.0' payment_date: '2026-08-14' credit_invoice_id: null financial_mutation_id: '495429963538761652' ledger_account_id: '495429963599579076' linked_payment_id: null manual_payment_action: null created_at: '2026-08-14T09:14:13.585Z' updated_at: '2026-08-14T09:14:13.585Z' ledger_account_bookings: - id: '495429963555538877' administration_id: 123 financial_mutation_id: '495429963538761652' ledger_account_id: '495429963554490300' project_id: null description: Ledger account booking price: '20.0' created_at: '2026-08-14T09:14:13.542Z' updated_at: '2026-08-14T09:14:13.542Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTheFinancialMutationDoesNotExist: summary: Returns 404 when the financial mutation does not exist value: error: record not found symbolic: id: not_found operationId: get_administration_id_financial_mutations_id /{administration_id}/financial_mutations{format}: get: summary: List all financial mutations description: |- Returns a list of financial mutations in the administration. Limited to 100 financial mutations. If you need more financial mutations, use the [synchronize](#get_financial_mutations_synchronization) API. ### Required scope(s) `bank` tags: - Financial mutations security: - bearerAuth: - bank parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: |- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:unprocessed`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | period | `String` | `this_year` | A named period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom range (`201301..201302`, `20130101..20130131`) | | state | `String` | `all` | `all`, `unprocessed`, `processed` or `auto_booked` | | mutation_type | `String` | `all` | `all`, `debit` or `credit` | | financial_account_id | `Integer` | | Restrict to a single financial account | | amount_from | `String` | | Lower bound on the absolute mutation amount (negative input is treated as positive) | | amount_to | `String` | | Upper bound on the absolute mutation amount | Multiple values for `state` and `mutation_type` can be combined with a pipe, e.g. `state:unprocessed|processed`. schema: type: string default: period:this_year examples: ReturnsAllMutationsFilteredOnPeriod: summary: Returns all mutations filtered on period value: period:this_month responses: '200': description: A list of financial mutations content: application/json: schema: type: array items: $ref: '#/components/schemas/financial_mutation_response' examples: ReturnsAllFinancialMutationsOfAnAdministration: summary: Returns all financial mutations of an administration value: - id: '495429963663542218' administration_id: 123 amount: '100.0' code: null date: '2026-08-14' message: Factuur contra_account_name: null contra_account_number: '' state: unprocessed settlement_state: settled amount_open: '100.0' sepa_fields: null batch_reference: null financial_account_id: '495429963644667846' currency: EUR original_amount: null created_at: '2026-08-14T09:14:13.644Z' updated_at: '2026-08-14T09:14:13.644Z' version: 1786698853 financial_statement_id: '495429963662493641' processed_at: null account_servicer_transaction_id: null payments: - id: '495429963726456795' administration_id: 123 invoice_type: SalesInvoice invoice_id: '495429963705485271' financial_account_id: '495429963644667846' user_id: 1 payment_transaction_id: null transaction_identifier: null price: '80.0' price_base: '80.0' payment_date: '2026-08-14' credit_invoice_id: null financial_mutation_id: '495429963663542218' ledger_account_id: '495429963723311066' linked_payment_id: null manual_payment_action: null created_at: '2026-08-14T09:14:13.704Z' updated_at: '2026-08-14T09:14:13.704Z' ledger_account_bookings: - id: '495429963681368019' administration_id: 123 financial_mutation_id: '495429963663542218' ledger_account_id: '495429963679270866' project_id: null description: Ledger account booking price: '20.0' created_at: '2026-08-14T09:14:13.661Z' updated_at: '2026-08-14T09:14:13.661Z' ReturnsAllMutationsFilteredOnPeriod: summary: Returns all mutations filtered on period value: - id: '495429963893180406' administration_id: 123 amount: '100.0' code: null date: '2026-08-14' message: Factuur contra_account_name: null contra_account_number: '' state: unprocessed settlement_state: settled amount_open: '100.0' sepa_fields: null batch_reference: null financial_account_id: '495429963874306034' currency: EUR original_amount: null created_at: '2026-08-14T09:14:13.863Z' updated_at: '2026-08-14T09:14:13.863Z' version: 1786698853 financial_statement_id: '495429963892131829' processed_at: null account_servicer_transaction_id: null payments: - id: '495429963956093959' administration_id: 123 invoice_type: SalesInvoice invoice_id: '495429963936171011' financial_account_id: '495429963874306034' user_id: 1 payment_transaction_id: null transaction_identifier: null price: '80.0' price_base: '80.0' payment_date: '2026-08-14' credit_invoice_id: null financial_mutation_id: '495429963893180406' ledger_account_id: '495429963953996806' linked_payment_id: null manual_payment_action: null created_at: '2026-08-14T09:14:13.923Z' updated_at: '2026-08-14T09:14:13.923Z' ledger_account_bookings: - id: '495429963911006207' administration_id: 123 financial_mutation_id: '495429963893180406' ledger_account_id: '495429963908909054' project_id: null description: Ledger account booking price: '20.0' created_at: '2026-08-14T09:14:13.880Z' updated_at: '2026-08-14T09:14:13.880Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: RaisesAnErrorWhenThereAreTooManyMutationsToReturn: summary: Raises an error when there are too many mutations to return value: error: Too many financial mutations to return, please use sync API operationId: get_administration_id_financial_mutations /{administration_id}/financial_statements/{id}{format}: delete: summary: Delete a financial statement description: |- Deletes a financial statement. ### Required scope(s) `bank` tags: - Financial statements security: - bearerAuth: - bank parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Financial statement deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404StatusWhenTheFinancialStatementIsNotFound: summary: Returns a 404 status when the financial statement is not found value: error: record not found symbolic: id: not_found operationId: delete_administration_id_financial_statements_id patch: summary: Update a financial statement description: |- When updating a financial statement, you only need to provide the information you want to change. Attributes you don't provide in the request will not be updated. ### Required scope(s) `bank` tags: - Financial statements security: - bearerAuth: - bank parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: financial_statement: type: object unevaluatedProperties: false properties: reference: type: string description: A unique reference for this financial statement, e.g. the bank statement number. official_date: type: string description: The date of the official bank balance. format: date official_balance: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. financial_mutations_attributes: oneOf: - type: array items: type: object unevaluatedProperties: false properties: id: type: integer description: The ID of an existing financial mutation to update. Omit when adding a new mutation. date: type: string format: date description: The transaction date. message: type: string description: The description or narrative of the bank transaction. amount: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. code: type: string description: The bank transaction type code. Primarily used internally for bank statement imports and automatic booking; most API users can omit this. contra_account_name: type: string description: The name of the counterparty's account holder. contra_account_number: type: string description: The account number (IBAN) of the counterparty. batch_reference: type: string description: A reference identifying a batch of transactions. offset: type: integer description: The position offset of this mutation within the statement. account_servicer_transaction_id: type: string description: A unique transaction ID assigned by the bank. Used internally for deduplication when importing bank statements. adyen_payment_instrument_id: $ref: '#/components/schemas/identifier' description: Should be a valid adyen payment instrument id. _destroy: type: - boolean - string description: Set to `true` to remove this financial mutation from the statement. required: [] - type: object additionalProperties: type: object properties: id: type: integer description: The ID of an existing financial mutation to update. Omit when adding a new mutation. date: type: string format: date description: The transaction date. message: type: string description: The description or narrative of the bank transaction. amount: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. code: type: string description: The bank transaction type code. Primarily used internally for bank statement imports and automatic booking; most API users can omit this. contra_account_name: type: string description: The name of the counterparty's account holder. contra_account_number: type: string description: The account number (IBAN) of the counterparty. batch_reference: type: string description: A reference identifying a batch of transactions. offset: type: integer description: The position offset of this mutation within the statement. account_servicer_transaction_id: type: string description: A unique transaction ID assigned by the bank. Used internally for deduplication when importing bank statements. adyen_payment_instrument_id: $ref: '#/components/schemas/identifier' description: Should be a valid adyen payment instrument id. _destroy: type: - boolean - string description: Set to `true` to remove this financial mutation from the statement. required: [] required: [] required: [] examples: UpdatesAFinancialStatement: summary: Updates a financial statement value: financial_statement: reference: new_reference financial_mutations_attributes: '0': message: Foobar 1 date: '2026-08-14' amount: 100 responses: '200': description: Financial statement updated content: application/json: schema: $ref: '#/components/schemas/financial_statement_response' examples: UpdatesAFinancialStatement: summary: Updates a financial statement value: id: '495429944101308174' financial_account_id: '495429944028956427' reference: new_reference official_date: null official_balance: null importer_service: null financial_mutations: - id: '495429944104453904' administration_id: 123 amount: '-20.0' code: null date: '2026-08-13' message: Afboeking contra_account_name: Krant contra_account_number: CH3608387000001080173 state: unprocessed settlement_state: settled amount_open: '-20.0' sepa_fields: null batch_reference: null financial_account_id: '495429944028956427' currency: EUR original_amount: null created_at: '2026-08-14T09:13:54.992Z' updated_at: '2026-08-14T09:13:54.992Z' version: 1786698834 financial_statement_id: '495429944101308174' processed_at: null account_servicer_transaction_id: null payments: [] ledger_account_bookings: [] - id: '495429944103405327' administration_id: 123 amount: '322.78' code: null date: '2026-08-14' message: |- 637034759 B & S CARD SERVICE GMBH 0001234567EINREICH ABR.280000000 321 / 333,60 -SERV 10,82 +0%MWST 0,00 REF VU0251478 contra_account_name: Internetprovider contra_account_number: BE68539007547034 state: unprocessed settlement_state: settled amount_open: '322.78' sepa_fields: null batch_reference: null financial_account_id: '495429944028956427' currency: EUR original_amount: null created_at: '2026-08-14T09:13:54.990Z' updated_at: '2026-08-14T09:13:54.990Z' version: 1786698834 financial_statement_id: '495429944101308174' processed_at: null account_servicer_transaction_id: null payments: [] ledger_account_bookings: [] - id: '495429944155834143' administration_id: 123 amount: '100.0' code: null date: '2026-08-14' message: Foobar 1 contra_account_name: null contra_account_number: '' state: unprocessed settlement_state: settled amount_open: '100.0' sepa_fields: null batch_reference: null financial_account_id: '495429944028956427' currency: EUR original_amount: null created_at: '2026-08-14T09:13:55.040Z' updated_at: '2026-08-14T09:13:55.040Z' version: 1786698835 financial_statement_id: '495429944101308174' processed_at: null account_servicer_transaction_id: null payments: [] ledger_account_bookings: [] '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404StatusWhenTheStatementIsNotFound: summary: Returns a 404 status when the statement is not found value: error: 'Record not found for model name: Financial statement' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsAnErrorWhenInvalidInputIsGiven: summary: Returns an error when invalid input is given value: error: reference: - can't be blank details: reference: - error: blank operationId: patch_administration_id_financial_statements_id /{administration_id}/financial_statements{format}: post: summary: Create a new financial statement description: |- Creates a new financial statement. Provided financial mutations will be grouped in the statement. ### Required scope(s) `bank` tags: - Financial statements security: - bearerAuth: - bank parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: financial_statement: type: object unevaluatedProperties: false properties: financial_account_id: $ref: '#/components/schemas/identifier' description: Should be a valid financial account id. reference: type: string description: A unique reference for this financial statement, e.g. the bank statement number. official_date: type: string format: date description: The date of the official bank balance. official_balance: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. importer_key: type: string description: An identifier for the import source or batch, e.g. a bank feed provider reference. financial_mutations_attributes: oneOf: - type: array items: type: object unevaluatedProperties: false properties: date: type: string format: date description: The transaction date. valutation_date: type: string format: date description: The value date of the transaction, i.e. when the funds are actually credited or debited. May differ from the transaction date. message: type: string description: The description or narrative of the bank transaction as provided by the bank. amount: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. code: type: string description: The bank transaction type code, e.g. a SWIFT transaction code. Primarily used internally for bank statement imports and automatic booking; most API users can omit this. contra_account_name: type: string description: The name of the counterparty's account holder. contra_account_number: type: string description: The account number (IBAN) of the counterparty. batch_reference: type: string description: A reference identifying a batch of transactions, e.g. for grouped SEPA payments. offset: type: integer description: The position offset of this mutation within the statement. Used for ordering. account_servicer_transaction_id: type: string description: A unique transaction ID assigned by the bank. Used for deduplication. account_servicer_metadata: type: object description: Additional metadata provided by the bank for this transaction. adyen_payment_instrument_id: $ref: '#/components/schemas/identifier' description: Should be a valid adyen payment instrument id. _destroy: type: - boolean - string description: Set to `true` to remove this financial mutation from the statement. smart_transfer: type: - boolean - string description: Indicates that this financial mutation was created by a smart transfer rule. required: [] - type: object additionalProperties: type: object properties: date: type: string format: date description: The transaction date. valutation_date: type: string format: date description: The value date of the transaction, i.e. when the funds are actually credited or debited. May differ from the transaction date. message: type: string description: The description or narrative of the bank transaction as provided by the bank. amount: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. code: type: string description: The bank transaction type code, e.g. a SWIFT transaction code. Primarily used internally for bank statement imports and automatic booking; most API users can omit this. contra_account_name: type: string description: The name of the counterparty's account holder. contra_account_number: type: string description: The account number (IBAN) of the counterparty. batch_reference: type: string description: A reference identifying a batch of transactions, e.g. for grouped SEPA payments. offset: type: integer description: The position offset of this mutation within the statement. Used for ordering. account_servicer_transaction_id: type: string description: A unique transaction ID assigned by the bank. Used for deduplication. account_servicer_metadata: type: object description: Additional metadata provided by the bank for this transaction. adyen_payment_instrument_id: $ref: '#/components/schemas/identifier' description: Should be a valid adyen payment instrument id. _destroy: type: - boolean - string description: Set to `true` to remove this financial mutation from the statement. smart_transfer: type: - boolean - string description: Indicates that this financial mutation was created by a smart transfer rule. required: [] required: - reference required: [] examples: CreatesAFinancialStatement: summary: Creates a financial statement value: financial_statement: reference: 31012014_ABNAMRO financial_account_id: 495429943693412100 financial_mutations_attributes: '1': date: '2026-08-14' message: Foobar 1 amount: 100 '2': date: '2026-08-14' message: Foobar 2 amount: 200 responses: '201': description: Financial statement created content: application/json: schema: $ref: '#/components/schemas/financial_statement_response' examples: CreatesAFinancialStatement: summary: Creates a financial statement value: id: '495429943716480740' financial_account_id: '495429943693412065' reference: 31012014_ABNAMRO official_date: null official_balance: null importer_service: null financial_mutations: - id: '495429943718577893' administration_id: 123 amount: '100.0' code: null date: '2026-08-14' message: Foobar 1 contra_account_name: null contra_account_number: '' state: unprocessed settlement_state: settled amount_open: '100.0' sepa_fields: null batch_reference: null financial_account_id: '495429943693412065' currency: EUR original_amount: null created_at: '2026-08-14T09:13:54.623Z' updated_at: '2026-08-14T09:13:54.623Z' version: 1786698834 financial_statement_id: '495429943716480740' processed_at: null account_servicer_transaction_id: null payments: [] ledger_account_bookings: [] - id: '495429943720675046' administration_id: 123 amount: '200.0' code: null date: '2026-08-14' message: Foobar 2 contra_account_name: null contra_account_number: '' state: unprocessed settlement_state: settled amount_open: '200.0' sepa_fields: null batch_reference: null financial_account_id: '495429943693412065' currency: EUR original_amount: null created_at: '2026-08-14T09:13:54.625Z' updated_at: '2026-08-14T09:13:54.625Z' version: 1786698834 financial_statement_id: '495429943716480740' processed_at: null account_servicer_transaction_id: null payments: [] ledger_account_bookings: [] '400': $ref: '#/components/responses/400_bad_request' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_financial_statements /{administration_id}/identities/default{format}: get: summary: Retrieve the default identity description: |- Returns the default identity of this administration. ### Required scope(s) `settings` tags: - Identities security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' responses: '200': description: A list of identities content: application/json: schema: $ref: '#/components/schemas/identity_response' examples: ReturnsTheDefaultIdentity: summary: Returns the default identity value: id: '495429852692743275' administration_id: 123 company_name: Parkietje B.V. city: Enschede country: NL zipcode: 7523XD address1: Brouwerijstraat 26 address2: null email: info@dev.null.moneybird.net phone: '0612345678' bank_account_name: null bank_account_number: NL50TEST0166567191 bank_account_bic: null custom_fields: [] updated_at: '2026-08-14T09:12:27.811Z' created_at: '2026-08-14T09:12:27.811Z' chamber_of_commerce: '08155914' tax_number: NL817575546B01 operationId: get_administration_id_identities_default patch: summary: Updates the default identity description: |- Updates the default identity. ### Required scope(s) `settings` tags: - Identities security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: identity: type: object unevaluatedProperties: false properties: company_name: type: string legal_entity_type: type: string enum: - eenmanszaak - maatschap - vof - bv - cv - nv - stichting - vereniging - coöperatie - geen_kvk_inschrijving country: type: string description: ISO two-character country code, e.g. NL or DE. city: type: string zipcode: type: string address1: type: string address2: type: string email: type: string description: Should be a valid email addresses. phone: type: string bank_account_name: type: string bank_account_number: type: string bank_account_bic: type: string chamber_of_commerce: type: string tax_number: type: string tax_number_absence_reason: type: string description: Can be `below_tax_threshold` or `industry_exemption`. custom_fields_attributes: $ref: '#/components/schemas/custom_fields_attributes' administration_attributes: unevaluatedProperties: false properties: legal_entity_type: type: string enum: - eenmanszaak - maatschap - vof - bv - cv - nv - stichting - vereniging - coöperatie - geen_kvk_inschrijving required: [] required: [] required: [] examples: UpdatesTheDefaultIdentity: summary: Updates the default identity value: identity: company_name: Second B.V. responses: '200': description: A list of identities content: application/json: schema: $ref: '#/components/schemas/identity_response' examples: UpdatesTheDefaultIdentity: summary: Updates the default identity value: id: '495429852692743275' administration_id: 123 company_name: Second B.V. city: Enschede country: NL zipcode: 7523XD address1: Brouwerijstraat 26 address2: null email: info@dev.null.moneybird.net phone: '0612345678' bank_account_name: null bank_account_number: NL50TEST0166567191 bank_account_bic: null custom_fields: [] updated_at: '2026-08-14T09:13:01.815Z' created_at: '2026-08-14T09:12:27.811Z' chamber_of_commerce: '08155914' tax_number: NL817575546B01 '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenUpdatingTheDefaultIdentityWithInvalidParams: summary: Returns 422 when updating the default identity with invalid params value: error: company_name: - can't be blank details: company_name: - error: blank operationId: patch_administration_id_identities_default /{administration_id}/identities/{id}{format}: get: summary: Retrieve identity by given id description: |- Returns the identity with the given id. ### Required scope(s) `settings` tags: - Identities security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A identity content: application/json: schema: $ref: '#/components/schemas/identity_response' examples: ReturnsASingleIdentity: summary: Returns a single identity value: id: '495429888769000533' administration_id: 123 company_name: Parkietje B.V. city: Den Haag country: NL zipcode: 4321XY address1: Brouwersplein 62 address2: null email: info@dev.null.moneybird.net phone: 1234-5678900 bank_account_name: Foobar B.V. bank_account_number: NL80TEST0252789466 bank_account_bic: null custom_fields: [] updated_at: '2026-08-14T09:13:02.219Z' created_at: '2026-08-14T09:13:02.219Z' chamber_of_commerce: '08155914' tax_number: NL817575546B01 '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenIdentityDoesNotExist: summary: Returns 404 when identity does not exist value: error: record not found symbolic: id: not_found operationId: get_administration_id_identities_id patch: summary: Updates an identity description: |- Updates an identity. ### Required scope(s) `settings` tags: - Identities security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: identity: type: object unevaluatedProperties: false properties: company_name: type: string country: type: string description: ISO two-character country code, e.g. NL or DE. city: type: string zipcode: type: string address1: type: string address2: type: string email: type: string description: Should be a valid email addresses. phone: type: string bank_account_name: type: string bank_account_number: type: string bank_account_bic: type: string custom_fields_attributes: $ref: '#/components/schemas/custom_fields_attributes' required: [] required: [] examples: UpdatesAIdentity: summary: Updates a identity value: identity: company_name: Second B.V. responses: '200': description: Identity updated content: application/json: schema: $ref: '#/components/schemas/identity_response' examples: UpdatesAIdentity: summary: Updates a identity value: id: '495429888580256839' administration_id: 123 company_name: Second B.V. city: Den Haag country: NL zipcode: 4321XY address1: Brouwersplein 62 address2: null email: info@dev.null.moneybird.net phone: 1234-5678900 bank_account_name: Foobar B.V. bank_account_number: NL80TEST0252789466 bank_account_bic: null custom_fields: [] updated_at: '2026-08-14T09:13:02.071Z' created_at: '2026-08-14T09:13:02.039Z' chamber_of_commerce: '08155914' tax_number: NL817575546B01 '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenUpdatingANon-existentIdentity: summary: Returns 404 when updating a non-existent identity value: error: record not found symbolic: id: not_found '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenUpdatingAnIdentityWithInvalidParams: summary: Returns 422 when updating an identity with invalid params value: error: company_name: - can't be blank details: company_name: - error: blank operationId: patch_administration_id_identities_id delete: summary: Deletes an identity description: |- Deletes an identity. Always returns a 204 status code even if the identity could not be deleted. ### Required scope(s) `settings` tags: - Identities security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Identity deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: CannotDeleteTheDefaultIdentity: summary: Cannot delete the default identity value: error: record not found symbolic: id: not_found operationId: delete_administration_id_identities_id /{administration_id}/identities{format}: get: summary: Retrieve identities description: |- An administration can have multiple identities, for example to cover multiple tradenames or offices. This does not include the default identity. ### Required scope(s) `settings` tags: - Identities security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' responses: '200': description: A list of identities content: application/json: schema: type: array items: $ref: '#/components/schemas/identity_response' examples: ReturnsAllIdentitiesOfAnAdministration: summary: Returns all identities of an administration value: - id: '495429887777047561' administration_id: 123 company_name: Parkietje B.V. city: Den Haag country: NL zipcode: 4321XY address1: Brouwersplein 62 address2: null email: info@dev.null.moneybird.net phone: 1234-5678900 bank_account_name: Foobar B.V. bank_account_number: NL80TEST0252789466 bank_account_bic: null custom_fields: [] updated_at: '2026-08-14T09:13:01.273Z' created_at: '2026-08-14T09:13:01.273Z' chamber_of_commerce: '08155914' tax_number: NL817575546B01 operationId: get_administration_id_identities post: summary: Creates an identity description: |- Most fields for an identity are required. You can provide zero or more custom fields, for each provided custom field value the `id` and `value` are required. ### Required scope(s) `settings` tags: - Identities security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: identity: type: object unevaluatedProperties: false properties: company_name: type: string country: type: string description: ISO two-character country code, e.g. NL or DE. city: type: string zipcode: type: string address1: type: string address2: type: string email: type: string description: Should be a valid email addresses. phone: type: string bank_account_name: type: string bank_account_number: type: string bank_account_bic: type: string custom_fields_attributes: $ref: '#/components/schemas/custom_fields_attributes' required: - company_name - country - city - zipcode - address1 - email required: [] examples: CreatesAnIdentityWithCustomFields: summary: Creates an identity with custom fields value: identity: company_name: Foobar B.V. address1: Straat 1 zipcode: Zipcode city: Enschede country: NL email: foobar@example.com custom_fields_attributes: '0': id: 495429887875613700 value: my custom value CreatesAnIdentity: summary: Creates an identity value: identity: company_name: Foobar B.V. address1: Straat 1 zipcode: Zipcode city: Enschede country: NL email: foobar@example.com responses: '201': description: Identity created content: application/json: schema: $ref: '#/components/schemas/identity_response' examples: CreatesAnIdentityWithCustomFields: summary: Creates an identity with custom fields value: id: '495429887916508183' administration_id: 123 company_name: Foobar B.V. city: Enschede country: NL zipcode: Zipcode address1: Straat 1 address2: null email: foobar@example.com phone: null bank_account_name: null bank_account_number: null bank_account_bic: null custom_fields: - id: '495429887875613715' name: custom_field_b29db7f697b89e1d2fbd value: my custom value updated_at: '2026-08-14T09:13:01.406Z' created_at: '2026-08-14T09:13:01.406Z' chamber_of_commerce: '08155914' tax_number: NL817575546B01 CreatesAnIdentity: summary: Creates an identity value: id: '495429888037094434' administration_id: 123 company_name: Foobar B.V. city: Enschede country: NL zipcode: Zipcode address1: Straat 1 address2: null email: foobar@example.com phone: null bank_account_name: null bank_account_number: null bank_account_bic: null custom_fields: [] updated_at: '2026-08-14T09:13:01.522Z' created_at: '2026-08-14T09:13:01.522Z' chamber_of_commerce: '08155914' tax_number: NL817575546B01 '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenRequiredParamsAreMissingOrInvalid: summary: Returns 422 when required params are missing or invalid value: error: company_name: - can't be blank address1: - can't be blank zipcode: - can't be blank city: - can't be blank country: - can't be blank - is invalid email: - is not a valid email address details: company_name: - error: blank address1: - error: blank zipcode: - error: blank city: - error: blank country: - error: blank - error: invalid value: null email: - error: invalid_email operationId: post_administration_id_identities /{administration_id}/ledger_accounts/{id}{format}: get: summary: Returns information about a ledger account description: |- Returns information about a ledger account. ### Required scope(s) Any of: `settings`, `sales_invoices`, `documents` or `estimates` tags: - Ledger accounts security: - bearerAuth: - settings - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A ledger account content: application/json: schema: $ref: '#/components/schemas/ledger_account_response' examples: ReturnsALedgerAccount: summary: Returns a ledger account value: id: '495429938051024827' administration_id: 123 name: Grootboekrekening fe69e1d04f1bb02460b4 account_type: revenue account_id: '80829' parent_id: null active: true created_at: '2026-08-14T09:13:49.219Z' updated_at: '2026-08-14T09:13:49.219Z' allowed_document_types: - sales_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WOmzAovEie name: Eiergeld name_english: Egg money reference: '8008040' financial_account_id: null '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenRequestingUnexistingLedgerAccount: summary: Returns 404 when requesting unexisting ledger account value: error: 'Record not found for model name: Category' operationId: get_administration_id_ledger_accounts_id patch: summary: Updates a ledger account description: |- Updates a ledger account. ### Required scope(s) `settings` tags: - Ledger accounts security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: ledger_account: type: object unevaluatedProperties: false properties: name: type: string description: Should be unique for this combination of administration and account type. account_id: type: string description: Optional field, also known as general ledger code. Should be unique. account_type: type: string enum: - non_current_assets - current_assets - equity - provisions - non_current_liabilities - current_liabilities - revenue - direct_costs - expenses - other_income_expenses parent_id: $ref: '#/components/schemas/identifier' description: Id of the parent ledger account. Should be a valid ledger account id. allowed_document_types: type: string enum: - sales_invoice - purchase_invoice - general_journal_document - financial_mutation - payment description: Restricts the document types this ledger account can be used on. Defaults to a set derived from the `account_type`. description: type: string required: [] rgs_code: type: string description: Existing RGS version 3.5 code, e.g. 'WMfoBelMfo' required: [] examples: UpdatesALedgerAccountWithTaxonomyItemByProvidingAnExistingRgsCode: summary: Updates a ledger account with taxonomy item by providing an existing rgs code value: rgs_code: WMfoBelMfo ledger_account: name: new name UpdatesTheInformationInTheLedgerAccount: summary: Updates the information in the ledger account value: ledger_account: name: New name responses: '200': description: Ledger account updated content: application/json: schema: $ref: '#/components/schemas/ledger_account_response' examples: UpdatesALedgerAccountWithTaxonomyItemByProvidingAnExistingRgsCode: summary: Updates a ledger account with taxonomy item by providing an existing rgs code value: id: '495429938147493825' administration_id: 123 name: new name account_type: revenue account_id: '80829' parent_id: null active: true created_at: '2026-08-14T09:13:49.311Z' updated_at: '2026-08-14T09:13:49.333Z' allowed_document_types: - sales_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WMfoBelMfo name: Mutatie fiscale oudedagsreserve name_english: Change in tax-deferred retirement reserve reference: '9104010' financial_account_id: null UpdatesTheInformationInTheLedgerAccount: summary: Updates the information in the ledger account value: id: '495429938203068356' administration_id: 123 name: New name account_type: revenue account_id: '80829' parent_id: null active: true created_at: '2026-08-14T09:13:49.364Z' updated_at: '2026-08-14T09:13:49.385Z' allowed_document_types: - sales_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WOmzAovEie name: Eiergeld name_english: Egg money reference: '8008040' financial_account_id: null '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorWhenProvidedRgsCodeDoesNotBelongToATaxonomyItemOfVersion35: summary: Returns error when provided rgs code does not belong to a taxonomy item of version 3.5 value: error: Given RGS code does not belong to a taxonomy item of version 3.5 symbolic: rgs_code: not_found ReturnsA404WhenTheLedgerAccountDoesNotExist: summary: Returns a 404 when the ledger account does not exist value: error: record not found symbolic: id: not_found '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsAnErrorWhenValidationsAreFailing: summary: Returns an error when validations are failing value: error: name: - can't be blank details: name: - error: blank operationId: patch_administration_id_ledger_accounts_id delete: summary: Deletes a ledger account description: |- Deletes or deactivates a ledger account. First, an attempt is made to deactivate the ledger account. If that fails, an attempt is made to delete the ledger account. Always returns a 204 status code even if the ledger account could not be deleted or deactivated. ### Required scope(s) `settings` tags: - Ledger accounts security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Ledger account deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTheLedgerAccountDoesNotExist: summary: Returns 404 when the ledger account does not exist value: error: record not found symbolic: id: not_found operationId: delete_administration_id_ledger_accounts_id /{administration_id}/ledger_accounts{format}: get: summary: List all ledger accounts of an administration description: |- Returns a list of all the ledger accounts in the administration. Pagination is not supported for this endpoint. ### Required scope(s) Any of: `settings`, `sales_invoices`, `documents` or `estimates` tags: - Ledger accounts security: - bearerAuth: - settings - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' responses: '200': description: A list of ledger accounts content: application/json: schema: type: array items: $ref: '#/components/schemas/ledger_account_response' examples: CanRequestTheLedgerAccountsIfTheUserHasPermissionForDocuments: summary: Can request the ledger accounts if the user has permission for documents value: - id: '495429852896167029' administration_id: 123 name: Algemene kosten account_type: expenses account_id: '46801.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.131Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedAlkOal name: Algemene kosten name_english: General expenses reference: '4215010' financial_account_id: null - id: '495429852927624329' administration_id: 123 name: Betaalde en/of ontvangen btw account_type: current_liabilities account_id: '16221.01' parent_id: '495429852896167032' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.115Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwAfo name: Afgedragen omzetbelasting name_english: Remitted Value Added Tax reference: '1205010.13' financial_account_id: null - id: '495429852896167032' administration_id: 123 name: Btw account_type: current_liabilities account_id: '16221.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.119Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwOvm name: Overige mutaties omzetbelasting name_english: Other Value Added Tax adjustments reference: '1205010.15' financial_account_id: null - id: '495429852895118447' administration_id: 123 name: Crediteuren account_type: current_liabilities account_id: '16011' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchCreHac name: Handelscrediteuren nominaal name_english: Trade creditors nominal reference: '1203010' financial_account_id: null - id: '495429852896167024' administration_id: 123 name: Debiteuren account_type: current_assets account_id: '13011' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorDebHad name: Handelsdebiteuren nominaal name_english: Trade debtors nominal reference: '1101010' financial_account_id: null - id: '495429852896167027' administration_id: 123 name: Financiële rekeningen account_type: current_assets account_id: '10510.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.065Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852896167035' administration_id: 123 name: Huisvestingskosten account_type: expenses account_id: '45185' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedHuiOhv name: Overige huisvestingskosten name_english: Other accommodation expenses reference: '4201270' financial_account_id: null - id: '495429852896167025' administration_id: 123 name: Hulprekeningen account_type: current_assets account_id: '13850.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.098Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvrOvk name: Overige vorderingen name_english: Other receivables reference: '1103190' financial_account_id: null - id: '495429852896167026' administration_id: 123 name: Koersverschillen account_type: other_income_expenses account_id: '84601' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WFbeWisWis name: Valutakoersverschillen name_english: Currency exchange differences reference: '8407010' financial_account_id: null - id: '495429852926575742' administration_id: 123 name: Kruisposten account_type: current_assets account_id: '10510.02' parent_id: '495429852896167025' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.079Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852927624327' administration_id: 123 name: Nog te betalen kosten account_type: current_liabilities account_id: '17201' parent_id: '495429852896167030' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchOpaNtb name: Nog te betalen andere kosten name_english: Other payable expenses reference: '1210020' financial_account_id: null - id: '495429852927624328' administration_id: 123 name: Nog te factureren omzet account_type: current_assets account_id: '14305' parent_id: '495429852896167028' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvaNtf name: Nog te factureren of nog te verzenden facturen name_english: Invoices not yet billed or sent reference: '1104030' financial_account_id: null - id: '495429852896167036' administration_id: 123 name: Omzet account_type: revenue account_id: '81180.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.127Z' allowed_document_types: - sales_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WOmzNooNdo name: Opbrengsten uit overige bronnen name_english: Revenue from other sources reference: '8004040' financial_account_id: null - id: '495429852896167034' administration_id: 123 name: Ongecategoriseerde inkomsten account_type: revenue account_id: '81180.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.129Z' allowed_document_types: - sales_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WOmzNooNdo name: Opbrengsten uit overige bronnen name_english: Revenue from other sources reference: '8004040' financial_account_id: null - id: '495429852896167033' administration_id: 123 name: Ongecategoriseerde uitgaven account_type: expenses account_id: '46801.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.134Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedAlkOal name: Algemene kosten name_english: General expenses reference: '4215010' financial_account_id: null - id: '495429852896167030' administration_id: 123 name: Overige schulden account_type: current_liabilities account_id: '16525' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchOvsOvs name: Overige schulden name_english: Other debts reference: '1209150' financial_account_id: null - id: '495429852896167028' administration_id: 123 name: Overige vorderingen account_type: current_assets account_id: '13850.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.104Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvrOvk name: Overige vorderingen name_english: Other receivables reference: '1103190' financial_account_id: null - id: '495429852926575748' administration_id: 123 name: Te betalen btw account_type: current_liabilities account_id: '16221.03' parent_id: '495429852896167032' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.123Z' allowed_document_types: - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwOlo name: 1c. Omzetbelasting leveringen/diensten belast met overige tarieven, behalve 0% name_english: 1c. Value Added Tax on supplies/services subject to other rates, except 0% reference: '1205010.04' financial_account_id: null - id: '495429852926575746' administration_id: 123 name: Te rubriceren betalingen account_type: current_liabilities account_id: '10510.05' parent_id: '495429852896167030' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.093Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852926575747' administration_id: 123 name: Te rubriceren ontvangen betalingen account_type: current_assets account_id: '10510.03' parent_id: '495429852896167028' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.085Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852926575745' administration_id: 123 name: Te rubriceren transacties account_type: current_assets account_id: '10510.04' parent_id: '495429852896167025' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.088Z' allowed_document_types: - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852926575749' administration_id: 123 name: Te vorderen btw account_type: current_liabilities account_id: '16221.04' parent_id: '495429852896167032' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.126Z' allowed_document_types: - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwVoo name: 5b. Voorbelasting name_english: 5a. Input VAT reference: '1205010.09' financial_account_id: null - id: '495429852896167031' administration_id: 123 name: Verkoopkosten account_type: expenses account_id: '45680' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedVkkOvr name: Overige verkoopkosten name_english: Other sales costs reference: '4203220' financial_account_id: null - id: '495429852927624326' administration_id: 123 name: Verrekeningen account_type: current_assets account_id: '14510' parent_id: '495429852896167025' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorTusTbt name: Tussenrekeningen betalingen name_english: Transitory account payments reference: '1105100' financial_account_id: null - id: '495429852896167037' administration_id: 123 name: Vervoerskosten account_type: expenses account_id: '45875' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedTraOtr name: Overige transportkosten name_english: Other transportation costs reference: '4205170' financial_account_id: null - id: '495429852926575743' administration_id: 123 name: Vooruitgefactureerde kosten account_type: current_assets account_id: '14101' parent_id: '495429852896167028' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvaVof name: Vooruitbetaalde facturen name_english: Prepaid invoices reference: '1104010' financial_account_id: null - id: '495429852926575744' administration_id: 123 name: Vooruitgefactureerde omzet account_type: current_liabilities account_id: '17250' parent_id: '495429852896167030' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchOpaVgo name: Vooruitgefactureerde omzet name_english: Pre-invoiced revenue reference: '1210260' financial_account_id: null CanRequestTheLedgerAccountsIfTheUserHasPermissionForEstimates: summary: Can request the ledger accounts if the user has permission for estimates value: - id: '495429852896167029' administration_id: 123 name: Algemene kosten account_type: expenses account_id: '46801.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.131Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedAlkOal name: Algemene kosten name_english: General expenses reference: '4215010' financial_account_id: null - id: '495429852927624329' administration_id: 123 name: Betaalde en/of ontvangen btw account_type: current_liabilities account_id: '16221.01' parent_id: '495429852896167032' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.115Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwAfo name: Afgedragen omzetbelasting name_english: Remitted Value Added Tax reference: '1205010.13' financial_account_id: null - id: '495429852896167032' administration_id: 123 name: Btw account_type: current_liabilities account_id: '16221.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.119Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwOvm name: Overige mutaties omzetbelasting name_english: Other Value Added Tax adjustments reference: '1205010.15' financial_account_id: null - id: '495429852895118447' administration_id: 123 name: Crediteuren account_type: current_liabilities account_id: '16011' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchCreHac name: Handelscrediteuren nominaal name_english: Trade creditors nominal reference: '1203010' financial_account_id: null - id: '495429852896167024' administration_id: 123 name: Debiteuren account_type: current_assets account_id: '13011' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorDebHad name: Handelsdebiteuren nominaal name_english: Trade debtors nominal reference: '1101010' financial_account_id: null - id: '495429852896167027' administration_id: 123 name: Financiële rekeningen account_type: current_assets account_id: '10510.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.065Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852896167035' administration_id: 123 name: Huisvestingskosten account_type: expenses account_id: '45185' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedHuiOhv name: Overige huisvestingskosten name_english: Other accommodation expenses reference: '4201270' financial_account_id: null - id: '495429852896167025' administration_id: 123 name: Hulprekeningen account_type: current_assets account_id: '13850.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.098Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvrOvk name: Overige vorderingen name_english: Other receivables reference: '1103190' financial_account_id: null - id: '495429852896167026' administration_id: 123 name: Koersverschillen account_type: other_income_expenses account_id: '84601' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WFbeWisWis name: Valutakoersverschillen name_english: Currency exchange differences reference: '8407010' financial_account_id: null - id: '495429852926575742' administration_id: 123 name: Kruisposten account_type: current_assets account_id: '10510.02' parent_id: '495429852896167025' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.079Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852927624327' administration_id: 123 name: Nog te betalen kosten account_type: current_liabilities account_id: '17201' parent_id: '495429852896167030' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchOpaNtb name: Nog te betalen andere kosten name_english: Other payable expenses reference: '1210020' financial_account_id: null - id: '495429852927624328' administration_id: 123 name: Nog te factureren omzet account_type: current_assets account_id: '14305' parent_id: '495429852896167028' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvaNtf name: Nog te factureren of nog te verzenden facturen name_english: Invoices not yet billed or sent reference: '1104030' financial_account_id: null - id: '495429852896167036' administration_id: 123 name: Omzet account_type: revenue account_id: '81180.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.127Z' allowed_document_types: - sales_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WOmzNooNdo name: Opbrengsten uit overige bronnen name_english: Revenue from other sources reference: '8004040' financial_account_id: null - id: '495429852896167034' administration_id: 123 name: Ongecategoriseerde inkomsten account_type: revenue account_id: '81180.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.129Z' allowed_document_types: - sales_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WOmzNooNdo name: Opbrengsten uit overige bronnen name_english: Revenue from other sources reference: '8004040' financial_account_id: null - id: '495429852896167033' administration_id: 123 name: Ongecategoriseerde uitgaven account_type: expenses account_id: '46801.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.134Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedAlkOal name: Algemene kosten name_english: General expenses reference: '4215010' financial_account_id: null - id: '495429852896167030' administration_id: 123 name: Overige schulden account_type: current_liabilities account_id: '16525' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchOvsOvs name: Overige schulden name_english: Other debts reference: '1209150' financial_account_id: null - id: '495429852896167028' administration_id: 123 name: Overige vorderingen account_type: current_assets account_id: '13850.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.104Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvrOvk name: Overige vorderingen name_english: Other receivables reference: '1103190' financial_account_id: null - id: '495429852926575748' administration_id: 123 name: Te betalen btw account_type: current_liabilities account_id: '16221.03' parent_id: '495429852896167032' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.123Z' allowed_document_types: - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwOlo name: 1c. Omzetbelasting leveringen/diensten belast met overige tarieven, behalve 0% name_english: 1c. Value Added Tax on supplies/services subject to other rates, except 0% reference: '1205010.04' financial_account_id: null - id: '495429852926575746' administration_id: 123 name: Te rubriceren betalingen account_type: current_liabilities account_id: '10510.05' parent_id: '495429852896167030' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.093Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852926575747' administration_id: 123 name: Te rubriceren ontvangen betalingen account_type: current_assets account_id: '10510.03' parent_id: '495429852896167028' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.085Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852926575745' administration_id: 123 name: Te rubriceren transacties account_type: current_assets account_id: '10510.04' parent_id: '495429852896167025' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.088Z' allowed_document_types: - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852926575749' administration_id: 123 name: Te vorderen btw account_type: current_liabilities account_id: '16221.04' parent_id: '495429852896167032' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.126Z' allowed_document_types: - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwVoo name: 5b. Voorbelasting name_english: 5a. Input VAT reference: '1205010.09' financial_account_id: null - id: '495429852896167031' administration_id: 123 name: Verkoopkosten account_type: expenses account_id: '45680' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedVkkOvr name: Overige verkoopkosten name_english: Other sales costs reference: '4203220' financial_account_id: null - id: '495429852927624326' administration_id: 123 name: Verrekeningen account_type: current_assets account_id: '14510' parent_id: '495429852896167025' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorTusTbt name: Tussenrekeningen betalingen name_english: Transitory account payments reference: '1105100' financial_account_id: null - id: '495429852896167037' administration_id: 123 name: Vervoerskosten account_type: expenses account_id: '45875' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedTraOtr name: Overige transportkosten name_english: Other transportation costs reference: '4205170' financial_account_id: null - id: '495429852926575743' administration_id: 123 name: Vooruitgefactureerde kosten account_type: current_assets account_id: '14101' parent_id: '495429852896167028' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvaVof name: Vooruitbetaalde facturen name_english: Prepaid invoices reference: '1104010' financial_account_id: null - id: '495429852926575744' administration_id: 123 name: Vooruitgefactureerde omzet account_type: current_liabilities account_id: '17250' parent_id: '495429852896167030' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchOpaVgo name: Vooruitgefactureerde omzet name_english: Pre-invoiced revenue reference: '1210260' financial_account_id: null ReturnsAListOfLedgerAccounts: summary: Returns a list of ledger accounts value: - id: '495429852896167029' administration_id: 123 name: Algemene kosten account_type: expenses account_id: '46801.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.131Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedAlkOal name: Algemene kosten name_english: General expenses reference: '4215010' financial_account_id: null - id: '495429852927624329' administration_id: 123 name: Betaalde en/of ontvangen btw account_type: current_liabilities account_id: '16221.01' parent_id: '495429852896167032' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.115Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwAfo name: Afgedragen omzetbelasting name_english: Remitted Value Added Tax reference: '1205010.13' financial_account_id: null - id: '495429852896167032' administration_id: 123 name: Btw account_type: current_liabilities account_id: '16221.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.119Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwOvm name: Overige mutaties omzetbelasting name_english: Other Value Added Tax adjustments reference: '1205010.15' financial_account_id: null - id: '495429852895118447' administration_id: 123 name: Crediteuren account_type: current_liabilities account_id: '16011' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchCreHac name: Handelscrediteuren nominaal name_english: Trade creditors nominal reference: '1203010' financial_account_id: null - id: '495429852896167024' administration_id: 123 name: Debiteuren account_type: current_assets account_id: '13011' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorDebHad name: Handelsdebiteuren nominaal name_english: Trade debtors nominal reference: '1101010' financial_account_id: null - id: '495429852896167027' administration_id: 123 name: Financiële rekeningen account_type: current_assets account_id: '10510.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.065Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852896167035' administration_id: 123 name: Huisvestingskosten account_type: expenses account_id: '45185' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedHuiOhv name: Overige huisvestingskosten name_english: Other accommodation expenses reference: '4201270' financial_account_id: null - id: '495429852896167025' administration_id: 123 name: Hulprekeningen account_type: current_assets account_id: '13850.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.098Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvrOvk name: Overige vorderingen name_english: Other receivables reference: '1103190' financial_account_id: null - id: '495429852896167026' administration_id: 123 name: Koersverschillen account_type: other_income_expenses account_id: '84601' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WFbeWisWis name: Valutakoersverschillen name_english: Currency exchange differences reference: '8407010' financial_account_id: null - id: '495429852926575742' administration_id: 123 name: Kruisposten account_type: current_assets account_id: '10510.02' parent_id: '495429852896167025' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.079Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852927624327' administration_id: 123 name: Nog te betalen kosten account_type: current_liabilities account_id: '17201' parent_id: '495429852896167030' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchOpaNtb name: Nog te betalen andere kosten name_english: Other payable expenses reference: '1210020' financial_account_id: null - id: '495429852927624328' administration_id: 123 name: Nog te factureren omzet account_type: current_assets account_id: '14305' parent_id: '495429852896167028' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvaNtf name: Nog te factureren of nog te verzenden facturen name_english: Invoices not yet billed or sent reference: '1104030' financial_account_id: null - id: '495429852896167036' administration_id: 123 name: Omzet account_type: revenue account_id: '81180.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.127Z' allowed_document_types: - sales_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WOmzNooNdo name: Opbrengsten uit overige bronnen name_english: Revenue from other sources reference: '8004040' financial_account_id: null - id: '495429852896167034' administration_id: 123 name: Ongecategoriseerde inkomsten account_type: revenue account_id: '81180.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.129Z' allowed_document_types: - sales_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WOmzNooNdo name: Opbrengsten uit overige bronnen name_english: Revenue from other sources reference: '8004040' financial_account_id: null - id: '495429852896167033' administration_id: 123 name: Ongecategoriseerde uitgaven account_type: expenses account_id: '46801.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.134Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedAlkOal name: Algemene kosten name_english: General expenses reference: '4215010' financial_account_id: null - id: '495429852896167030' administration_id: 123 name: Overige schulden account_type: current_liabilities account_id: '16525' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchOvsOvs name: Overige schulden name_english: Other debts reference: '1209150' financial_account_id: null - id: '495429852896167028' administration_id: 123 name: Overige vorderingen account_type: current_assets account_id: '13850.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.104Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvrOvk name: Overige vorderingen name_english: Other receivables reference: '1103190' financial_account_id: null - id: '495429852926575748' administration_id: 123 name: Te betalen btw account_type: current_liabilities account_id: '16221.03' parent_id: '495429852896167032' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.123Z' allowed_document_types: - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwOlo name: 1c. Omzetbelasting leveringen/diensten belast met overige tarieven, behalve 0% name_english: 1c. Value Added Tax on supplies/services subject to other rates, except 0% reference: '1205010.04' financial_account_id: null - id: '495429852926575746' administration_id: 123 name: Te rubriceren betalingen account_type: current_liabilities account_id: '10510.05' parent_id: '495429852896167030' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.093Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852926575747' administration_id: 123 name: Te rubriceren ontvangen betalingen account_type: current_assets account_id: '10510.03' parent_id: '495429852896167028' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.085Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852926575745' administration_id: 123 name: Te rubriceren transacties account_type: current_assets account_id: '10510.04' parent_id: '495429852896167025' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.088Z' allowed_document_types: - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852926575749' administration_id: 123 name: Te vorderen btw account_type: current_liabilities account_id: '16221.04' parent_id: '495429852896167032' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.126Z' allowed_document_types: - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwVoo name: 5b. Voorbelasting name_english: 5a. Input VAT reference: '1205010.09' financial_account_id: null - id: '495429852896167031' administration_id: 123 name: Verkoopkosten account_type: expenses account_id: '45680' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedVkkOvr name: Overige verkoopkosten name_english: Other sales costs reference: '4203220' financial_account_id: null - id: '495429852927624326' administration_id: 123 name: Verrekeningen account_type: current_assets account_id: '14510' parent_id: '495429852896167025' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorTusTbt name: Tussenrekeningen betalingen name_english: Transitory account payments reference: '1105100' financial_account_id: null - id: '495429852896167037' administration_id: 123 name: Vervoerskosten account_type: expenses account_id: '45875' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedTraOtr name: Overige transportkosten name_english: Other transportation costs reference: '4205170' financial_account_id: null - id: '495429852926575743' administration_id: 123 name: Vooruitgefactureerde kosten account_type: current_assets account_id: '14101' parent_id: '495429852896167028' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvaVof name: Vooruitbetaalde facturen name_english: Prepaid invoices reference: '1104010' financial_account_id: null - id: '495429852926575744' administration_id: 123 name: Vooruitgefactureerde omzet account_type: current_liabilities account_id: '17250' parent_id: '495429852896167030' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchOpaVgo name: Vooruitgefactureerde omzet name_english: Pre-invoiced revenue reference: '1210260' financial_account_id: null CanRequestTheLedgerAccountsIfTheUserHasPermissionForSettings: summary: Can request the ledger accounts if the user has permission for settings value: - id: '495429852896167029' administration_id: 123 name: Algemene kosten account_type: expenses account_id: '46801.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.131Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedAlkOal name: Algemene kosten name_english: General expenses reference: '4215010' financial_account_id: null - id: '495429852927624329' administration_id: 123 name: Betaalde en/of ontvangen btw account_type: current_liabilities account_id: '16221.01' parent_id: '495429852896167032' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.115Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwAfo name: Afgedragen omzetbelasting name_english: Remitted Value Added Tax reference: '1205010.13' financial_account_id: null - id: '495429852896167032' administration_id: 123 name: Btw account_type: current_liabilities account_id: '16221.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.119Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwOvm name: Overige mutaties omzetbelasting name_english: Other Value Added Tax adjustments reference: '1205010.15' financial_account_id: null - id: '495429852895118447' administration_id: 123 name: Crediteuren account_type: current_liabilities account_id: '16011' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchCreHac name: Handelscrediteuren nominaal name_english: Trade creditors nominal reference: '1203010' financial_account_id: null - id: '495429852896167024' administration_id: 123 name: Debiteuren account_type: current_assets account_id: '13011' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorDebHad name: Handelsdebiteuren nominaal name_english: Trade debtors nominal reference: '1101010' financial_account_id: null - id: '495429852896167027' administration_id: 123 name: Financiële rekeningen account_type: current_assets account_id: '10510.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.065Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852896167035' administration_id: 123 name: Huisvestingskosten account_type: expenses account_id: '45185' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedHuiOhv name: Overige huisvestingskosten name_english: Other accommodation expenses reference: '4201270' financial_account_id: null - id: '495429852896167025' administration_id: 123 name: Hulprekeningen account_type: current_assets account_id: '13850.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.098Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvrOvk name: Overige vorderingen name_english: Other receivables reference: '1103190' financial_account_id: null - id: '495429852896167026' administration_id: 123 name: Koersverschillen account_type: other_income_expenses account_id: '84601' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WFbeWisWis name: Valutakoersverschillen name_english: Currency exchange differences reference: '8407010' financial_account_id: null - id: '495429852926575742' administration_id: 123 name: Kruisposten account_type: current_assets account_id: '10510.02' parent_id: '495429852896167025' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.079Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852927624327' administration_id: 123 name: Nog te betalen kosten account_type: current_liabilities account_id: '17201' parent_id: '495429852896167030' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchOpaNtb name: Nog te betalen andere kosten name_english: Other payable expenses reference: '1210020' financial_account_id: null - id: '495429852927624328' administration_id: 123 name: Nog te factureren omzet account_type: current_assets account_id: '14305' parent_id: '495429852896167028' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvaNtf name: Nog te factureren of nog te verzenden facturen name_english: Invoices not yet billed or sent reference: '1104030' financial_account_id: null - id: '495429852896167036' administration_id: 123 name: Omzet account_type: revenue account_id: '81180.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.127Z' allowed_document_types: - sales_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WOmzNooNdo name: Opbrengsten uit overige bronnen name_english: Revenue from other sources reference: '8004040' financial_account_id: null - id: '495429852896167034' administration_id: 123 name: Ongecategoriseerde inkomsten account_type: revenue account_id: '81180.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.129Z' allowed_document_types: - sales_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WOmzNooNdo name: Opbrengsten uit overige bronnen name_english: Revenue from other sources reference: '8004040' financial_account_id: null - id: '495429852896167033' administration_id: 123 name: Ongecategoriseerde uitgaven account_type: expenses account_id: '46801.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.134Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedAlkOal name: Algemene kosten name_english: General expenses reference: '4215010' financial_account_id: null - id: '495429852896167030' administration_id: 123 name: Overige schulden account_type: current_liabilities account_id: '16525' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchOvsOvs name: Overige schulden name_english: Other debts reference: '1209150' financial_account_id: null - id: '495429852896167028' administration_id: 123 name: Overige vorderingen account_type: current_assets account_id: '13850.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.104Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvrOvk name: Overige vorderingen name_english: Other receivables reference: '1103190' financial_account_id: null - id: '495429852926575748' administration_id: 123 name: Te betalen btw account_type: current_liabilities account_id: '16221.03' parent_id: '495429852896167032' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.123Z' allowed_document_types: - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwOlo name: 1c. Omzetbelasting leveringen/diensten belast met overige tarieven, behalve 0% name_english: 1c. Value Added Tax on supplies/services subject to other rates, except 0% reference: '1205010.04' financial_account_id: null - id: '495429852926575746' administration_id: 123 name: Te rubriceren betalingen account_type: current_liabilities account_id: '10510.05' parent_id: '495429852896167030' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.093Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852926575747' administration_id: 123 name: Te rubriceren ontvangen betalingen account_type: current_assets account_id: '10510.03' parent_id: '495429852896167028' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.085Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852926575745' administration_id: 123 name: Te rubriceren transacties account_type: current_assets account_id: '10510.04' parent_id: '495429852896167025' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.088Z' allowed_document_types: - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852926575749' administration_id: 123 name: Te vorderen btw account_type: current_liabilities account_id: '16221.04' parent_id: '495429852896167032' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.126Z' allowed_document_types: - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwVoo name: 5b. Voorbelasting name_english: 5a. Input VAT reference: '1205010.09' financial_account_id: null - id: '495429852896167031' administration_id: 123 name: Verkoopkosten account_type: expenses account_id: '45680' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedVkkOvr name: Overige verkoopkosten name_english: Other sales costs reference: '4203220' financial_account_id: null - id: '495429852927624326' administration_id: 123 name: Verrekeningen account_type: current_assets account_id: '14510' parent_id: '495429852896167025' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorTusTbt name: Tussenrekeningen betalingen name_english: Transitory account payments reference: '1105100' financial_account_id: null - id: '495429852896167037' administration_id: 123 name: Vervoerskosten account_type: expenses account_id: '45875' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedTraOtr name: Overige transportkosten name_english: Other transportation costs reference: '4205170' financial_account_id: null - id: '495429852926575743' administration_id: 123 name: Vooruitgefactureerde kosten account_type: current_assets account_id: '14101' parent_id: '495429852896167028' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvaVof name: Vooruitbetaalde facturen name_english: Prepaid invoices reference: '1104010' financial_account_id: null - id: '495429852926575744' administration_id: 123 name: Vooruitgefactureerde omzet account_type: current_liabilities account_id: '17250' parent_id: '495429852896167030' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchOpaVgo name: Vooruitgefactureerde omzet name_english: Pre-invoiced revenue reference: '1210260' financial_account_id: null CanRequestTheLedgerAccountsIfTheUserHasPermissionForSalesInvoices: summary: Can request the ledger accounts if the user has permission for sales invoices value: - id: '495429852896167029' administration_id: 123 name: Algemene kosten account_type: expenses account_id: '46801.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.131Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedAlkOal name: Algemene kosten name_english: General expenses reference: '4215010' financial_account_id: null - id: '495429852927624329' administration_id: 123 name: Betaalde en/of ontvangen btw account_type: current_liabilities account_id: '16221.01' parent_id: '495429852896167032' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.115Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwAfo name: Afgedragen omzetbelasting name_english: Remitted Value Added Tax reference: '1205010.13' financial_account_id: null - id: '495429852896167032' administration_id: 123 name: Btw account_type: current_liabilities account_id: '16221.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.119Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwOvm name: Overige mutaties omzetbelasting name_english: Other Value Added Tax adjustments reference: '1205010.15' financial_account_id: null - id: '495429852895118447' administration_id: 123 name: Crediteuren account_type: current_liabilities account_id: '16011' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchCreHac name: Handelscrediteuren nominaal name_english: Trade creditors nominal reference: '1203010' financial_account_id: null - id: '495429852896167024' administration_id: 123 name: Debiteuren account_type: current_assets account_id: '13011' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorDebHad name: Handelsdebiteuren nominaal name_english: Trade debtors nominal reference: '1101010' financial_account_id: null - id: '495429852896167027' administration_id: 123 name: Financiële rekeningen account_type: current_assets account_id: '10510.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.065Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852896167035' administration_id: 123 name: Huisvestingskosten account_type: expenses account_id: '45185' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedHuiOhv name: Overige huisvestingskosten name_english: Other accommodation expenses reference: '4201270' financial_account_id: null - id: '495429852896167025' administration_id: 123 name: Hulprekeningen account_type: current_assets account_id: '13850.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.098Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvrOvk name: Overige vorderingen name_english: Other receivables reference: '1103190' financial_account_id: null - id: '495429852896167026' administration_id: 123 name: Koersverschillen account_type: other_income_expenses account_id: '84601' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WFbeWisWis name: Valutakoersverschillen name_english: Currency exchange differences reference: '8407010' financial_account_id: null - id: '495429852926575742' administration_id: 123 name: Kruisposten account_type: current_assets account_id: '10510.02' parent_id: '495429852896167025' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.079Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852927624327' administration_id: 123 name: Nog te betalen kosten account_type: current_liabilities account_id: '17201' parent_id: '495429852896167030' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchOpaNtb name: Nog te betalen andere kosten name_english: Other payable expenses reference: '1210020' financial_account_id: null - id: '495429852927624328' administration_id: 123 name: Nog te factureren omzet account_type: current_assets account_id: '14305' parent_id: '495429852896167028' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvaNtf name: Nog te factureren of nog te verzenden facturen name_english: Invoices not yet billed or sent reference: '1104030' financial_account_id: null - id: '495429852896167036' administration_id: 123 name: Omzet account_type: revenue account_id: '81180.01' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.127Z' allowed_document_types: - sales_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WOmzNooNdo name: Opbrengsten uit overige bronnen name_english: Revenue from other sources reference: '8004040' financial_account_id: null - id: '495429852896167034' administration_id: 123 name: Ongecategoriseerde inkomsten account_type: revenue account_id: '81180.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.129Z' allowed_document_types: - sales_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WOmzNooNdo name: Opbrengsten uit overige bronnen name_english: Revenue from other sources reference: '8004040' financial_account_id: null - id: '495429852896167033' administration_id: 123 name: Ongecategoriseerde uitgaven account_type: expenses account_id: '46801.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.134Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedAlkOal name: Algemene kosten name_english: General expenses reference: '4215010' financial_account_id: null - id: '495429852896167030' administration_id: 123 name: Overige schulden account_type: current_liabilities account_id: '16525' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchOvsOvs name: Overige schulden name_english: Other debts reference: '1209150' financial_account_id: null - id: '495429852896167028' administration_id: 123 name: Overige vorderingen account_type: current_assets account_id: '13850.02' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:28.104Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvrOvk name: Overige vorderingen name_english: Other receivables reference: '1103190' financial_account_id: null - id: '495429852926575748' administration_id: 123 name: Te betalen btw account_type: current_liabilities account_id: '16221.03' parent_id: '495429852896167032' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.123Z' allowed_document_types: - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwOlo name: 1c. Omzetbelasting leveringen/diensten belast met overige tarieven, behalve 0% name_english: 1c. Value Added Tax on supplies/services subject to other rates, except 0% reference: '1205010.04' financial_account_id: null - id: '495429852926575746' administration_id: 123 name: Te rubriceren betalingen account_type: current_liabilities account_id: '10510.05' parent_id: '495429852896167030' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.093Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852926575747' administration_id: 123 name: Te rubriceren ontvangen betalingen account_type: current_assets account_id: '10510.03' parent_id: '495429852896167028' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.085Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852926575745' administration_id: 123 name: Te rubriceren transacties account_type: current_assets account_id: '10510.04' parent_id: '495429852896167025' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.088Z' allowed_document_types: - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BLimKruSto name: Stortingen onderweg name_english: Deposits in transit reference: '1003010' financial_account_id: null - id: '495429852926575749' administration_id: 123 name: Te vorderen btw account_type: current_liabilities account_id: '16221.04' parent_id: '495429852896167032' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.126Z' allowed_document_types: - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchBepBtwVoo name: 5b. Voorbelasting name_english: 5a. Input VAT reference: '1205010.09' financial_account_id: null - id: '495429852896167031' administration_id: 123 name: Verkoopkosten account_type: expenses account_id: '45680' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedVkkOvr name: Overige verkoopkosten name_english: Other sales costs reference: '4203220' financial_account_id: null - id: '495429852927624326' administration_id: 123 name: Verrekeningen account_type: current_assets account_id: '14510' parent_id: '495429852896167025' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorTusTbt name: Tussenrekeningen betalingen name_english: Transitory account payments reference: '1105100' financial_account_id: null - id: '495429852896167037' administration_id: 123 name: Vervoerskosten account_type: expenses account_id: '45875' parent_id: null active: true created_at: '2026-08-14T09:12:27.912Z' updated_at: '2026-08-14T09:12:27.912Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WBedTraOtr name: Overige transportkosten name_english: Other transportation costs reference: '4205170' financial_account_id: null - id: '495429852926575743' administration_id: 123 name: Vooruitgefactureerde kosten account_type: current_assets account_id: '14101' parent_id: '495429852896167028' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BVorOvaVof name: Vooruitbetaalde facturen name_english: Prepaid invoices reference: '1104010' financial_account_id: null - id: '495429852926575744' administration_id: 123 name: Vooruitgefactureerde omzet account_type: current_liabilities account_id: '17250' parent_id: '495429852896167030' active: true created_at: '2026-08-14T09:12:28.017Z' updated_at: '2026-08-14T09:12:28.017Z' allowed_document_types: - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: BSchOpaVgo name: Vooruitgefactureerde omzet name_english: Pre-invoiced revenue reference: '1210260' financial_account_id: null operationId: get_administration_id_ledger_accounts post: summary: Creates a new ledger account description: |- The `account_type` determines the kind of ledger account, this can be any of the following values: `non_current_assets`, `current_assets`, `equity`, `provisions`, `non_current_liabilities`, `current_liabilities`, `revenue`, `direct_costs`, `expenses`, `other_income_expenses` By providing the `parent_id`, it is possible to create a tree of ledger accounts. Make sure the `account_types` of the parent and child equal. ### Required scope(s) `settings` tags: - Ledger accounts security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: ledger_account: type: object unevaluatedProperties: false properties: name: type: string description: Should be unique for this combination of administration and account type. account_type: type: string enum: - non_current_assets - current_assets - equity - provisions - non_current_liabilities - current_liabilities - revenue - direct_costs - expenses - other_income_expenses account_id: $ref: '#/components/schemas/identifier' description: Optional field, also known as general ledger code. Should be unique. parent_id: $ref: '#/components/schemas/identifier' description: Id of the parent ledger account. Should be a valid ledger account id. allowed_document_types: type: string enum: - sales_invoice - purchase_invoice - general_journal_document - financial_mutation - payment description: Restricts the document types this ledger account can be used on. Defaults to a set derived from the `account_type`. description: type: string required: - name - account_type rgs_code: type: string description: Existing RGS version 3.5 code, e.g. 'WMfoBelMfo' required: - rgs_code examples: CreatesANewLedgerAccount: summary: Creates a new ledger account value: ledger_account: name: Test ledger account account_type: expenses account_id: 2182 rgs_code: WAfsAmv CreatesANewLedgerAccountWithTaxonomyItemByProvidingAnExistingRgsCode: summary: Creates a new ledger account with taxonomy item by providing an existing rgs code value: rgs_code: WOmzAovEie ledger_account: name: Test ledger account account_type: expenses account_id: 2182 responses: '201': description: Ledger account created content: application/json: schema: $ref: '#/components/schemas/ledger_account_response' examples: CreatesANewLedgerAccount: summary: Creates a new ledger account value: id: '495429937836066740' administration_id: 123 name: Test ledger account account_type: expenses account_id: '2182' parent_id: null active: true created_at: '2026-08-14T09:13:49.014Z' updated_at: '2026-08-14T09:13:49.014Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WAfsAmv name: Afschrijvingen op materiële vaste activa name_english: Depreciation of tangible fixed assets reference: '4102000' financial_account_id: null CreatesANewLedgerAccountWithTaxonomyItemByProvidingAnExistingRgsCode: summary: Creates a new ledger account with taxonomy item by providing an existing rgs code value: id: '495429937904224182' administration_id: 123 name: Test ledger account account_type: expenses account_id: '2182' parent_id: null active: true created_at: '2026-08-14T09:13:49.078Z' updated_at: '2026-08-14T09:13:49.078Z' allowed_document_types: - purchase_invoice - financial_mutation - general_journal_document taxonomy_item: taxonomy_version: '3.5' code: WOmzAovEie name: Eiergeld name_english: Egg money reference: '8008040' financial_account_id: null '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenNameIsNotProvided: summary: Returns an error when name is not provided value: error: Name is required symbolic: ledger_account: name: required '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorWhenProvidedRgsCodeDoesNotBelongToATaxonomyItemOfVersion35: summary: Returns error when provided rgs code does not belong to a taxonomy item of version 3.5 value: error: Given RGS code does not belong to a taxonomy item of version 3.5 symbolic: rgs_code: not_found '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsAnErrorWhenAnEmptyNameIsProvided: summary: Returns an error when an empty name is provided value: error: name: - can't be blank details: name: - error: blank operationId: post_administration_id_ledger_accounts /{administration_id}/payments/{id}{format}: get: summary: Returns information about a payment description: Returns information about a payment. tags: - Payments security: - bearerAuth: [] parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A payment content: application/json: schema: $ref: '#/components/schemas/payment_response' examples: ReturnsASinglePayment: summary: Returns a single payment value: id: '495429944433706842' administration_id: 123 invoice_type: SalesInvoice invoice_id: '495429944260691780' financial_account_id: '495429944425318230' user_id: 1 payment_transaction_id: null transaction_identifier: null price: '363.0' price_base: '363.0' payment_date: '2026-08-14' credit_invoice_id: null financial_mutation_id: '495429944430561113' ledger_account_id: '495429944419026773' linked_payment_id: null manual_payment_action: null created_at: '2026-08-14T09:13:55.305Z' updated_at: '2026-08-14T09:13:55.305Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenPaymentDoesNotExist: summary: Returns 404 when payment does not exist value: error: record not found symbolic: id: not_found operationId: get_administration_id_payments_id /{administration_id}/products/identifier/{identifier}{format}: get: summary: Returns information about a product based on the identifier description: |- Finds the product by the identifier field of the product. ### Required scope(s) `settings` tags: - Products security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: identifier in: path required: true schema: type: string - $ref: '#/components/parameters/format' responses: '200': description: A product content: application/json: schema: $ref: '#/components/schemas/product_response' examples: ReturnsASingleProductBasedOnTheIdentifier: summary: Returns a single product based on the identifier value: id: '495429914657293554' administration_id: 123 description: My product description title: null identifier: SKU1234 price: '100.0' currency: EUR frequency: null frequency_type: null tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:13:26.908Z' updated_at: '2026-08-14T09:13:26.908Z' ReturnsASingleProductBasedOnTheIdentifierWithDot: summary: Returns a single product based on the identifier with dot value: id: '495429914692945140' administration_id: 123 description: My product description title: null identifier: aa.bb price: '100.0' currency: EUR frequency: null frequency_type: null tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:13:26.943Z' updated_at: '2026-08-14T09:13:26.952Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenProductDoesNotExist: summary: Returns 404 when product does not exist value: error: record not found symbolic: id: not_found operationId: get_administration_id_products_identifier_identifier /{administration_id}/products/{id}/sales_link{format}: post: summary: Create online sales link description: |- This call generates an online sales link, and allows pre-setting the contact for a checkout page. The link is valid for one hour ### Required scope(s) `settings` tags: - Products security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' - name: contact_id in: query required: false schema: $ref: '#/components/schemas/identifier' responses: '201': description: A sales link content: application/json: schema: type: string examples: CreatesAnOnlineSalesLink: summary: Creates an online sales link value: http://checkout.moneybird.dev/o/nlLnMY7l9wEo CreatesAnOnlineSalesLinkIfNoContactIdIsProvided: summary: Creates an online sales link if no contact id is provided value: http://checkout.moneybird.dev/o/GJzLMdWj8BEM '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenProductDoesNotExist: summary: Returns 404 when product does not exist value: error: 'Record not found for model name: Product' Returns404IfContactIsNotFound: summary: Returns 404 if contact is not found value: error: 'Record not found for model name: Contact' Returns404WhenProductIsNotValidForOnlineSales: summary: Returns 404 when product is not valid for online sales value: error: Product not valid for online sales operationId: post_administration_id_products_id_sales_link /{administration_id}/products/{id}{format}: get: summary: Returns information about a product description: |- Returns information about a product. ### Required scope(s) `settings` tags: - Products security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A product content: application/json: schema: $ref: '#/components/schemas/product_response' examples: ReturnsASingleProduct: summary: Returns a single product value: id: '495429915199407394' administration_id: 123 description: My product description title: null identifier: SKU1234 price: '100.0' currency: EUR frequency: null frequency_type: null tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:13:27.426Z' updated_at: '2026-08-14T09:13:27.426Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenProductDoesNotExist: summary: Returns 404 when product does not exist value: error: 'Record not found for model name: Product' operationId: get_administration_id_products_id patch: summary: Updates a product description: |- Updates a product. ### Required scope(s) `settings` tags: - Products security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: product: type: object unevaluatedProperties: false properties: title: type: string description: The name of the product, displayed on invoices and estimates. description: type: string description: A description of the product. Used as the default detail description when adding this product to a document. checkout_description: type: string description: A description shown on the checkout page when selling this product online. price: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. tax_rate_id: $ref: '#/components/schemas/identifier' description: Should be a valid tax rate id. ledger_account_id: $ref: '#/components/schemas/identifier' description: Should be a valid ledger account id. currency: type: string description: ISO three-character currency code, e.g. EUR or USD. frequency_type: type: string description: Can be `day`, `week`, `month`, `quarter` or `year`. frequency: type: integer description: Should be an integer >= 1. product_type: type: string description: Can be `digital_service`, `service` or `product`. vat_rate_type: type: string description: Can be `standard` or `reduced`. checkout_type: type: string description: Can be `product` or `subscription`. max_amount_per_order: type: integer description: When `checkout_type` is `subscription`, should be an integer 0 <= *n* < 2. document_style_id: $ref: '#/components/schemas/identifier' description: Should be a valid document style id. workflow_id: $ref: '#/components/schemas/identifier' description: Should be a valid workflow id. identifier: type: string description: Should be unique for the administration. frequency_preset: type: string description: A predefined billing interval label for subscription products, e.g. `monthly`, `quarterly`, `yearly`. required: [] required: [] examples: UpdatesAProduct: summary: Updates a product value: product: description: Updated price: '123' responses: '200': description: Product updated content: application/json: schema: $ref: '#/components/schemas/product_response' examples: UpdatesAProduct: summary: Updates a product value: id: '495429914565018861' administration_id: 123 description: Updated title: null identifier: SKU1234 price: '123.0' currency: EUR frequency: null frequency_type: null tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:13:26.820Z' updated_at: '2026-08-14T09:13:26.839Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400IfTheValidationsFail: summary: Returns a 400 if the validations fail value: error: Product is required symbolic: product: required '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenProductDoesNotExist: summary: Returns 404 when product does not exist value: error: record not found symbolic: id: not_found '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422IfTheProductIsInvalid: summary: Returns a 422 if the product is invalid value: error: description: - is too long (maximum is 4096 characters) details: description: - error: too_long count: 4096 operationId: patch_administration_id_products_id delete: summary: Deletes a product description: |- Deletes a product if it has no dependencies. If the product has associated details, subscription products, orders, or subscription templates, deletion is blocked and the product will be deactivated instead. If the product has active subscriptions or subscription templates, deactivation is blocked and an error is returned. ### Required scope(s) `settings` tags: - Products security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Product deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenProductDoesNotExist: summary: Returns 404 when product does not exist value: error: record not found symbolic: id: not_found '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsAnErrorWhenProductHasAnActiveSubscriptionProduct: summary: Returns an error when product has an active subscription product value: error: Product cannot be destroyed or deactivated ReturnsA422ResponseWhenProductHasAnSubscriptionProductInTheFuture: summary: Returns a 422 response when product has an subscription product in the future value: error: Product cannot be destroyed or deactivated operationId: delete_administration_id_products_id /{administration_id}/products{format}: get: summary: List all products of an administration description: |- Returns a paginated list of products in the administration. Each page contains 10 products. You can use the `page` parameter to fetch the next page of products. ### Required scope(s) `settings` tags: - Products security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: query in: query required: false schema: type: string description: Allows filtering by product name. examples: HandlesEmptySearchResult: summary: Handles empty search result value: kjashdfjksadhfjk AllowsFilteringByQuery: summary: Allows filtering by query value: apple - $ref: '#/components/parameters/page' description: The page to fetch, starting at 1. - $ref: '#/components/parameters/per_page' - name: currency in: query required: false schema: type: string description: ISO three-character currency code, e.g. EUR or USD. - name: active in: query required: false schema: type: - boolean - string default: true description: When true, only active products are returned. Set to false to include deactivated products. - name: for_checkout in: query required: false schema: type: - boolean - string description: When true, returns only products with online checkout enabled. When false, returns only products without checkout. Omit to include both. - name: ledger_account_id in: query required: false schema: $ref: '#/components/schemas/identifier' description: Filters products by their associated ledger account. responses: '200': description: A list of products content: application/json: schema: type: array items: $ref: '#/components/schemas/product_response' examples: ReturnsAPaginatedResponseForPage2: summary: Returns a paginated response for page 2 value: - id: '495429915262321958' administration_id: 123 description: My product description title: null identifier: SKU1234 price: '100.0' currency: EUR frequency: null frequency_type: null tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:13:27.485Z' updated_at: '2026-08-14T09:13:27.485Z' HandlesEmptySearchResult: summary: Handles empty search result value: [] ReturnsAListOfActiveProducts: summary: Returns a list of active products value: - id: '495429916502787436' administration_id: 123 description: Apple title: null identifier: null price: '100.0' currency: EUR frequency: null frequency_type: null tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:13:28.668Z' updated_at: '2026-08-14T09:13:28.668Z' - id: '495429916490204522' administration_id: 123 description: My product description title: null identifier: SKU1234 price: '100.0' currency: EUR frequency: null frequency_type: null tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:13:28.657Z' updated_at: '2026-08-14T09:13:28.657Z' - id: '495429916514321774' administration_id: 123 description: Pie title: null identifier: null price: '100.0' currency: EUR frequency: null frequency_type: null tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:13:28.680Z' updated_at: '2026-08-14T09:13:28.680Z' AllowsFilteringByQuery: summary: Allows filtering by query value: - id: '495429917210576253' administration_id: 123 description: Apple title: null identifier: null price: '100.0' currency: EUR frequency: null frequency_type: null tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:13:29.344Z' updated_at: '2026-08-14T09:13:29.344Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400IfTheRequestIsInvalid: summary: Returns a 400 if the request is invalid value: error: per_page does not have a valid value ReturnsA400IfPageParamIsInvalid: summary: Returns a 400 if page param is invalid value: error: Page is too small symbolic: page: min operationId: get_administration_id_products post: summary: Creates a new product description: |- Creates a new product. ### Required scope(s) `settings` tags: - Products security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: product: type: object unevaluatedProperties: false properties: title: type: string description: The name of the product, displayed on invoices and estimates. description: type: string description: A description of the product. Used as the default detail description when adding this product to a document. checkout_description: type: string description: A description shown on the checkout page when selling this product online via Moneybird checkout. price: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. document_style_id: $ref: '#/components/schemas/identifier' description: Should be a valid document style id. ledger_account_id: $ref: '#/components/schemas/identifier' description: Should be a valid ledger account id. tax_rate_id: $ref: '#/components/schemas/identifier' description: Should be a valid tax rate id. workflow_id: $ref: '#/components/schemas/identifier' description: Should be a valid workflow id. currency: type: string description: ISO three-character currency code, e.g. EUR or USD. checkout_type: type: string description: Can be `product` or `subscription`. frequency_type: type: string description: Can be `day`, `week`, `month`, `quarter` or `year`. frequency: type: integer description: Should be an integer >= 1. product_type: type: string description: Can be `digital_service`, `service` or `product`. vat_rate_type: type: string description: Can be `standard` or `reduced`. max_amount_per_order: type: integer description: When `checkout_type` is `subscription`, should be an integer 0 <= *n* < 2. identifier: type: string description: Should be unique for the administration. frequency_preset: type: string description: A predefined billing interval label for subscription products, e.g. `monthly`, `quarterly`, `yearly`. required: - price - ledger_account_id required: [] examples: CreatesANewProduct: summary: Creates a new product value: product: description: Geldvogel price: 50,50 tax_rate_id: 495429917907879360 ledger_account_id: 495429917918365100 responses: '201': description: Product created content: application/json: schema: $ref: '#/components/schemas/product_response' examples: CreatesANewProduct: summary: Creates a new product value: id: '495429917935142319' administration_id: 123 description: Geldvogel title: null identifier: null price: '50.5' currency: EUR frequency: null frequency_type: null tax_rate_id: '495429917907879339' ledger_account_id: '495429917918365101' created_at: '2026-08-14T09:13:30.034Z' updated_at: '2026-08-14T09:13:30.034Z' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsAnErrorWhenInformationIsMissing: summary: Returns an error when information is missing value: error: title: - can't be blank description: - can't be blank base: - must contain a title or description details: title: - error: blank description: - error: blank base: - error: must_have_a_title_or_description operationId: post_administration_id_products /{administration_id}/projects/{id}{format}: get: summary: Returns information about a project description: |- Returns information about a project. ### Required scope(s) `settings` tags: - Projects security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A project content: application/json: schema: $ref: '#/components/schemas/project_response' examples: ReturnsASingleProject: summary: Returns a single project value: id: '495429970945901635' name: Project 1 state: active budget: 10 '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenProjectDoesNotExist: summary: Returns 404 when project does not exist value: error: 'Record not found for model name: Project' operationId: get_administration_id_projects_id patch: summary: Updates a project description: |- Updates a project. Requires permission to settings. Requires a unique name within the administration (if name is provided). ### Required scope(s) `settings` tags: - Projects security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: project: type: object unevaluatedProperties: false properties: name: type: string description: Should be unique for the administration. budget: $ref: '#/components/schemas/number' description: The budget for this project in hours. required: - name required: [] examples: UpdatesAProject: summary: Updates a project value: project: name: Eagle budget: 1000 responses: '200': description: Project updated content: application/json: schema: $ref: '#/components/schemas/project_response' examples: UpdatesAProject: summary: Updates a project value: id: '495429970854675516' name: Eagle state: active budget: 1000 '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404WhenTheProjectDoesNotExist: summary: Returns a 404 when the project does not exist value: error: record not found symbolic: id: not_found '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422WhenTheProjectIsInvalid: summary: Returns a 422 when the project is invalid value: error: name: - can't be blank details: name: - error: blank operationId: patch_administration_id_projects_id delete: summary: Deletes a project description: |- Deletes a project. When there are no linked entities (sales invoices, estimates, etc.) the project is deleted. When there are linked entities, the project gets the state `archived`. ### Required scope(s) `settings` tags: - Projects security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Project deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404WhenTheProjectDoesNotExist: summary: Returns a 404 when the project does not exist value: error: record not found symbolic: id: not_found operationId: delete_administration_id_projects_id /{administration_id}/projects{format}: get: summary: List all projects of an administration description: |- Returns a paginated list of projects in the administration. Each page contains 25 projects. You can use the `page` parameter to fetch the next page of projects. It returns the active projects when no filter is applied. ### Required scope(s) `settings` tags: - Projects security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string default: state:active description: 'The filter, can be: state:all, state:archived or state:active' examples: ReturnsTheListOfFilteredArchivedProjects: summary: Returns the list of filtered archived projects value: state:archived - $ref: '#/components/parameters/per_page' description: 'Amount of projects per page, default: 25' - $ref: '#/components/parameters/page' description: The page to fetch, starting at 1. responses: '200': description: A list of projects content: application/json: schema: type: array items: $ref: '#/components/schemas/project_response' examples: ReturnsTheListOfFilteredArchivedProjects: summary: Returns the list of filtered archived projects value: - id: '495429971007767625' name: Project Blackbird state: archived budget: 10 ReturnsTheListOfProjects: summary: Returns the list of projects value: - id: '495429971059147853' name: Project 1 state: active budget: 10 '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400IfPageParamIsInvalid: summary: Returns a 400 if page param is invalid value: error: Page is too small symbolic: page: min operationId: get_administration_id_projects post: summary: Creates a new project description: |- Creates a new project. Requires a unique name within the administration. ### Required scope(s) `settings` tags: - Projects security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: project: type: object unevaluatedProperties: false properties: name: type: string description: Should be unique for the administration. budget: $ref: '#/components/schemas/number' description: The budget for this project in hours. Both a decimal and a string are accepted. required: - name required: [] examples: CreatesANewProject: summary: Creates a new project value: project: name: Falcon responses: '201': description: Project created content: application/json: schema: $ref: '#/components/schemas/project_response' examples: CreatesANewProject: summary: Creates a new project value: id: '495429971273057377' name: Falcon state: active budget: null '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsAnErrorWhenInformationIsMissing: summary: Returns an error when information is missing value: error: name: - can't be blank details: name: - error: blank operationId: post_administration_id_projects /{administration_id}/purchase_transactions/{id}/delete{format}: delete: summary: Delete a purchase transaction description: |- This endpoint is deprecated. Use the DELETE /purchase_transactions/{id} endpoint instead. Delete a purchase transaction. Requires that the purchase transaction is pending and doesn't belong to a purchase transaction batch. ### Required scope(s) `bank` deprecated: true x-sunset: '2026-12-31' tags: - Purchase transactions security: - bearerAuth: - bank parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Purchase transaction deleted operationId: delete_administration_id_purchase_transactions_id_delete /{administration_id}/purchase_transactions/{id}{format}: get: summary: Get a purchase transaction by id description: |- Get a purchase transaction by id. ### Required scope(s) `bank` tags: - Purchase transactions security: - bearerAuth: - bank parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A purchase transaction content: application/json: schema: $ref: '#/components/schemas/purchase_transaction_response' examples: ReturnsPurchaseTransactionWhenFinancialaccountIsNotABankaccount: summary: Returns purchase transaction when financialaccount is not a bankaccount value: id: '495429877919385271' administration_id: 123 financial_account_id: '495429877883733679' payment_instrument_id: null state: open sepa_iban: NL47TEST9876543210 sepa_iban_account_name: Test Inc. sepa_bic: TESTNL22 source_sepa_iban: null source_sepa_iban_account_name: null date: '2026-08-14' description: FOOBAR-2 end_to_end_id: FOOBAR-2 contact: id: '495429877893170866' administration_id: 123 company_name: Relation 2 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-2 tax_number: null chamber_of_commerce: null bank_account: NL47TEST9876543210 is_trusted: false max_transfer_amount: null attention: null email: contact2@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: contact2@example.com send_estimates_to_attention: null send_estimates_to_email: null direct_debit: false sepa_active: false sepa_iban: NL47TEST9876543210 sepa_iban_account_name: Test Inc. sepa_bic: TESTNL22 sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:12:51.847Z' updated_at: '2026-08-14T09:12:51.847Z' version: 1786698771 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false amount: '121.0' created_at: '2026-08-14T09:12:51.873Z' updated_at: '2026-08-14T09:12:51.873Z' payable_type: Document payable_id: '495429877910996661' payment_method: null ReturnsPurchaseTransactionWhenSuccessful: summary: Returns purchase transaction when successful value: id: '495429878027388608' administration_id: 123 financial_account_id: '495429878022145726' payment_instrument_id: null state: open sepa_iban: NL47TEST9876543210 sepa_iban_account_name: Test Inc. sepa_bic: TESTNL22 source_sepa_iban: NL28INGB0000000001 source_sepa_iban_account_name: ING NL28INGB0000000001 date: '2026-08-14' description: FOOBAR-1 end_to_end_id: FOOBAR-1 contact: id: '495429877987542713' administration_id: 123 company_name: Relation 1 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: NL47TEST9876543210 is_trusted: false max_transfer_amount: null attention: null email: contact1@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: contact1@example.com send_estimates_to_attention: null send_estimates_to_email: null direct_debit: false sepa_active: false sepa_iban: NL47TEST9876543210 sepa_iban_account_name: Test Inc. sepa_bic: TESTNL22 sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:12:51.937Z' updated_at: '2026-08-14T09:12:51.937Z' version: 1786698771 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false amount: '121.0' created_at: '2026-08-14T09:12:51.976Z' updated_at: '2026-08-14T09:12:51.976Z' payable_type: Document payable_id: '495429878007465660' payment_method: null '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorsWhenAnErrorOccurred: summary: Returns errors when an error occurred value: error: 'Record not found for model name: Purchase transaction' operationId: get_administration_id_purchase_transactions_id delete: summary: Delete a purchase transaction description: |- Delete a purchase transaction. Requires that the purchase transaction is pending and doesn't belong to a purchase transaction batch. ### Required scope(s) `bank` tags: - Purchase transactions security: - bearerAuth: - bank parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Purchase transaction deleted operationId: delete_administration_id_purchase_transactions_id /{administration_id}/purchase_transactions{format}: get: summary: List all purchase transactions description: |- Returns a list of purchase transactions in the administration. ### Required scope(s) `bank` tags: - Purchase transactions security: - bearerAuth: - bank parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: |- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:open`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | --- | --- | --- | --- | | state | `String` | `all` | `all`, `open`, `pending_payment`, `paid` or `cancelled` | | period | `String` | `nil` | This can either be the description of a period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom period (`201301..201302`, `20130101..20130131`) | | unbatched | `Boolean` | `true` | `true` or `false` | You can filter by multiple states at the same time as well. To do this, separate the state values by a pipe: `state:open|pending_payment`. schema: type: string default: unbatched:true examples: ReturnsAllPurchaseTransactionsFilteredOnPeriod: summary: Returns all purchase transactions filtered on period value: period:this_month DoesNotListTransactions: summary: Does not list transactions value: state:pending_payment,unbatched:true,signable_by_user:true ReturnsOnlyPurchaseTransactionsReadyToBeSigned: summary: Returns only purchase transactions ready to be signed value: state:awaiting_authorization,unbatched:true,signable_by_user:true - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: A list of purchase transactions content: application/json: schema: type: array items: $ref: '#/components/schemas/purchase_transaction_response' examples: ReturnsAllPurchaseTransactionsFilteredOnPeriod: summary: Returns all purchase transactions filtered on period value: - id: '495429877039629911' administration_id: 123 financial_account_id: '495429877032289877' payment_instrument_id: null state: open sepa_iban: NL47TEST9876543210 sepa_iban_account_name: Test Inc. sepa_bic: TESTNL22 source_sepa_iban: NL28INGB0000000001 source_sepa_iban_account_name: ING NL28INGB0000000001 date: '2026-08-14' description: FOOBAR-1 end_to_end_id: FOOBAR-1 contact: id: '495429876994541136' administration_id: 123 company_name: Relation 1 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: NL47TEST9876543210 is_trusted: false max_transfer_amount: null attention: null email: contact1@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: contact1@example.com send_estimates_to_attention: null send_estimates_to_email: null direct_debit: false sepa_active: false sepa_iban: NL47TEST9876543210 sepa_iban_account_name: Test Inc. sepa_bic: TESTNL22 sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:12:50.989Z' updated_at: '2026-08-14T09:12:50.989Z' version: 1786698770 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false amount: '121.0' created_at: '2026-08-14T09:12:51.033Z' updated_at: '2026-08-14T09:12:51.033Z' payable_type: Document payable_id: '495429877016561235' payment_method: null ReturnsAllPurchaseTransactionsOfAnAdministration: summary: Returns all purchase transactions of an administration value: - id: '495429877209499241' administration_id: 123 financial_account_id: '495429877203207783' payment_instrument_id: null state: open sepa_iban: NL47TEST9876543210 sepa_iban_account_name: Test Inc. sepa_bic: TESTNL22 source_sepa_iban: NL28INGB0000000001 source_sepa_iban_account_name: ING NL28INGB0000000001 date: '2026-08-14' description: FOOBAR-1 end_to_end_id: FOOBAR-1 contact: id: '495429877166507618' administration_id: 123 company_name: Relation 1 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: NL47TEST9876543210 is_trusted: false max_transfer_amount: null attention: null email: contact1@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: contact1@example.com send_estimates_to_attention: null send_estimates_to_email: null direct_debit: false sepa_active: false sepa_iban: NL47TEST9876543210 sepa_iban_account_name: Test Inc. sepa_bic: TESTNL22 sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:12:51.153Z' updated_at: '2026-08-14T09:12:51.153Z' version: 1786698771 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false amount: '121.0' created_at: '2026-08-14T09:12:51.195Z' updated_at: '2026-08-14T09:12:51.195Z' payable_type: Document payable_id: '495429877187479141' payment_method: null DoesNotListTransactions: summary: Does not list transactions value: [] DoesNotListPaidTransactions: summary: Does not list paid transactions value: [] ReturnsOnlyPurchaseTransactionsReadyToBeSigned: summary: Returns only purchase transactions ready to be signed value: - id: '495429877750564516' administration_id: 123 financial_account_id: '495429877742175905' payment_instrument_id: null state: awaiting_authorization sepa_iban: NL47TEST9876543210 sepa_iban_account_name: Test Inc. sepa_bic: TESTNL22 source_sepa_iban: NL35ADYB0000000001 source_sepa_iban_account_name: Moneybird NL35ADYB0000000001 date: '2026-08-14' description: 2026-0003 end_to_end_id: 2026-0003 contact: id: '495429877712815772' administration_id: 123 company_name: Relation 2 firstname: null lastname: null address1: null address2: null zipcode: null city: null country: NL phone: null delivery_method: Email customer_id: customer-2 tax_number: null chamber_of_commerce: null bank_account: NL47TEST9876543210 is_trusted: false max_transfer_amount: null attention: null email: contact2@example.com email_ubl: false send_invoices_to_attention: null send_invoices_to_email: contact2@example.com send_estimates_to_attention: null send_estimates_to_email: null direct_debit: false sepa_active: false sepa_iban: NL47TEST9876543210 sepa_iban_account_name: Test Inc. sepa_bic: TESTNL22 sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:12:51.674Z' updated_at: '2026-08-14T09:12:51.674Z' version: 1786698771 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false amount: '121.0' created_at: '2026-08-14T09:12:51.712Z' updated_at: '2026-08-14T09:12:51.712Z' payable_type: Document payable_id: '495429877729592991' payment_method: null operationId: get_administration_id_purchase_transactions /{administration_id}/recurring_sales_invoices/synchronization{format}: get: summary: List all IDs and versions description: |- Returns all recurring sales invoices in the administration. The list contains the invoice id and the version of the recurring invoice. Check if the version of the recurring invoice is newer than the version you have stored locally, use the `POST` variant for fetching recurring invoices with the given IDs. ### Required scope(s) `sales_invoices` tags: - Recurring sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: Comma-separated `key:value` filter terms. Same syntax as `GET /recurring_sales_invoices` — see that operation's description for the available keys. schema: type: string examples: RetrievesTheIdsForSynchronizationWithAFilter: summary: Retrieves the ids for synchronization with a filter value: frequency:month responses: '200': description: IDs and versions of records content: application/json: schema: type: array items: type: object unevaluatedProperties: false properties: id: type: - integer - string version: type: - integer - string examples: RetrievesTheIdsForSynchronizationWithAFilter: summary: Retrieves the ids for synchronization with a filter value: - id: '495429910572042052' version: 1786698803 ReturnsUniqueIdsEvenWhenRecurringSalesInvoicesHaveMultipleAttachments: summary: Returns unique ids even when recurring sales invoices have multiple attachments value: - id: '495429910680045393' version: 1786698803 RetrievesTheIdsForSynchronization: summary: Retrieves the ids for synchronization value: - id: '495429910835234662' version: 1786698803 - id: '495429910795388768' version: 1786698803 operationId: get_administration_id_recurring_sales_invoices_synchronization post: summary: Fetch recurring sales invoices with given IDs x-query: true description: |- Given a list of recurring sales invoice IDs, returns the details of the recurring invoices. Returns a maximum of 100 recurring invoices, even if more IDs are provided. ### Required scope(s) `sales_invoices` tags: - Recurring sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: ids: type: array items: type: - integer - string required: - ids examples: RetrievesRecurringSalesInvoicesGivenByIds: summary: Retrieves recurring sales invoices given by ids value: ids: - 495429912628298800 - 495429912662901800 responses: '200': description: A list of recurring sales invoices content: application/json: schema: type: array items: $ref: '#/components/schemas/recurring_sales_invoice_response' examples: RetrievesRecurringSalesInvoicesGivenByIds: summary: Retrieves recurring sales invoices given by ids value: - id: '495429912662901825' administration_id: 123 contact_id: '495429912603132988' contact: id: '495429912603132988' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-2 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:24.950Z' updated_at: '2026-08-14T09:13:24.950Z' version: 1786698804 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '495429853366977679' start_date: '2026-08-15' invoice_date: '2026-08-15' last_date: '2026-08-15' active: true payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. reference: Project X language: nl currency: EUR discount: '0.0' first_due_interval: 14 auto_send: false sending_scheduled_at: null sending_scheduled_user_id: null frequency_type: month frequency: 1 created_at: '2026-08-14T09:13:25.007Z' updated_at: '2026-08-14T09:13:25.011Z' version: 1786698805 prices_are_incl_tax: false total_price_excl_tax: '2.91' total_price_excl_tax_base: '2.91' total_price_incl_tax: '3.52' total_price_incl_tax_base: '3.52' details: - id: '495429912664998978' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 5 stuks amount_decimal: '5.0' description: Appels price: '0.45' period: null row_order: 1 total_price_excl_tax_with_discount: '2.25' total_price_excl_tax_with_discount_base: '2.25' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:25.008Z' updated_at: '2026-08-14T09:13:25.008Z' - id: '495429912666047555' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 2 stuks amount_decimal: '2.0' description: Peren price: '0.33' period: null row_order: 2 total_price_excl_tax_with_discount: '0.66' total_price_excl_tax_with_discount_base: '0.66' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:25.010Z' updated_at: '2026-08-14T09:13:25.010Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:25.013Z' updated_at: '2026-08-14T09:13:25.013Z' subscription: null - id: '495429912628298813' administration_id: 123 contact_id: '495429912603132988' contact: id: '495429912603132988' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-2 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:24.950Z' updated_at: '2026-08-14T09:13:24.950Z' version: 1786698804 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '495429853366977679' start_date: '2026-08-15' invoice_date: '2026-08-15' last_date: '2026-08-15' active: true payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. reference: Project X language: nl currency: EUR discount: '0.0' first_due_interval: 14 auto_send: false sending_scheduled_at: null sending_scheduled_user_id: null frequency_type: year frequency: 1 created_at: '2026-08-14T09:13:24.974Z' updated_at: '2026-08-14T09:13:24.978Z' version: 1786698804 prices_are_incl_tax: false total_price_excl_tax: '2.91' total_price_excl_tax_base: '2.91' total_price_incl_tax: '3.52' total_price_incl_tax_base: '3.52' details: - id: '495429912630395966' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 5 stuks amount_decimal: '5.0' description: Appels price: '0.45' period: null row_order: 1 total_price_excl_tax_with_discount: '2.25' total_price_excl_tax_with_discount_base: '2.25' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:24.975Z' updated_at: '2026-08-14T09:13:24.975Z' - id: '495429912632493119' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 2 stuks amount_decimal: '2.0' description: Peren price: '0.33' period: null row_order: 2 total_price_excl_tax_with_discount: '0.66' total_price_excl_tax_with_discount_base: '0.66' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:24.977Z' updated_at: '2026-08-14T09:13:24.977Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:24.980Z' updated_at: '2026-08-14T09:13:24.980Z' subscription: null '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenInvalidParametersAreProvided: summary: Returns 400 when invalid parameters are provided value: error: Ids isn't an array symbolic: ids: array operationId: post_administration_id_recurring_sales_invoices_synchronization /{administration_id}/recurring_sales_invoices/{id}{format}: get: summary: Get a recurring sales invoice by id description: |- Get a recurring sales invoice by id. ### Required scope(s) `sales_invoices` tags: - Recurring sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A recurring sales invoice content: application/json: schema: $ref: '#/components/schemas/recurring_sales_invoice_response' examples: ReturnsInvoiceByGivenId: summary: Returns invoice by given id value: id: '495429910237546278' administration_id: 123 contact_id: '495429910200846116' contact: id: '495429910200846116' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:22.658Z' updated_at: '2026-08-14T09:13:22.658Z' version: 1786698802 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '495429853366977679' start_date: '2026-08-15' invoice_date: '2026-08-15' last_date: '2026-08-15' active: true payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. reference: Project X language: nl currency: EUR discount: '0.0' first_due_interval: 14 auto_send: false sending_scheduled_at: null sending_scheduled_user_id: null frequency_type: month frequency: 1 created_at: '2026-08-14T09:13:22.693Z' updated_at: '2026-08-14T09:13:22.698Z' version: 1786698802 prices_are_incl_tax: false total_price_excl_tax: '2.91' total_price_excl_tax_base: '2.91' total_price_incl_tax: '3.52' total_price_incl_tax_base: '3.52' details: - id: '495429910238594855' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 5 stuks amount_decimal: '5.0' description: Appels price: '0.45' period: null row_order: 1 total_price_excl_tax_with_discount: '2.25' total_price_excl_tax_with_discount_base: '2.25' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:22.695Z' updated_at: '2026-08-14T09:13:22.695Z' - id: '495429910240692008' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 2 stuks amount_decimal: '2.0' description: Peren price: '0.33' period: null row_order: 2 total_price_excl_tax_with_discount: '0.66' total_price_excl_tax_with_discount_base: '0.66' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:22.697Z' updated_at: '2026-08-14T09:13:22.697Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:22.700Z' updated_at: '2026-08-14T09:13:22.700Z' subscription: null '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenInvoiceDoesNotExist: summary: Returns 404 when invoice does not exist value: error: record not found symbolic: id: not_found operationId: get_administration_id_recurring_sales_invoices_id patch: summary: Updates a recurring sales invoice description: |- Updates a recurring sales invoice. Only possible if the recurring sales invoice has no active subscription. ### Required scope(s) `sales_invoices` tags: - Recurring sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: recurring_sales_invoice: type: object unevaluatedProperties: false properties: document_style_id: $ref: '#/components/schemas/identifier' description: Should be a valid document style id. contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. contact_person_id: $ref: '#/components/schemas/identifier_nullable' description: Should be a valid contact person id. update_contact: type: - boolean - string description: When `true`, the contact's address and other details are refreshed from the current contact record each time a new invoice is generated. reference: type: string description: A reference to include on each generated invoice, e.g. a contract or project code. invoice_date: type: string description: Should be in the future. workflow_id: $ref: '#/components/schemas/identifier' description: Should be a valid workflow id. currency: type: string description: ISO three-character currency code, e.g. EUR or USD. first_due_interval: type: integer description: The number of days after the invoice date before each generated invoice is due. prices_are_incl_tax: type: - boolean - string description: Whether the prices on generated invoices are inclusive of tax. discount: $ref: '#/components/schemas/number' description: Discount percentage, e.g. 10,0%. frequency_type: type: string description: Can be `day`, `week`, `month`, `quarter` or `year`. frequency: type: string description: The interval multiplier. Combined with `frequency_type` to determine the billing cycle. has_desired_count: type: - boolean - string description: When `true`, the recurring invoice stops after `desired_count` invoices have been created. desired_count: type: string description: The maximum number of invoices to generate. Only applied when `has_desired_count` is `true`. auto_send: type: - boolean - string description: When `true`, each generated invoice is automatically sent to the contact. mergeable: type: - boolean - string description: When `true`, generated invoices may be merged with other mergeable invoices for the same contact, if they share the same workflow, layout, currency, language and other invoice settings. details_attributes: $ref: '#/components/schemas/details_attributes' custom_fields_attributes: $ref: '#/components/schemas/custom_fields_attributes' required: [] required: [] examples: UpdatesTheRecurringSalesInvoice: summary: Updates the recurring sales invoice value: recurring_sales_invoice: reference: Reference changed UpdatesARecurringSalesInvoiceDetail: summary: Updates a recurring sales invoice detail value: recurring_sales_invoice: details_attributes: '0': id: 495429912348328960 price: 10 responses: '200': description: Recurring sales invoice updated content: application/json: schema: $ref: '#/components/schemas/recurring_sales_invoice_response' examples: UpdatesTheRecurringSalesInvoice: summary: Updates the recurring sales invoice value: id: '495429912239277078' administration_id: 123 contact_id: '495429912207819796' contact: id: '495429912207819796' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:24.572Z' updated_at: '2026-08-14T09:13:24.572Z' version: 1786698804 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '495429853366977679' start_date: '2026-08-15' invoice_date: '2026-08-15' last_date: '2026-08-15' active: true payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. reference: Reference changed language: nl currency: EUR discount: '0.0' first_due_interval: 14 auto_send: false sending_scheduled_at: null sending_scheduled_user_id: null frequency_type: month frequency: 1 created_at: '2026-08-14T09:13:24.602Z' updated_at: '2026-08-14T09:13:24.627Z' version: 1786698804 prices_are_incl_tax: false total_price_excl_tax: '2.91' total_price_excl_tax_base: '2.91' total_price_incl_tax: '3.52' total_price_incl_tax_base: '3.52' details: - id: '495429912240325655' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 5 stuks amount_decimal: '5.0' description: Appels price: '0.45' period: null row_order: 1 total_price_excl_tax_with_discount: '2.25' total_price_excl_tax_with_discount_base: '2.25' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:24.604Z' updated_at: '2026-08-14T09:13:24.604Z' - id: '495429912242422808' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 2 stuks amount_decimal: '2.0' description: Peren price: '0.33' period: null row_order: 2 total_price_excl_tax_with_discount: '0.66' total_price_excl_tax_with_discount_base: '0.66' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:24.605Z' updated_at: '2026-08-14T09:13:24.605Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:24.608Z' updated_at: '2026-08-14T09:13:24.608Z' subscription: null UpdatesARecurringSalesInvoiceDetail: summary: Updates a recurring sales invoice detail value: id: '495429912347280413' administration_id: 123 contact_id: '495429912316871707' contact: id: '495429912316871707' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:24.676Z' updated_at: '2026-08-14T09:13:24.676Z' version: 1786698804 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '495429853366977679' start_date: '2026-08-15' invoice_date: '2026-08-15' last_date: '2026-08-15' active: true payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. reference: Project X language: nl currency: EUR discount: '0.0' first_due_interval: 14 auto_send: false sending_scheduled_at: null sending_scheduled_user_id: null frequency_type: month frequency: 1 created_at: '2026-08-14T09:13:24.705Z' updated_at: '2026-08-14T09:13:24.732Z' version: 1786698804 prices_are_incl_tax: false total_price_excl_tax: '50.66' total_price_excl_tax_base: '50.66' total_price_incl_tax: '61.3' total_price_incl_tax_base: '61.3' details: - id: '495429912348328990' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 5 stuks amount_decimal: '5.0' description: Appels price: '10.0' period: null row_order: 1 total_price_excl_tax_with_discount: '50.0' total_price_excl_tax_with_discount_base: '50.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:24.706Z' updated_at: '2026-08-14T09:13:24.731Z' - id: '495429912350426143' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 2 stuks amount_decimal: '2.0' description: Peren price: '0.33' period: null row_order: 2 total_price_excl_tax_with_discount: '0.66' total_price_excl_tax_with_discount_base: '0.66' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:24.708Z' updated_at: '2026-08-14T09:13:24.708Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:24.711Z' updated_at: '2026-08-14T09:13:24.711Z' subscription: null '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenRecurringSalesInvoiceCannotBeEditedDueToActiveSubscription: summary: Returns 400 when recurring sales invoice cannot be edited due to active subscription value: error: cannot be updated symbolic: id: cannot_be_updated '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenRecurringSalesInvoiceDoesNotExist: summary: Returns 404 when recurring sales invoice does not exist value: error: record not found symbolic: id: not_found '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenValidationFails: summary: Returns 422 when validation fails value: error: invoice_date: - must be further in the future details: invoice_date: - error: too_early operationId: patch_administration_id_recurring_sales_invoices_id delete: summary: Destroy or deactivate a recurring sales invoice description: |- A recurring sales invoice will be destroyed if it has not created any sales invoices. If it has created sales invoices, it will be deactivated. ### Required scope(s) `sales_invoices` tags: - Recurring sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Recurring sales invoice deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenRecurringSalesInvoiceDoesNotExist: summary: Returns 404 when recurring sales invoice does not exist value: error: record not found symbolic: id: not_found operationId: delete_administration_id_recurring_sales_invoices_id /{administration_id}/recurring_sales_invoices/{recurring_sales_invoice_id}/notes/{id}{format}: delete: summary: Destroys note from entity description: |- Deletes a note from the recurring sales invoice. ### Required scope(s) `sales_invoices` tags: - Recurring sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: recurring_sales_invoice_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Note deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404IfTheIdIsWrong: summary: Returns 404 if the id is wrong value: error: record not found symbolic: id: not_found operationId: delete_administration_id_recurring_sales_invoices_recurring_sales_invoice_id_notes_id /{administration_id}/recurring_sales_invoices/{recurring_sales_invoice_id}/notes{format}: post: summary: Adds note to entity description: |- Adds a note to the recurring sales invoice. ### Required scope(s) `sales_invoices` tags: - Recurring sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: recurring_sales_invoice_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: note: type: object unevaluatedProperties: false properties: note: type: string description: '**Required**. Text for the note or to-do.' todo: type: - boolean - string description: If `true` the note is a to-do. assignee_id: $ref: '#/components/schemas/identifier' description: Assign to-do to user. Should be a valid user id. If assignee_id is provided the note will be a to-do. required: [] required: [] examples: CreateANote: summary: Create a note value: note: note: Text of the note assignee_id: 495429911750641600 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '495429911767418848' administration_id: 123 entity_id: '495429911737010138' entity_type: RecurringSalesInvoice user_id: '495429852315255909' assignee_id: '495429911750641630' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-08-14T09:13:24.152Z' updated_at: '2026-08-14T09:13:24.152Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenRecurringSalesInvoiceDoesNotExist: summary: Returns 400 when recurring sales invoice does not exist value: error: Entity is invalid; User has no permissions to notes for RecurringSalesInvoice symbolic: entity: not_found user: insufficient_permissions '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenValidationFails: summary: Returns 422 when validation fails value: error: note: - can't be blank todo_type: - can't be blank details: note: - error: blank todo_type: - error: blank operationId: post_administration_id_recurring_sales_invoices_recurring_sales_invoice_id_notes /{administration_id}/recurring_sales_invoices{format}: get: summary: List all recurring sales invoices description: |- Returns a paginated list of recurring sales invoices in the administration. ### Required scope(s) `sales_invoices` tags: - Recurring sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: |- Filters are `key:value` terms separated by commas (e.g. `state:active,contact_id:123`). Any filter you pass replaces the defaults below entirely, so include every key you need. Available filters: | **Filter** | **Type** | **Default** | **Description** | | --- | --- | --- | --- | | state | `String` | `active` | `active` or `inactive` | | frequency | `String` | `all` | `all`, `day`, `week`, `month`, `quarter` or `year` | | auto_send | `Boolean` | `null` | `null`, `true` or `false` | | contact_id | `Integer` | | Filters recurring invoices by a single contact | | workflow_id | `Integer` | | Filters recurring invoices by a single workflow | schema: type: string default: state:active examples: ReturnsRecurringInvoicesFilteredOnContact: summary: Returns recurring invoices filtered on contact value: contact_id:495429912850596947 ReturnsRecurringInvoicesFilteredOnFrequency: summary: Returns recurring invoices filtered on frequency value: frequency:month - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: A list of recurring sales invoices content: application/json: schema: type: array items: $ref: '#/components/schemas/recurring_sales_invoice_response' examples: ReturnsRecurringInvoicesFilteredOnContact: summary: Returns recurring invoices filtered on contact value: - id: '495429912882054229' administration_id: 123 contact_id: '495429912850596947' contact: id: '495429912850596947' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:25.185Z' updated_at: '2026-08-14T09:13:25.185Z' version: 1786698805 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '495429853366977679' start_date: '2026-08-15' invoice_date: '2026-08-15' last_date: '2026-08-15' active: true payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. reference: Project X language: nl currency: EUR discount: '0.0' first_due_interval: 14 auto_send: false sending_scheduled_at: null sending_scheduled_user_id: null frequency_type: month frequency: 1 created_at: '2026-08-14T09:13:25.216Z' updated_at: '2026-08-14T09:13:25.220Z' version: 1786698805 prices_are_incl_tax: false total_price_excl_tax: '2.91' total_price_excl_tax_base: '2.91' total_price_incl_tax: '3.52' total_price_incl_tax_base: '3.52' details: - id: '495429912884151382' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 5 stuks amount_decimal: '5.0' description: Appels price: '0.45' period: null row_order: 1 total_price_excl_tax_with_discount: '2.25' total_price_excl_tax_with_discount_base: '2.25' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:25.217Z' updated_at: '2026-08-14T09:13:25.217Z' - id: '495429912886248535' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 2 stuks amount_decimal: '2.0' description: Peren price: '0.33' period: null row_order: 2 total_price_excl_tax_with_discount: '0.66' total_price_excl_tax_with_discount_base: '0.66' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:25.219Z' updated_at: '2026-08-14T09:13:25.219Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:25.222Z' updated_at: '2026-08-14T09:13:25.222Z' subscription: null ReturnsAllRecurringSalesInvoicesOfAnAdministration: summary: Returns all recurring sales invoices of an administration value: - id: '495429913465062547' administration_id: 123 contact_id: '495429913359156362' contact: id: '495429913359156362' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-2 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:25.670Z' updated_at: '2026-08-14T09:13:25.670Z' version: 1786698805 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '495429853366977679' start_date: '2026-08-15' invoice_date: '2026-08-15' last_date: '2026-08-15' active: true payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. reference: Project X language: nl currency: EUR discount: '0.0' first_due_interval: 14 auto_send: false sending_scheduled_at: null sending_scheduled_user_id: null frequency_type: year frequency: 1 created_at: '2026-08-14T09:13:25.771Z' updated_at: '2026-08-14T09:13:25.776Z' version: 1786698805 prices_are_incl_tax: false total_price_excl_tax: '2.91' total_price_excl_tax_base: '2.91' total_price_incl_tax: '3.52' total_price_incl_tax_base: '3.52' details: - id: '495429913467159700' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 5 stuks amount_decimal: '5.0' description: Appels price: '0.45' period: null row_order: 1 total_price_excl_tax_with_discount: '2.25' total_price_excl_tax_with_discount_base: '2.25' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:25.773Z' updated_at: '2026-08-14T09:13:25.773Z' - id: '495429913468208277' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 2 stuks amount_decimal: '2.0' description: Peren price: '0.33' period: null row_order: 2 total_price_excl_tax_with_discount: '0.66' total_price_excl_tax_with_discount_base: '0.66' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:25.775Z' updated_at: '2026-08-14T09:13:25.775Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:25.777Z' updated_at: '2026-08-14T09:13:25.777Z' subscription: null - id: '495429913426265231' administration_id: 123 contact_id: '495429913359156362' contact: id: '495429913359156362' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-2 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:25.670Z' updated_at: '2026-08-14T09:13:25.670Z' version: 1786698805 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '495429853366977679' start_date: '2026-08-15' invoice_date: '2026-08-15' last_date: '2026-08-15' active: true payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. reference: Project X language: nl currency: EUR discount: '0.0' first_due_interval: 14 auto_send: false sending_scheduled_at: null sending_scheduled_user_id: null frequency_type: year frequency: 1 created_at: '2026-08-14T09:13:25.734Z' updated_at: '2026-08-14T09:13:25.739Z' version: 1786698805 prices_are_incl_tax: false total_price_excl_tax: '2.91' total_price_excl_tax_base: '2.91' total_price_incl_tax: '3.52' total_price_incl_tax_base: '3.52' details: - id: '495429913427313808' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 5 stuks amount_decimal: '5.0' description: Appels price: '0.45' period: null row_order: 1 total_price_excl_tax_with_discount: '2.25' total_price_excl_tax_with_discount_base: '2.25' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:25.735Z' updated_at: '2026-08-14T09:13:25.735Z' - id: '495429913429410961' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 2 stuks amount_decimal: '2.0' description: Peren price: '0.33' period: null row_order: 2 total_price_excl_tax_with_discount: '0.66' total_price_excl_tax_with_discount_base: '0.66' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:25.737Z' updated_at: '2026-08-14T09:13:25.737Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:25.741Z' updated_at: '2026-08-14T09:13:25.741Z' subscription: null - id: '495429913387467915' administration_id: 123 contact_id: '495429913359156362' contact: id: '495429913359156362' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-2 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:25.670Z' updated_at: '2026-08-14T09:13:25.670Z' version: 1786698805 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '495429853366977679' start_date: '2026-08-15' invoice_date: '2026-08-15' last_date: '2026-08-15' active: true payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. reference: Project X language: nl currency: EUR discount: '0.0' first_due_interval: 14 auto_send: false sending_scheduled_at: null sending_scheduled_user_id: null frequency_type: year frequency: 1 created_at: '2026-08-14T09:13:25.697Z' updated_at: '2026-08-14T09:13:25.702Z' version: 1786698805 prices_are_incl_tax: false total_price_excl_tax: '2.91' total_price_excl_tax_base: '2.91' total_price_incl_tax: '3.52' total_price_incl_tax_base: '3.52' details: - id: '495429913388516492' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 5 stuks amount_decimal: '5.0' description: Appels price: '0.45' period: null row_order: 1 total_price_excl_tax_with_discount: '2.25' total_price_excl_tax_with_discount_base: '2.25' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:25.699Z' updated_at: '2026-08-14T09:13:25.699Z' - id: '495429913390613645' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 2 stuks amount_decimal: '2.0' description: Peren price: '0.33' period: null row_order: 2 total_price_excl_tax_with_discount: '0.66' total_price_excl_tax_with_discount_base: '0.66' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:25.700Z' updated_at: '2026-08-14T09:13:25.700Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:25.704Z' updated_at: '2026-08-14T09:13:25.704Z' subscription: null - id: '495429913344476293' administration_id: 123 contact_id: '495429913308824707' contact: id: '495429913308824707' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:25.622Z' updated_at: '2026-08-14T09:13:25.622Z' version: 1786698805 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '495429853366977679' start_date: '2026-08-15' invoice_date: '2026-08-15' last_date: '2026-08-15' active: true payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. reference: Project X language: nl currency: EUR discount: '0.0' first_due_interval: 14 auto_send: false sending_scheduled_at: null sending_scheduled_user_id: null frequency_type: month frequency: 1 created_at: '2026-08-14T09:13:25.656Z' updated_at: '2026-08-14T09:13:25.661Z' version: 1786698805 prices_are_incl_tax: false total_price_excl_tax: '2.91' total_price_excl_tax_base: '2.91' total_price_incl_tax: '3.52' total_price_incl_tax_base: '3.52' details: - id: '495429913345524870' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 5 stuks amount_decimal: '5.0' description: Appels price: '0.45' period: null row_order: 1 total_price_excl_tax_with_discount: '2.25' total_price_excl_tax_with_discount_base: '2.25' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:25.658Z' updated_at: '2026-08-14T09:13:25.658Z' - id: '495429913347622023' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 2 stuks amount_decimal: '2.0' description: Peren price: '0.33' period: null row_order: 2 total_price_excl_tax_with_discount: '0.66' total_price_excl_tax_with_discount_base: '0.66' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:25.659Z' updated_at: '2026-08-14T09:13:25.659Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:25.662Z' updated_at: '2026-08-14T09:13:25.662Z' subscription: null ReturnsPaginatedRecurringSalesInvoicesOnPage1: summary: Returns paginated recurring sales invoices on page 1 value: - id: '495429913705186472' administration_id: 123 contact_id: '495429913601377439' contact: id: '495429913601377439' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-2 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:25.901Z' updated_at: '2026-08-14T09:13:25.901Z' version: 1786698805 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '495429853366977679' start_date: '2026-08-15' invoice_date: '2026-08-15' last_date: '2026-08-15' active: true payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. reference: Project X language: nl currency: EUR discount: '0.0' first_due_interval: 14 auto_send: false sending_scheduled_at: null sending_scheduled_user_id: null frequency_type: year frequency: 1 created_at: '2026-08-14T09:13:26.001Z' updated_at: '2026-08-14T09:13:26.006Z' version: 1786698806 prices_are_incl_tax: false total_price_excl_tax: '2.91' total_price_excl_tax_base: '2.91' total_price_incl_tax: '3.52' total_price_incl_tax_base: '3.52' details: - id: '495429913707283625' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 5 stuks amount_decimal: '5.0' description: Appels price: '0.45' period: null row_order: 1 total_price_excl_tax_with_discount: '2.25' total_price_excl_tax_with_discount_base: '2.25' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:26.002Z' updated_at: '2026-08-14T09:13:26.002Z' - id: '495429913709380778' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 2 stuks amount_decimal: '2.0' description: Peren price: '0.33' period: null row_order: 2 total_price_excl_tax_with_discount: '0.66' total_price_excl_tax_with_discount_base: '0.66' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:26.004Z' updated_at: '2026-08-14T09:13:26.004Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:26.007Z' updated_at: '2026-08-14T09:13:26.007Z' subscription: null ReturnsPaginatedRecurringSalesInvoicesOnPage2: summary: Returns paginated recurring sales invoices on page 2 value: - id: '495429913900221625' administration_id: 123 contact_id: '495429913837307060' contact: id: '495429913837307060' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-2 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:26.126Z' updated_at: '2026-08-14T09:13:26.126Z' version: 1786698806 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '495429853366977679' start_date: '2026-08-15' invoice_date: '2026-08-15' last_date: '2026-08-15' active: true payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. reference: Project X language: nl currency: EUR discount: '0.0' first_due_interval: 14 auto_send: false sending_scheduled_at: null sending_scheduled_user_id: null frequency_type: year frequency: 1 created_at: '2026-08-14T09:13:26.186Z' updated_at: '2026-08-14T09:13:26.191Z' version: 1786698806 prices_are_incl_tax: false total_price_excl_tax: '2.91' total_price_excl_tax_base: '2.91' total_price_incl_tax: '3.52' total_price_incl_tax_base: '3.52' details: - id: '495429913902318778' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 5 stuks amount_decimal: '5.0' description: Appels price: '0.45' period: null row_order: 1 total_price_excl_tax_with_discount: '2.25' total_price_excl_tax_with_discount_base: '2.25' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:26.188Z' updated_at: '2026-08-14T09:13:26.188Z' - id: '495429913903367355' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 2 stuks amount_decimal: '2.0' description: Peren price: '0.33' period: null row_order: 2 total_price_excl_tax_with_discount: '0.66' total_price_excl_tax_with_discount_base: '0.66' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:26.190Z' updated_at: '2026-08-14T09:13:26.190Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:26.192Z' updated_at: '2026-08-14T09:13:26.192Z' subscription: null ReturnsRecurringInvoicesFilteredOnFrequency: summary: Returns recurring invoices filtered on frequency value: - id: '495429914052265156' administration_id: 123 contact_id: '495429914018710722' contact: id: '495429914018710722' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:26.299Z' updated_at: '2026-08-14T09:13:26.299Z' version: 1786698806 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '495429853366977679' start_date: '2026-08-15' invoice_date: '2026-08-15' last_date: '2026-08-15' active: true payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. reference: Project X language: nl currency: EUR discount: '0.0' first_due_interval: 14 auto_send: false sending_scheduled_at: null sending_scheduled_user_id: null frequency_type: month frequency: 1 created_at: '2026-08-14T09:13:26.332Z' updated_at: '2026-08-14T09:13:26.336Z' version: 1786698806 prices_are_incl_tax: false total_price_excl_tax: '2.91' total_price_excl_tax_base: '2.91' total_price_incl_tax: '3.52' total_price_incl_tax_base: '3.52' details: - id: '495429914054362309' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 5 stuks amount_decimal: '5.0' description: Appels price: '0.45' period: null row_order: 1 total_price_excl_tax_with_discount: '2.25' total_price_excl_tax_with_discount_base: '2.25' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:26.333Z' updated_at: '2026-08-14T09:13:26.333Z' - id: '495429914056459462' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 2 stuks amount_decimal: '2.0' description: Peren price: '0.33' period: null row_order: 2 total_price_excl_tax_with_discount: '0.66' total_price_excl_tax_with_discount_base: '0.66' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:13:26.335Z' updated_at: '2026-08-14T09:13:26.335Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:26.338Z' updated_at: '2026-08-14T09:13:26.338Z' subscription: null '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenTooManyRecurringSalesInvoicesAreRequested: summary: Returns an error when too many recurring sales invoices are requested value: error: per_page does not have a valid value operationId: get_administration_id_recurring_sales_invoices post: summary: Creates a new recurring sales invoice description: |- A recurring sales invoice will create new sales invoices on set intervals. To create a new recurring sales invoice, you need to provide at least a contact and details for the invoice. Furthermore you need to determine the planning. The following fields will influence the planning: 1. `invoice_date`: the date in which the first invoice should be created 2. `frequency_type`: the type of frequency you want to use, for example `month` 3. `frequency`: defines the actual frequency, e.g. `frequency=2` and `frequency_type=month` will create an invoice every 2 months 4. `has_desired_count`: whether or not the desired count should take effect 5. `desired_count`: maximum number of sales invoices to create ### Required scope(s) `sales_invoices` tags: - Recurring sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: recurring_sales_invoice: type: object unevaluatedProperties: false properties: document_style_id: $ref: '#/components/schemas/identifier' description: Should be a valid document style id. contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. contact_person_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact person id. update_contact: type: - boolean - string description: When `true`, the contact's address and other details are refreshed from the current contact record each time a new invoice is generated. reference: type: string description: A reference to include on each generated invoice, e.g. a contract or project code. invoice_date: type: string description: Should be in the future. workflow_id: $ref: '#/components/schemas/identifier' description: Should be a valid workflow id. If not provided, the contact's invoice workflow is used. currency: type: string description: ISO three-character currency code, e.g. EUR or USD. Defaults to the workflow's currency. first_due_interval: type: integer description: The number of days after the invoice date before each generated invoice is due. Defaults to the first workflow step's due interval. prices_are_incl_tax: type: - boolean - string description: Whether the prices on generated invoices are inclusive of tax. Defaults to the workflow's setting. discount: $ref: '#/components/schemas/number' description: Discount percentage, e.g. 10,0%. frequency_type: type: string description: Can be `day`, `week`, `month`, `quarter` or `year`. frequency: type: string description: The interval multiplier. Combined with `frequency_type` to determine the billing cycle, e.g. `frequency=2` with `frequency_type=month` creates an invoice every 2 months. has_desired_count: type: - boolean - string description: When `true`, the recurring invoice will stop generating new invoices after `desired_count` invoices have been created. desired_count: type: string description: The maximum number of invoices to generate. Only applied when `has_desired_count` is `true`. auto_send: type: - boolean - string description: When `true`, each generated invoice is automatically sent to the contact via the configured delivery method. mergeable: type: - boolean - string description: When `true`, generated invoices may be merged with other mergeable invoices for the same contact, if they share the same workflow, layout, currency, language and other invoice settings. details_attributes: $ref: '#/components/schemas/details_attributes' custom_fields_attributes: $ref: '#/components/schemas/custom_fields_attributes' required: [] required: [] examples: CreatesANewRecurringSalesInvoice: summary: Creates a new recurring sales invoice value: recurring_sales_invoice: reference: My recurring invoice contact_id: 495429911290316740 invoice_date: '2030-01-01' details_attributes: '0': description: Table price: '10.5' tax_rate_id: 495429911295559600 ledger_account_id: 495429911303948200 responses: '201': description: Recurring sales invoice created content: application/json: schema: $ref: '#/components/schemas/recurring_sales_invoice_response' examples: CreatesANewRecurringSalesInvoice: summary: Creates a new recurring sales invoice value: id: '495429911332259752' administration_id: 123 contact_id: '495429911290316706' contact: id: '495429911290316706' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-2 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:13:23.697Z' updated_at: '2026-08-14T09:13:23.697Z' version: 1786698803 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '495429853366977679' start_date: '2030-01-01' invoice_date: '2030-01-01' last_date: null active: true payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. reference: My recurring invoice language: nl currency: EUR discount: '0.0' first_due_interval: 14 auto_send: false sending_scheduled_at: null sending_scheduled_user_id: null frequency_type: year frequency: 1 created_at: '2026-08-14T09:13:23.737Z' updated_at: '2026-08-14T09:13:23.740Z' version: 1786698803 prices_are_incl_tax: false total_price_excl_tax: '10.5' total_price_excl_tax_base: '10.5' total_price_incl_tax: '12.71' total_price_incl_tax_base: '12.71' details: - id: '495429911333308329' administration_id: 123 tax_rate_id: '495429911295559588' ledger_account_id: '495429911303948198' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Table price: '10.5' period: null row_order: 0 total_price_excl_tax_with_discount: '10.5' total_price_excl_tax_with_discount_base: '10.5' tax_report_reference: [] mandatory_tax_text: null created_at: '2026-08-14T09:13:23.739Z' updated_at: '2026-08-14T09:13:23.739Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:23.741Z' updated_at: '2026-08-14T09:13:23.741Z' subscription: null '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenMergeableIsTrueButAutoSendIsFalse: summary: Returns 400 when mergeable is true but auto send is false value: error: if mergeable is true, auto_send must be true symbolic: mergeable: invalid '402': description: Payment required content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns402WhenPaymentIsRequired: summary: Returns 402 when payment is required value: error: creating recurring sales invoices is limited symbolic: administration: limit_reached '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenValidationFails: summary: Returns 422 when validation fails value: error: invoice_date: - must be further in the future details: invoice_date: - error: too_early operationId: post_administration_id_recurring_sales_invoices /{administration_id}/reports/assets{format}: get: summary: Assets report description: |- Get the assets report for the administration. ### Required scope(s) `documents` tags: - Reports parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/period_month' security: - bearerAuth: - documents responses: '200': description: An assets report content: application/json: schema: type: array items: type: object properties: asset_id: $ref: '#/components/schemas/identifier' ledger_account_id: $ref: '#/components/schemas/identifier' name: type: string purchase_date: type: string format: date lifespan: type: - string - 'null' description: In seconds purchase_value: type: string calculated_purchase_value: type: string residual_value: type: string total_value_changes_since_purchase: type: string value_at_begin: type: string investment: type: string depreciation: type: string divestment: type: string value_changes: type: string value_at_end: type: string examples: ReturnsAssetsReport: summary: Returns assets report value: - asset_id: '495429966947681805' ledger_account_id: '495429966936147468' name: Test Asset purchase_date: '2025-01-01' lifespan: '157784760' purchase_value: '12345.67' calculated_purchase_value: '12345.67' residual_value: '10.0' total_value_changes_since_purchase: '-200.0' value_at_begin: '12145.67' investment: '0' depreciation: '0.0' divestment: '0.0' value_changes: '0.0' value_at_end: '12145.67' ReturnsSuccessForFullPeriod: summary: Returns success for full period value: - asset_id: '495429967439463993' ledger_account_id: '495429967432123960' name: Test Asset purchase_date: '2025-01-01' lifespan: '157784760' purchase_value: '12345.67' calculated_purchase_value: '12345.67' residual_value: '10.0' total_value_changes_since_purchase: '0.0' value_at_begin: '0' investment: '12345.67' depreciation: '0.0' divestment: '0.0' value_changes: '0.0' value_at_end: '12345.67' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorWhenPeriodExceedsLimit: summary: Returns error when period exceeds limit value: error: Period cannot exceed 1 month ReturnsErrorForInvalidPeriodFormat: summary: Returns error for invalid period format value: error: Period is invalid '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to documents '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_reports_assets /{administration_id}/reports/balance_sheet{format}: get: summary: Balance sheet report description: |- Get the balance sheet report for the administration showing the financial position at the end of the specified period. ### Required scope(s) `bank` tags: - Reports security: - bearerAuth: - bank parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/period' responses: '200': description: A balance sheet report content: application/json: schema: type: object properties: debit: type: object description: Debit side of the balance sheet (assets) properties: total: type: string current_assets: $ref: '#/components/schemas/balance_sheet_ledger_account' non_current_assets: $ref: '#/components/schemas/balance_sheet_ledger_account' credit: type: object description: Credit side of the balance sheet (equity and liabilities) properties: total: type: string description: Total credit amount equity: $ref: '#/components/schemas/balance_sheet_ledger_account' provisions: $ref: '#/components/schemas/balance_sheet_ledger_account' non_current_liabilities: $ref: '#/components/schemas/balance_sheet_ledger_account' current_liabilities: $ref: '#/components/schemas/balance_sheet_ledger_account' open_years: type: array description: Results per open year items: type: object properties: year: type: string value: type: string examples: ReturnsABalanceSheetReport: summary: Returns a balance sheet report value: debit: total: '1100.0' current_assets: - ledger_account_id: '495430026491069622' value: '800.0' children: - ledger_account_id: '495430026502603963' value: '100.0' non_current_assets: - ledger_account_id: '495430026512041152' value: '200.0' children: [] credit: total: '1100.0' equity: - ledger_account_id: '495430026539304143' value: '550.0' children: [] provisions: - ledger_account_id: '495430026530915530' value: '150.0' children: [] non_current_liabilities: [] current_liabilities: - ledger_account_id: '495430026521478341' value: '300.0' children: [] open_years: - year: '2024' value: '100.0' ReturnsSuccessForFullPeriod: summary: Returns success for full period value: debit: total: '1100.0' current_assets: - ledger_account_id: '495430026759505183' value: '800.0' children: - ledger_account_id: '495430026772088100' value: '100.0' non_current_assets: - ledger_account_id: '495430026782573865' value: '200.0' children: [] credit: total: '1100.0' equity: - ledger_account_id: '495430026810885432' value: '550.0' children: [] provisions: - ledger_account_id: '495430026801448243' value: '150.0' children: [] non_current_liabilities: [] current_liabilities: - ledger_account_id: '495430026792011054' value: '300.0' children: [] open_years: - year: '2024' value: '100.0' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorForInvalidPeriodFormat: summary: Returns error for invalid period format value: error: Period is invalid ReturnsErrorWhenPeriodExceedsLimit: summary: Returns error when period exceeds limit value: error: Period cannot exceed 12 months '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to bank '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_reports_balance_sheet /{administration_id}/reports/cash_flow{format}: get: summary: Cash flow report description: |- Get the cash flow report for the administration showing cash received and cash paid during the specified period. ### Required scope(s) `bank` tags: - Reports security: - bearerAuth: - bank parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/period_month' - name: financial_account_id in: query required: false description: Filter the cash flow report by a specific financial account schema: $ref: '#/components/schemas/identifier' responses: '200': description: A cash flow report content: application/json: schema: type: object properties: cash_received_by_ledger_account: $ref: '#/components/schemas/ledger_account_data' cash_paid_by_ledger_account: $ref: '#/components/schemas/ledger_account_data' opening_balance: type: string closing_balance: type: string examples: ReturnsACashFlowReport: summary: Returns a cash flow report value: cash_received_by_ledger_account: ledger_accounts: - ledger_account_id: '495429883547092291' value: '100.0' cash_paid_by_ledger_account: ledger_accounts: - ledger_account_id: '495429883578549582' value: '-50.0' opening_balance: '0' closing_balance: '50.0' ReturnsSuccessForFullPeriod: summary: Returns success for full period value: cash_received_by_ledger_account: ledger_accounts: [] cash_paid_by_ledger_account: ledger_accounts: [] opening_balance: '0' closing_balance: '0.0' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorWhenPeriodExceedsLimit: summary: Returns error when period exceeds limit value: error: Period cannot exceed 1 month ReturnsErrorForInvalidPeriodFormat: summary: Returns error for invalid period format value: error: Period is invalid '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to bank '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_reports_cash_flow /{administration_id}/reports/creditors{format}: get: summary: Creditors report description: |- Returns a creditors report for the specified administration. ### Required scope(s) `documents` tags: - Reports security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/period_month' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: Successful response content: application/json: schema: type: object properties: creditors: type: array items: $ref: '#/components/schemas/creditors_report_item' examples: ReturnsACreditorsReportWithMultipleContacts: summary: Returns a creditors report with multiple contacts value: creditors: - contact_id: '495430092927796853' amount: '200.0' - contact_id: '495430092939331195' amount: '100.0' ReturnsACreditorsReport: summary: Returns a creditors report value: creditors: - contact_id: '495430092974982785' amount: '200.0' ReturnsAnEmptyReportIfNoCreditorsInThePeriodAreFound: summary: Returns an empty report if no creditors in the period are found value: creditors: [] ReturnsTheSecondPageOfTheReport: summary: Returns the second page of the report value: creditors: - contact_id: '495430093051528851' amount: '100.0' ReturnsACreditorsReportIncludingBookingsWithoutAContact: summary: Returns a creditors report including bookings without a contact value: creditors: - contact_id: '495430093087180441' amount: '200.0' - contact_id: null amount: '50.0' FiltersTheRepordOnASpecificPeriod: summary: Filters the repord on a specific period value: creditors: - contact_id: '495430093136463529' amount: '100.0' ReturnsSuccessForFullPeriod: summary: Returns success for full period value: creditors: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorForInvalidPeriodFormat: summary: Returns error for invalid period format value: error: Period is invalid ReturnsErrorWhenPeriodExceedsLimit: summary: Returns error when period exceeds limit value: error: Period cannot exceed 1 month '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to documents '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_reports_creditors /{administration_id}/reports/creditors_aging{format}: get: summary: Creditors aging report description: |- Returns a creditors aging report for the specified administration. ### Required scope(s) `documents` tags: - Reports security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/period_until' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: Successful response content: application/json: schema: type: object properties: creditors: type: array items: $ref: '#/components/schemas/aging_report_item' examples: ReturnsACreditorsAgingReportWithMultipleContacts: summary: Returns a creditors aging report with multiple contacts value: creditors: - contact_id: '495429969936123713' amount: '600.0' aging_buckets: - name: 0 - 30 dagen amount: '100.0' - name: 30 - 60 dagen amount: '200.0' - name: Ouder amount: '300.0' - name: Totaal amount: '600.0' - contact_id: '495429969959192399' amount: '150.0' aging_buckets: - name: 0 - 30 dagen amount: '150.0' - name: 30 - 60 dagen amount: '0' - name: Ouder amount: '0.0' - name: Totaal amount: '150.0' ReturnsACreditorsAgingReportWithAPeriod: summary: Returns a creditors aging report with a period value: creditors: - contact_id: '495429970032592725' amount: '500.0' aging_buckets: - name: 0 - 30 dagen amount: '200.0' - name: 30 - 60 dagen amount: '0' - name: Ouder amount: '300.0' - name: Totaal amount: '500.0' ExcludesContactsWithZeroBalance: summary: Excludes contacts with zero balance value: creditors: - contact_id: '495429970091312995' amount: '600.0' aging_buckets: - name: 0 - 30 dagen amount: '100.0' - name: 30 - 60 dagen amount: '200.0' - name: Ouder amount: '300.0' - name: Totaal amount: '600.0' ReturnsTheSecondPageOfTheReport: summary: Returns the second page of the report value: creditors: - contact_id: '495429970189879177' amount: '150.0' aging_buckets: - name: 0 - 30 dagen amount: '150.0' - name: 30 - 60 dagen amount: '0' - name: Ouder amount: '0.0' - name: Totaal amount: '150.0' ReturnsAnEmptyReportIfNoCreditorsAreFound: summary: Returns an empty report if no creditors are found value: creditors: [] ReturnsACreditorsAgingReport: summary: Returns a creditors aging report value: creditors: - contact_id: '495429970286348198' amount: '600.0' aging_buckets: - name: 0 - 30 dagen amount: '100.0' - name: 30 - 60 dagen amount: '200.0' - name: Ouder amount: '300.0' - name: Totaal amount: '600.0' FetchesWithoutPageAndPerPageAttributesUsingDefaultValues: summary: Fetches without page and per page attributes, using default values value: creditors: - contact_id: '495429970383865794' amount: '600.0' aging_buckets: - name: 0 - 30 dagen amount: '100.0' - name: 30 - 60 dagen amount: '200.0' - name: Ouder amount: '300.0' - name: Totaal amount: '600.0' RequestsWithAPageSizeSmallerThanDefault: summary: Requests with a page size smaller than default value: creditors: - contact_id: '495429970518083564' amount: '600.0' aging_buckets: - name: 0 - 30 dagen amount: '100.0' - name: 30 - 60 dagen amount: '200.0' - name: Ouder amount: '300.0' - name: Totaal amount: '600.0' RequestsWithADifferentPage: summary: Requests with a different page value: creditors: [] RequestsWithAPageSizeLargerThanDefault: summary: Requests with a page size larger than default value: creditors: - contact_id: '495429970617697288' amount: '600.0' aging_buckets: - name: 0 - 30 dagen amount: '100.0' - name: 30 - 60 dagen amount: '200.0' - name: Ouder amount: '300.0' - name: Totaal amount: '600.0' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenPerPageExceedsMaximum: summary: Returns 400 when per page exceeds maximum value: error: per_page does not have a valid value Returns400WhenPageIsInvalid: summary: Returns 400 when page is invalid value: error: page is invalid Returns400WhenPerPageIsInvalid: summary: Returns 400 when per page is invalid value: error: per_page is invalid, per_page does not have a valid value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to documents '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_reports_creditors_aging /{administration_id}/reports/debtors{format}: get: summary: Debtors report description: |- Returns a debtors report for the specified administration. ### Required scope(s) `sales_invoices` tags: - Reports security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/period_month' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: Successful response content: application/json: schema: type: object properties: debtors: type: array items: $ref: '#/components/schemas/debtors_report_item' examples: ReturnsTheSecondPageOfTheReport: summary: Returns the second page of the report value: debtors: - contact_id: '495429944930731965' amount: '100.0' ReturnsADebtorsReport: summary: Returns a debtors report value: debtors: - contact_id: '495429944964286403' amount: '200.0' ReturnsADebtorsReportWithMultipleContacts: summary: Returns a debtors report with multiple contacts value: debtors: - contact_id: '495429944997840841' amount: '200.0' - contact_id: '495429945010423759' amount: '100.0' ReturnsADebtorsReportIncludingBookingsWithoutAContact: summary: Returns a debtors report including bookings without a contact value: debtors: - contact_id: '495429945046075349' amount: '200.0' - contact_id: null amount: '50.0' ReturnsAnEmptyReportIfNoDebtorsInThePeriodAreFound: summary: Returns an empty report if no debtors in the period are found value: debtors: [] FiltersTheRepordOnASpecificPeriod: summary: Filters the repord on a specific period value: debtors: - contact_id: '495429945133107179' amount: '100.0' ReturnsSuccessForFullPeriod: summary: Returns success for full period value: debtors: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorWhenPeriodExceedsLimit: summary: Returns error when period exceeds limit value: error: Period cannot exceed 1 month ReturnsErrorForInvalidPeriodFormat: summary: Returns error for invalid period format value: error: Period is invalid '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to sales_invoices '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_reports_debtors /{administration_id}/reports/debtors_aging{format}: get: summary: Debtors aging report description: |- Returns a debtors aging report for the specified administration. ### Required scope(s) `sales_invoices` tags: - Reports security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/period_until' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: Successful response content: application/json: schema: type: object properties: debtors: type: array items: $ref: '#/components/schemas/aging_report_item' examples: ExcludesContactsWithZeroBalance: summary: Excludes contacts with zero balance value: debtors: - contact_id: '495429939006277594' amount: '600.0' aging_buckets: - name: 0 - 30 dagen amount: '100.0' - name: 30 - 60 dagen amount: '200.0' - name: Ouder amount: '300.0' - name: Totaal amount: '600.0' ReturnsADebtorsAgingReportWithMultipleContacts: summary: Returns a debtors aging report with multiple contacts value: debtors: - contact_id: '495429939076532210' amount: '600.0' aging_buckets: - name: 0 - 30 dagen amount: '100.0' - name: 30 - 60 dagen amount: '200.0' - name: Ouder amount: '300.0' - name: Totaal amount: '600.0' - contact_id: '495429939100648448' amount: '150.0' aging_buckets: - name: 0 - 30 dagen amount: '150.0' - name: 30 - 60 dagen amount: '0' - name: Ouder amount: '0.0' - name: Totaal amount: '150.0' ReturnsADebtorsAgingReport: summary: Returns a debtors aging report value: debtors: - contact_id: '495429939136300038' amount: '600.0' aging_buckets: - name: 0 - 30 dagen amount: '100.0' - name: 30 - 60 dagen amount: '200.0' - name: Ouder amount: '300.0' - name: Totaal amount: '600.0' ReturnsTheSecondPageOfTheReport: summary: Returns the second page of the report value: debtors: - contact_id: '495429939206554658' amount: '150.0' aging_buckets: - name: 0 - 30 dagen amount: '150.0' - name: 30 - 60 dagen amount: '0' - name: Ouder amount: '0.0' - name: Totaal amount: '150.0' ReturnsAnEmptyReportIfNoDebtorsAreFound: summary: Returns an empty report if no debtors are found value: debtors: [] ReturnsADebtorsAgingReportWithAPeriod: summary: Returns a debtors aging report with a period value: debtors: - contact_id: '495429939294635071' amount: '500.0' aging_buckets: - name: 0 - 30 dagen amount: '200.0' - name: 30 - 60 dagen amount: '0' - name: Ouder amount: '300.0' - name: Totaal amount: '500.0' FetchesWithoutPageAndPerPageAttributesUsingDefaultValues: summary: Fetches without page and per page attributes, using default values value: debtors: - contact_id: '495429939382715483' amount: '600.0' aging_buckets: - name: 0 - 30 dagen amount: '100.0' - name: 30 - 60 dagen amount: '200.0' - name: Ouder amount: '300.0' - name: Totaal amount: '600.0' RequestsWithAPageSizeSmallerThanDefault: summary: Requests with a page size smaller than default value: debtors: - contact_id: '495429939474990199' amount: '600.0' aging_buckets: - name: 0 - 30 dagen amount: '100.0' - name: 30 - 60 dagen amount: '200.0' - name: Ouder amount: '300.0' - name: Totaal amount: '600.0' RequestsWithAPageSizeLargerThanDefault: summary: Requests with a page size larger than default value: debtors: - contact_id: '495429939525321861' amount: '600.0' aging_buckets: - name: 0 - 30 dagen amount: '100.0' - name: 30 - 60 dagen amount: '200.0' - name: Ouder amount: '300.0' - name: Totaal amount: '600.0' RequestsWithADifferentPage: summary: Requests with a different page value: debtors: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenPerPageExceedsMaximum: summary: Returns 400 when per page exceeds maximum value: error: per_page does not have a valid value Returns400WhenPerPageIsInvalid: summary: Returns 400 when per page is invalid value: error: per_page is invalid, per_page does not have a valid value Returns400WhenPageIsInvalid: summary: Returns 400 when page is invalid value: error: page is invalid '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to sales_invoices '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_reports_debtors_aging /{administration_id}/reports/expenses_by_contact{format}: get: summary: Expenses by contact report description: |- Returns a expenses by contact report for the specified administration. ### Required scope(s) `documents` tags: - Reports security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/period_month' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: Successful response content: application/json: schema: type: object properties: expenses_by_contact: type: array items: $ref: '#/components/schemas/contact_report_item' examples: ReturnsAExpensesByContactReport: summary: Returns a expenses by contact report value: expenses_by_contact: - contact_id: '495430026141893738' amount: '30.0' ReturnsSuccessForFullPeriod: summary: Returns success for full period value: expenses_by_contact: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorWhenPeriodExceedsLimit: summary: Returns error when period exceeds limit value: error: Period cannot exceed 1 month ReturnsErrorForInvalidPeriodFormat: summary: Returns error for invalid period format value: error: Period is invalid '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to documents '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_reports_expenses_by_contact /{administration_id}/reports/expenses_by_project{format}: get: summary: Expenses by project report description: |- Returns a expenses by project report for the specified administration. ### Required scope(s) `documents` tags: - Reports security: - bearerAuth: - documents parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/period_month' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: Successful response content: application/json: schema: type: object properties: expenses_by_project: type: array items: $ref: '#/components/schemas/project_report_item' examples: ReturnsAExpensesByProjectReport: summary: Returns a expenses by project report value: expenses_by_project: - project_id: null amount: '100.0' - project_id: '495429940107281715' amount: '30.0' ReturnsSuccessForFullPeriod: summary: Returns success for full period value: expenses_by_project: - project_id: null amount: '0' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorForInvalidPeriodFormat: summary: Returns error for invalid period format value: error: Period is invalid ReturnsErrorWhenPeriodExceedsLimit: summary: Returns error when period exceeds limit value: error: Period cannot exceed 1 month '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to documents '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_reports_expenses_by_project /{administration_id}/reports/export/auditfile{format}: post: summary: Export auditfile description: |- Queue the export of an auditfile (XAF XML format) for the specified year. The auditfile will be added to your [downloads](../downloads) when ready. The administration must not have any ledger accounts with missing or duplicate account IDs, and the specified year must contain journal entries. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices` and `settings` tags: - Reports security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: type: object required: - year properties: year: type: string description: The year for which to generate the auditfile example: '2024' examples: AcceptsVersion40Parameter: summary: Accepts version 4.0 parameter value: year: '2024' version: '4.0' UsesDefaultVersion32WhenVersionIsNotSpecified: summary: Uses default version 3.2 when version is not specified value: year: '2024' QueuesAnAuditfileExportJobAndReturns204: summary: Queues an auditfile export job and returns 204 value: year: '2024' AcceptsVersion32Parameter: summary: Accepts version 3.2 parameter value: year: '2024' version: '3.2' responses: '204': $ref: '#/components/responses/204_no_content' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenLedgerAccountsHaveDuplicateAccountIds: summary: Returns 400 when ledger accounts have duplicate account ids value: error: Missing or duplicate account IDs symbolic: base: missing_or_duplicate_account_ids Returns400ForInvalidVersion: summary: Returns 400 for invalid version value: error: version does not have a valid value Returns400WhenPeriodContainsNoJournalEntries: summary: Returns 400 when period contains no journal entries value: error: Period contains no journal entries symbolic: period: contains_no_journal_entries '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to contacts, documents, estimates, sales_invoices, bank and settings '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: post_administration_id_reports_export_auditfile /{administration_id}/reports/export/brugstaat{format}: post: summary: Export brugstaat description: |- Queue the export of a brugstaat XML file for the specified year. The file will be added to your [downloads](../downloads) when ready. All ledger accounts must have valid RGS taxonomy codes assigned. ### Required scope(s) All of: `bank`, `documents` and `sales_invoices` tags: - Reports security: - bearerAuth: - bank - documents - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: type: object required: - year properties: year: type: string description: The year for which to generate the brugstaat example: '2024' examples: GeneratesABrugstaatAndReturns204: summary: Generates a brugstaat and returns 204 value: year: '2024' responses: '204': $ref: '#/components/responses/204_no_content' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenLedgerAccountsHaveInvalidTaxonomyCodes: summary: Returns 400 when ledger accounts have invalid taxonomy codes value: error: Not all categories are linked to a RGS code. This is mandatory before downloading a RGS Brugstaat '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to documents, sales_invoices and bank '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: post_administration_id_reports_export_brugstaat /{administration_id}/reports/export/ledger_accounts{format}: post: summary: Export ledger accounts description: |- Queue the export of ledger accounts (grootboekkaarten) to an Excel file for the specified year. This file contains all bookings and can be used for manual audits. The file will be added to your [downloads](../downloads) when ready. The specified year must contain journal entries. ### Required scope(s) `documents` and `sales_invoices` tags: - Reports security: - bearerAuth: - documents - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: type: object required: - year properties: year: type: string description: The year for which to generate the ledger accounts example: '2024' examples: QueuesALedgerAccountsExportJobAndReturns204: summary: Queues a ledger accounts export job and returns 204 value: year: '2024' responses: '204': $ref: '#/components/responses/204_no_content' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenPeriodContainsNoJournalEntries: summary: Returns 400 when period contains no journal entries value: error: Period contains no journal entries symbolic: period: contains_no_journal_entries '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to sales_invoices and documents '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: post_administration_id_reports_export_ledger_accounts /{administration_id}/reports/general_ledger{format}: get: summary: General ledger report description: |- Get the general ledger report for the administration showing all ledger accounts with their balances and movements during the specified period. ### Required scope(s) `bank` tags: - Reports security: - bearerAuth: - bank parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/period' responses: '200': description: A general ledger report content: application/json: schema: type: object properties: debit_sums: $ref: '#/components/schemas/ledger_account_data' credit_sums: $ref: '#/components/schemas/ledger_account_data' start_balance: $ref: '#/components/schemas/ledger_account_data' final_balance: $ref: '#/components/schemas/ledger_account_data' examples: ReturnsGeneralLedgerData: summary: Returns general ledger data value: debit_sums: ledger_accounts: - ledger_account_id: '495429920900515654' value: '1000.0' credit_sums: ledger_accounts: - ledger_account_id: '495429920900515654' value: '500.0' start_balance: ledger_accounts: - ledger_account_id: '495429920900515654' value: '300.0' final_balance: ledger_accounts: - ledger_account_id: '495429920900515654' value: '800.0' ReturnsSuccessForFullPeriod: summary: Returns success for full period value: debit_sums: ledger_accounts: - ledger_account_id: '495429921004324704' value: '1000.0' credit_sums: ledger_accounts: - ledger_account_id: '495429921004324704' value: '500.0' start_balance: ledger_accounts: - ledger_account_id: '495429921004324704' value: '300.0' final_balance: ledger_accounts: - ledger_account_id: '495429921004324704' value: '800.0' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorWhenPeriodExceedsLimit: summary: Returns error when period exceeds limit value: error: Period cannot exceed 12 months ReturnsErrorForInvalidPeriodFormat: summary: Returns error for invalid period format value: error: Period is invalid '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to bank '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_reports_general_ledger /{administration_id}/reports/journal_entries{format}: get: summary: Journal entries report description: |- Get the journal entries report showing all bookings within the specified period. This endpoint allows filtering by various criteria including project, contact, ledger account, and account types. **Requirements:** - At least one of project_id, contact_id, or ledger_account_id is required - When account_type is provided, either contact_id or project_id must also be specified **Example Use Cases:** - To get a report for revenue by project detail, use account_type parameter with value "revenue" and the required project_id - To get a report for revenue by contact detail, use account_type parameter with value "revenue" and the required contact_id - To get a report for expenses by project detail, make one request for account_type "expenses" and one for "direct_costs", both with the required project_id - To get a report for expenses by contact detail, make one request for account_type "expenses" and one for "direct_costs", both with the required contact_id ### Required scope(s) `documents` and `sales_invoices` tags: - Reports security: - bearerAuth: - documents - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/period_month' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - name: project_id in: query required: false description: Filter by project ID, use "null" to filter entries without project schema: type: string - name: contact_id in: query required: false description: Filter by contact ID, use "null" to filter entries without contact schema: type: string examples: ReturnsA200IfTheAccountTypesArePresentAndAContactIdIsPresent: summary: Returns a 200 if the account types are present and a contact id is present value: '123' - name: ledger_account_id in: query required: false description: Filter by ledger account ID schema: $ref: '#/components/schemas/identifier' examples: ReturnsAJournalEntriesReportWithPagination: summary: Returns a journal entries report with pagination value: '123' - name: account_type in: query required: false description: | Filter by ledger account type schema: type: string enum: - non_current_assets - current_assets - equity - non_current_liabilities - current_liabilities - revenue - direct_costs - expenses - other_income_expenses - other - temporary - provisions examples: ReturnsA200IfTheAccountTypesArePresentAndAContactIdIsPresent: summary: Returns a 200 if the account types are present and a contact id is present value: revenue responses: '200': description: A paginated list of journal entries (bookings) headers: X-Total-Count: $ref: '#/components/headers/x-total-count' Link: $ref: '#/components/headers/link' content: application/json: schema: type: array items: type: object properties: id: type: string description: Unique identifier for the journal entry administration_id: $ref: '#/components/schemas/identifier' description: ID of the administration this entry belongs to date: type: string format: date description: Date of the journal entry document_type: type: string description: Type of document this entry relates to document_id: $ref: '#/components/schemas/identifier' description: ID of the related document ledger_account_id: $ref: '#/components/schemas/identifier' description: ID of the ledger account project_id: $ref: '#/components/schemas/identifier_nullable' description: ID of the related project, if any contact_id: $ref: '#/components/schemas/identifier_nullable' description: ID of the related contact, if any tax_rate_id: $ref: '#/components/schemas/identifier_nullable' description: ID of the applied tax rate, if any financial_account_id: $ref: '#/components/schemas/identifier_nullable' description: ID of the financial account, if any amount: type: string description: Amount of the journal entry in the administration's currency description: type: string description: Description of the journal entry examples: ReturnsA200IfTheAccountTypesArePresentAndAContactIdIsPresent: summary: Returns a 200 if the account types are present and a contact id is present value: [] ReturnsAJournalEntriesReportWithPagination: summary: Returns a journal entries report with pagination value: - id: je_6 date: '2025-06-14' document_type: Document document_id: '495429884685846076' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '500.0' description: Large customer payment - id: je_5 date: '2025-06-12' document_type: Document document_id: '495429884676408888' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '-75.0' description: Credit note - id: je_3 date: '2025-06-10' document_type: Document document_id: '495429884663825968' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '250.0' description: Product sales - id: je_4 date: '2025-06-08' document_type: Document document_id: '495429884670117428' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '-25.0' description: Sales return - id: je_2 date: '2025-06-05' document_type: Document document_id: '495429884656485932' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '50.0' description: Service income ReturnsAJournalEntriesReportWithSpecificPeriod: summary: Returns a journal entries report with specific period value: - id: je_6 date: '2025-06-14' document_type: Document document_id: '495429884915484284' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '500.0' description: Large customer payment - id: je_5 date: '2025-06-12' document_type: Document document_id: '495429884909192824' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '-75.0' description: Credit note - id: je_3 date: '2025-06-10' document_type: Document document_id: '495429884895561328' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '250.0' description: Product sales - id: je_4 date: '2025-06-08' document_type: Document document_id: '495429884902901364' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '-25.0' description: Sales return - id: je_2 date: '2025-06-05' document_type: Document document_id: '495429884889269868' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '50.0' description: Service income - id: je_7 date: '2025-06-03' document_type: Document document_id: '495429884922824320' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '15.5' description: Small miscellaneous income - id: je_1 date: '2025-06-01' document_type: Document document_id: '495429884881929832' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '100.0' description: Revenue from sales ReturnsSuccessForFullPeriod: summary: Returns success for full period value: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400IfTheAccountTypeIsPresentButNoContactIdOrProjectIdIsPresent: summary: Returns a 400 if the account type is present but no contact id or project id is present value: error: when account_type is present, a contact_id or project_id is required ReturnsA400IfNoProjectContactOrLedgerAccountIsPresent: summary: Returns a 400 if no project, contact or ledger account is present value: error: at least a contact_id, project_id or ledger_account_id is required ReturnsErrorForInvalidPeriodFormat: summary: Returns error for invalid period format value: error: Period is invalid ReturnsErrorWhenPeriodExceedsLimit: summary: Returns error when period exceeds limit value: error: Period cannot exceed 1 month '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to sales_invoices and documents '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_reports_journal_entries /{administration_id}/reports/ledger_accounts/{ledger_account_id}{format}: get: summary: Ledger account report description: |- This endpoint is deprecated and should no longer be used. It has been replaced by the `Journal entries report`. ### Required scope(s) `documents` and `sales_invoices` deprecated: true x-sunset: '2025-12-31' tags: - Reports security: - bearerAuth: - documents - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: ledger_account_id in: path required: true description: The ID of the ledger account to get the report for schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/period_month' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: A paginated list of ledger account bookings (journal entries) headers: X-Total-Count: $ref: '#/components/headers/x-total-count' Link: $ref: '#/components/headers/link' content: application/json: schema: type: array items: type: object properties: id: type: string administration_id: $ref: '#/components/schemas/identifier' date: type: string format: date document_type: type: string document_id: $ref: '#/components/schemas/identifier' ledger_account_id: $ref: '#/components/schemas/identifier' project_id: $ref: '#/components/schemas/identifier_nullable' contact_id: $ref: '#/components/schemas/identifier_nullable' tax_rate_id: $ref: '#/components/schemas/identifier_nullable' financial_account_id: $ref: '#/components/schemas/identifier_nullable' amount: type: string description: type: string examples: ReturnsALedgerAccountReportWithPagination: summary: Returns a ledger account report with pagination value: - id: je_6 date: '2025-06-14' document_type: Document document_id: '495430085137925968' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '500.0' description: Large customer payment - id: je_5 date: '2025-06-12' document_type: Document document_id: '495430085131634508' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '-75.0' description: Credit note - id: je_3 date: '2025-06-10' document_type: Document document_id: '495430085119051588' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '250.0' description: Product sales - id: je_4 date: '2025-06-08' document_type: Document document_id: '495430085125343048' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '-25.0' description: Sales return - id: je_2 date: '2025-06-05' document_type: Document document_id: '495430085111711552' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '50.0' description: Service income ReturnsALedgerAccountReport: summary: Returns a ledger account report value: - id: je_6 date: '2025-06-14' document_type: Document document_id: '495430085217617776' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '500.0' description: Large customer payment - id: je_5 date: '2025-06-12' document_type: Document document_id: '495430085211326316' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '-75.0' description: Credit note - id: je_3 date: '2025-06-10' document_type: Document document_id: '495430085199791972' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '250.0' description: Product sales - id: je_4 date: '2025-06-08' document_type: Document document_id: '495430085206083432' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '-25.0' description: Sales return - id: je_2 date: '2025-06-05' document_type: Document document_id: '495430085193500512' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '50.0' description: Service income - id: je_7 date: '2025-06-03' document_type: Document document_id: '495430085222860660' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '15.5' description: Small miscellaneous income - id: je_1 date: '2025-06-01' document_type: Document document_id: '495430085187209052' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '100.0' description: Revenue from sales ReturnsSuccessForFullPeriod: summary: Returns success for full period value: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorWhenPeriodExceedsLimit: summary: Returns error when period exceeds limit value: error: Period cannot exceed 1 month ReturnsErrorForInvalidPeriodFormat: summary: Returns error for invalid period format value: error: Period is invalid '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to sales_invoices and documents '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404IfTheLedgerAccountDoesNotExist: summary: Returns a 404 if the ledger account does not exist value: error: 'Record not found for model name: Category' '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_reports_ledger_accounts_ledger_account_id /{administration_id}/reports/profit_loss{format}: get: summary: Profit loss report description: |- Get the profit loss report for the administration. Every `*_by_ledger_account` section contains one item per ledger account with bookings in the period. Nested accounts are flat here: a parent's amount does not include its child accounts, which are listed as items of their own. Adding up all items in a section therefore gives that section's total without double counting. The sections are not all signed the same way: | **Section** | **Sign** | | - | - | | revenue_by_ledger_account | credit minus debit, so revenue is positive | | direct_costs_by_ledger_account | debit minus credit, so costs are positive | | expenses_by_ledger_account | debit minus credit, so costs are positive | | other_income_expenses_by_ledger_account | credit minus debit, so income is positive and expenses are negative | Sections can therefore not be added together as they are, and adding the three cost sections does not produce `total_expenses`. The description of each total says how that total is composed. ### Required scope(s) `documents` and `sales_invoices` tags: - Reports security: - bearerAuth: - documents - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/period' - name: project_id in: query required: false schema: $ref: '#/components/schemas/identifier' responses: '200': description: A profit loss report content: application/json: schema: type: object properties: revenue_by_ledger_account: $ref: '#/components/schemas/ledger_account_data' direct_costs_by_ledger_account: $ref: '#/components/schemas/ledger_account_data' expenses_by_ledger_account: $ref: '#/components/schemas/ledger_account_data' other_income_expenses_by_ledger_account: $ref: '#/components/schemas/ledger_account_data' gross_profit: type: string description: '`total_revenue` minus the total of `direct_costs_by_ledger_account`' operating_profit: type: string description: '`gross_profit` minus the total of `expenses_by_ledger_account`, so excluding other income and expenses' net_profit: type: string description: '`total_revenue` minus `total_expenses`' total_expenses: type: string description: The total of `direct_costs_by_ledger_account` plus `expenses_by_ledger_account` minus `other_income_expenses_by_ledger_account` total_revenue: type: string description: The total of `revenue_by_ledger_account` examples: ReturnsAProfitLossReport: summary: Returns a profit loss report value: revenue_by_ledger_account: ledger_accounts: - ledger_account_id: '495429859475981618' value: '100.0' direct_costs_by_ledger_account: ledger_accounts: - ledger_account_id: '495429859545187639' value: '20.0' expenses_by_ledger_account: ledger_accounts: - ledger_account_id: '495429859558819132' value: '15.0' other_income_expenses_by_ledger_account: ledger_accounts: - ledger_account_id: '495429859573499201' value: '1.0' gross_profit: '80.0' operating_profit: '65.0' net_profit: '66.0' total_expenses: '34.0' total_revenue: '100.0' ReturnsSuccessForFullPeriod: summary: Returns success for full period value: revenue_by_ledger_account: ledger_accounts: - ledger_account_id: '495429859672065350' value: '100.0' direct_costs_by_ledger_account: ledger_accounts: - ledger_account_id: '495429859686745419' value: '20.0' expenses_by_ledger_account: ledger_accounts: - ledger_account_id: '495429859702474064' value: '15.0' other_income_expenses_by_ledger_account: ledger_accounts: - ledger_account_id: '495429859718202709' value: '1.0' gross_profit: '80.0' operating_profit: '65.0' net_profit: '66.0' total_expenses: '34.0' total_revenue: '100.0' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorWhenPeriodExceedsLimit: summary: Returns error when period exceeds limit value: error: Period cannot exceed 12 months ReturnsErrorForInvalidPeriodFormat: summary: Returns error for invalid period format value: error: Period is invalid '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to sales_invoices and documents '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_reports_profit_loss /{administration_id}/reports/revenue_by_contact{format}: get: summary: Revenue by contact report description: |- Returns a revenue by contact report for the specified administration. ### Required scope(s) `sales_invoices` tags: - Reports security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/period_month' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: Successful response content: application/json: schema: type: object properties: revenue_by_contact: type: array items: $ref: '#/components/schemas/contact_report_item' examples: ReturnsARevenueByContactReport: summary: Returns a revenue by contact report value: revenue_by_contact: - contact_id: '495429943135569521' amount: '30.0' ReturnsSuccessForFullPeriod: summary: Returns success for full period value: revenue_by_contact: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorWhenPeriodExceedsLimit: summary: Returns error when period exceeds limit value: error: Period cannot exceed 1 month ReturnsErrorForInvalidPeriodFormat: summary: Returns error for invalid period format value: error: Period is invalid '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to sales_invoices '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_reports_revenue_by_contact /{administration_id}/reports/revenue_by_project{format}: get: summary: Revenue by project report description: |- Returns a revenue by project report for the specified administration. ### Required scope(s) `sales_invoices` tags: - Reports security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/period_month' - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: Successful response content: application/json: schema: type: object properties: revenue_by_project: type: array items: $ref: '#/components/schemas/project_report_item' examples: ReturnsARevenueByProjectReport: summary: Returns a revenue by project report value: revenue_by_project: - project_id: null amount: '1000.0' - project_id: '495429939757057226' amount: '7000.0' ReturnsSuccessForFullPeriod: summary: Returns success for full period value: revenue_by_project: - project_id: null amount: '0' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorForInvalidPeriodFormat: summary: Returns error for invalid period format value: error: Period is invalid ReturnsErrorWhenPeriodExceedsLimit: summary: Returns error when period exceeds limit value: error: Period cannot exceed 1 month '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to sales_invoices '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_reports_revenue_by_project /{administration_id}/reports/subscriptions{format}: get: summary: Subscriptions report description: |- Get the subscriptions report for the administration. ### Required scope(s) `sales_invoices` tags: - Reports security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/period_month' responses: '200': description: A subscriptions report content: application/json: schema: type: object properties: monthly_recurring_revenue: type: string annual_run_rate: type: string churn_rate: type: string lifetime_value: type: string examples: ReturnsASubscriptionsReportJson: summary: Returns a subscriptions report json value: monthly_recurring_revenue: '75.0' annual_run_rate: '900.0' churn_rate: '0' lifetime_value: '0' ReturnsSuccessForFullPeriod: summary: Returns success for full period value: monthly_recurring_revenue: '0' annual_run_rate: '0' churn_rate: '0' lifetime_value: '0' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorForInvalidPeriodFormat: summary: Returns error for invalid period format value: error: Period is invalid ReturnsErrorWhenPeriodExceedsLimit: summary: Returns error when period exceeds limit value: error: Period cannot exceed 1 month '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to sales_invoices '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_reports_subscriptions /{administration_id}/reports/tax{format}: get: summary: Tax report description: |- Get the tax report for the administration. ### Required scope(s) `documents` and `sales_invoices` tags: - Reports security: - bearerAuth: - documents - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/period_month' responses: '200': description: A tax report content: application/json: schema: type: object properties: tax_rates: type: array items: type: object unevaluatedProperties: false properties: tax_rate_id: $ref: '#/components/schemas/identifier' name: type: string percentage: type: string report_reference: type: string amount: type: string type: type: string tax: type: string examples: ReturnsATaxReport: summary: Returns a tax report value: tax_rates: - tax_rate_id: '495429853078619274' name: 21% btw percentage: '21.0' report_reference: NL/1a amount: '900.0' type: sales_invoice tax: '189.0' - tax_rate_id: '495429853091202189' name: 21% btw percentage: '21.0' report_reference: NL/5b amount: '900.0' type: purchase_invoice tax: '189.0' ReturnsSuccessForFullPeriod: summary: Returns success for full period value: tax_rates: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorForInvalidPeriodFormat: summary: Returns error for invalid period format value: error: Period is invalid ReturnsErrorWhenPeriodExceedsLimit: summary: Returns error when period exceeds limit value: error: Period cannot exceed 1 month '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserLacksRequiredPermissions: summary: Returns 401 when user lacks required permissions value: error: No access to sales_invoices and documents '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_reports_tax /{administration_id}/sales_invoices/find_by_invoice_id/{invoice_id}{format}: get: summary: Get an invoice by invoice_id description: |- Get a sales invoice by the invoice_id field of the sales invoice. An invoice does not have an `invoice_id` when its a draft, so a draft is never found here. List drafts through `GET /sales_invoices` with `state:draft` and fetch one with `GET /sales_invoices/{id}`. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: invoice_id in: path required: true schema: type: string description: Unique invoice identifier example: 2025-0001 - $ref: '#/components/parameters/format' responses: '200': description: A sales invoice content: application/json: schema: $ref: '#/components/schemas/sales_invoice_response' examples: ReturnsInvoiceByGivenId: summary: Returns invoice by given id value: id: '495429996387501502' administration_id: 123 contact_id: '495429996339267001' contact: id: '495429996339267001' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:44.806Z' updated_at: '2026-08-14T09:14:44.806Z' version: 1786698884 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '495429996343461307' contact_person: id: null contact_id: '495429996339267001' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:14:44.810Z' updated_at: '2026-08-14T09:14:44.810Z' version: 1786698884 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF71000000000000065V52JFE short_payment_reference: RF7165V52JFE reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:44.852Z' updated_at: '2026-08-14T09:14:44.942Z' public_view_code: '531224' public_view_code_expires_at: '2026-11-14T09:14:44.904Z' version: 1786698884 details: - id: '495429996390647231' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:44.855Z' updated_at: '2026-08-14T09:14:44.941Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/7e5dd745c7fe2ffe0e63fb2278be9bd1991eeb7ad5277ca67283a11811fff3bf/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/7e5dd745c7fe2ffe0e63fb2278be9bd1991eeb7ad5277ca67283a11811fff3bf/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:44.858Z' updated_at: '2026-08-14T09:14:44.858Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:44.915Z' updated_at: '2026-08-14T09:14:44.915Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com; janjanssen@dev.null.moneybird.net email_message: |- Geachte Jan Janssen, In de bijlage kunt u factuur 2026-0001 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:44.958Z' updated_at: '2026-08-14T09:14:44.958Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTheGivenInvoiceIdDoesNotExist: summary: Returns 404 when the given invoice id does not exist value: error: 'Sales invoice with invoice_id: 1337 was not found' symbolic: invoice_id: not_found operationId: get_administration_id_sales_invoices_find_by_invoice_id_invoice_id /{administration_id}/sales_invoices/find_by_reference/{reference}{format}: get: summary: Get an invoice by reference description: |- Get a sales invoice by the reference field of the sales invoice. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: reference in: path required: true schema: type: string - $ref: '#/components/parameters/format' responses: '200': description: A sales invoice content: application/json: schema: $ref: '#/components/schemas/sales_invoice_response' examples: ReturnsInvoiceByGivenReference: summary: Returns invoice by given reference value: id: '495430005899134184' administration_id: 123 contact_id: '495430005852996835' contact: id: '495430005852996835' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:53.879Z' updated_at: '2026-08-14T09:14:53.879Z' version: 1786698893 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '495430005857191141' contact_person: id: null contact_id: '495430005852996835' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:14:53.883Z' updated_at: '2026-08-14T09:14:53.883Z' version: 1786698893 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF27000000000000039EQ9DHK short_payment_reference: RF2739EQ9DHK reference: invoice-123 language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:53.923Z' updated_at: '2026-08-14T09:14:54.012Z' public_view_code: '198023' public_view_code_expires_at: '2026-11-14T09:14:53.975Z' version: 1786698894 details: - id: '495430005902279913' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:53.926Z' updated_at: '2026-08-14T09:14:54.011Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/fb2abfcfa43767761ff8639933284132c53a08da0a9d225f640014dc3ad38532/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/fb2abfcfa43767761ff8639933284132c53a08da0a9d225f640014dc3ad38532/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:53.929Z' updated_at: '2026-08-14T09:14:53.929Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:53.987Z' updated_at: '2026-08-14T09:14:53.987Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com; janjanssen@dev.null.moneybird.net email_message: |- Geachte Jan Janssen, In de bijlage kunt u factuur 2026-0001 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:54.028Z' updated_at: '2026-08-14T09:14:54.028Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTheGivenReferenceDoesNotExist: summary: Returns 404 when the given reference does not exist value: error: 'Sales invoice with reference: 1337 was not found' symbolic: reference: not_found operationId: get_administration_id_sales_invoices_find_by_reference_reference /{administration_id}/sales_invoices/send_reminders{format}: post: summary: Sends a reminder description: |- This endpoint sends a reminder to a contact. A reminder can contain multiple sales invoices. Reminders are grouped by workflow, identity and document style, so a contact with sales invoices with different workflows, will receive multiple reminders. Only by grouping reminders like this, we can assure the right content and layout of a reminder. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: sales_invoice_reminders: type: array items: type: object unevaluatedProperties: false properties: contact_id: $ref: '#/components/schemas/identifier' workflow_id: $ref: '#/components/schemas/identifier' document_style_id: $ref: '#/components/schemas/identifier' identity_id: $ref: '#/components/schemas/identifier' sales_invoice_ids: type: array items: $ref: '#/components/schemas/identifier' description: Sales invoices of this contact to include in the reminder. reminder_text: type: string description: Message shown in the reminder. Defaults to the text of the next step in the workflow. delivery_method: type: string enum: - Email - Manual description: How the reminder is delivered. Defaults to the contact's delivery method. email_address: type: string description: Recipient email address. Only used when `delivery_method` is `Email`; defaults to the contact's email address. required: - contact_id - workflow_id - document_style_id - identity_id - sales_invoice_ids required: - sales_invoice_reminders responses: '200': $ref: '#/components/responses/status_code' '400': $ref: '#/components/responses/400_bad_request' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_sales_invoices_send_reminders /{administration_id}/sales_invoices/synchronization{format}: get: summary: List all ids and versions description: |- Returns all sales invoices in the administration. The list contains the invoice id and the version of the invoice. Check if the version of the invoice is newer than the version you have stored locally, use the `POST` variant for fetching invoices with the given ids. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: Comma-separated `key:value` filter terms. Same syntax as `GET /sales_invoices` — see that operation's description for the available keys. schema: type: string examples: RetrievesTheIdSForSynchronizationWithAFilter: summary: Retrieves the id's for synchronization with a filter value: state:open responses: '200': description: IDs and versions of records content: application/json: schema: type: array items: type: object unevaluatedProperties: false properties: id: type: - integer - string version: type: - integer - string examples: RetrievesTheIdSForSynchronization: summary: Retrieves the id's for synchronization value: - id: '495430011382138593' version: 1786698899 - id: '495430011229046482' version: 1786698899 - id: '495430011073857219' version: 1786698898 - id: '495430010888259251' version: 1786698898 RetrievesTheIdSForSynchronizationWithAFilter: summary: Retrieves the id's for synchronization with a filter value: - id: '495430011466024682' version: 1786698899 - id: '495430011618068218' version: 1786698899 - id: '495430011766966025' version: 1786698899 ReturnsUniqueIdsEvenWhenSalesInvoicesHaveMultipleAttachments: summary: Returns unique ids even when sales invoices have multiple attachments value: - id: '495430011991361313' version: 1786698899 - id: '495430012280768320' version: 1786698900 - id: '495430012139210545' version: 1786698900 operationId: get_administration_id_sales_invoices_synchronization post: summary: Fetch sales invoices with given ids x-query: true description: |- Given a list of sales invoice ids, returns the sales invoice information belonging to the invoices. Returns a maximum of 100 invoice, even if more ids are provided. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: ids: type: array items: type: - integer - string required: - ids examples: RetrievesSalesInvoicesGivenByIds: summary: Retrieves sales invoices given by ids value: ids: - 495430010539083400 - 495430010680641150 responses: '200': description: A list of sales invoices content: application/json: schema: type: array items: $ref: '#/components/schemas/sales_invoice_response' examples: RetrievesSalesInvoicesGivenByIds: summary: Retrieves sales invoices given by ids value: - id: '495430010680641182' administration_id: 123 contact_id: '495430010345096826' contact: id: '495430010345096826' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:58.163Z' updated_at: '2026-08-14T09:14:58.163Z' version: 1786698898 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0003 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF0800000000000007MNR5QTC short_payment_reference: RF087MNR5QTC reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:58.483Z' updated_at: '2026-08-14T09:14:58.561Z' public_view_code: '174530' public_view_code_expires_at: '2026-11-14T09:14:58.528Z' version: 1786698898 details: - id: '495430010682738335' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:58.485Z' updated_at: '2026-08-14T09:14:58.560Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/840b52ce7fc97b42716f08aed2043639a47f8dab6b154b3a6fb51fcf34d9b2e6/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/840b52ce7fc97b42716f08aed2043639a47f8dab6b154b3a6fb51fcf34d9b2e6/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:58.488Z' updated_at: '2026-08-14T09:14:58.488Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:58.539Z' updated_at: '2026-08-14T09:14:58.539Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0003 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:58.576Z' updated_at: '2026-08-14T09:14:58.576Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] - id: '495430010539083407' administration_id: 123 contact_id: '495430010345096826' contact: id: '495430010345096826' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:58.163Z' updated_at: '2026-08-14T09:14:58.163Z' version: 1786698898 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0002 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF770000000000000RQKVPYUQ short_payment_reference: RF77RQKVPYUQ reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:58.348Z' updated_at: '2026-08-14T09:14:58.428Z' public_view_code: '847610' public_view_code_expires_at: '2026-11-14T09:14:58.394Z' version: 1786698898 details: - id: '495430010541180560' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:58.350Z' updated_at: '2026-08-14T09:14:58.426Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/9a6a99053079c3841b5987a7ed25ad34c18d5ef37ced64b8db6b7278fd88e895/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/9a6a99053079c3841b5987a7ed25ad34c18d5ef37ced64b8db6b7278fd88e895/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:58.353Z' updated_at: '2026-08-14T09:14:58.353Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:58.405Z' updated_at: '2026-08-14T09:14:58.405Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0002 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:58.443Z' updated_at: '2026-08-14T09:14:58.443Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] '400': $ref: '#/components/responses/400_bad_request' operationId: post_administration_id_sales_invoices_synchronization /{administration_id}/sales_invoices/{id}/attachments{format}: post: summary: Add attachment to sales invoice description: |- Add an attachment to a sales invoice. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: multipart/form-data: schema: type: object properties: file: type: string format: binary responses: '200': description: Status code content: application/json: schema: type: integer examples: UploadsAnAttachment: summary: Uploads an attachment value: 200 '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_sales_invoices_id_attachments /{administration_id}/sales_invoices/{id}/download_packing_slip_pdf{format}: get: summary: Download sales invoice packing slip PDF by id description: |- Redirects to the download URL of the sales invoice as packing slip PDF. The link is valid for 30 seconds. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' - name: media in: query required: false schema: type: string description: In case you want to hide sender address and logo you can set this to 'stationery'. responses: '302': description: Found content: text/plain: schema: type: string examples: ReturnsInvoiceByGivenIdAsPackingSlipPdf: summary: Returns invoice by given id as packing slip pdf value: '"This resource has been moved temporarily to http://moneybird-storage:3100/f286ac33eac82bd090cce8fbf78d2525c4f42549de4dc84b91011be9d1540911/117daf3c145760d3cedbf61366471c7a4b757fcf77032c250d6515f0a1f37d1f/download."' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenInvoiceDoesNotExist: summary: Returns 404 when invoice does not exist value: error: record not found symbolic: id: not_found operationId: get_administration_id_sales_invoices_id_download_packing_slip_pdf /{administration_id}/sales_invoices/{id}/download_pdf{format}: get: summary: Download sales invoice PDF by id description: |- Redirects to the download URL of the sales invoice as PDF. The link is valid for 30 seconds. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' - name: media in: query required: false schema: type: string description: In case you want to hide sender address and logo you can set this to 'stationery'. responses: '302': description: Found content: text/plain: schema: type: string examples: ReturnsInvoiceByGivenIdAsPdf: summary: Returns invoice by given id as pdf value: '"This resource has been moved temporarily to http://moneybird-storage:3100/40a4f16ce67768ca832b1c2c167bfaf0d5d863e3ad4440cb1ca041411ce7efda/d6b9913a35402a6bba6cf0d9ebf93e65d1f90df4ec0da8afdfb01dd3ef285446/download."' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenInvoiceDoesNotExist: summary: Returns 404 when invoice does not exist value: error: record not found symbolic: id: not_found operationId: get_administration_id_sales_invoices_id_download_pdf /{administration_id}/sales_invoices/{id}/download_ubl{format}: get: summary: Download sales invoice UBL by id description: |- Download the sales invoice as UBL. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A sales invoice content: text/xml: schema: type: string examples: ReturnsInvoiceByGivenIdAsUbl: summary: Returns invoice by given id as ubl value: | 2.1 2019-0001 2019-10-01 2019-10-15 380 EUR Project X 2019-0001.pdf PrimaryImage JVBERi0xLjMK/////woxIDAgb2JqCjw8IC9DcmVhdG9yIChQcmF3bikKL1By b2R1Y2VyIChQcmF3bikKPj4KZW5kb2JqCjIgMCBvYmoKPDwgL0tpZHMgWzUg MCBSXQovVHlwZSAvUGFnZXMKL0NvdW50IDEKPj4KZW5kb2JqCjMgMCBvYmoK PDwgL1BhZ2VzIDIgMCBSCi9UeXBlIC9DYXRhbG9nCj4+CmVuZG9iago0IDAg b2JqCjw8IC9MZW5ndGggMzg4Nwo+PgpzdHJlYW0KMC4wMDAgMC4wMDAgMC4w MDAgcmcKMC4wMDAgMC4wMDAgMC4wMDAgUkcKcQpCVAoxLjAwMCAwLjAwMCAt MC4wMDAgMS4wMDAgNDA5LjI4MCA4MTUuODkwIFRtCjAgLTUuNzQ0IFRkCjAu MDAwIDAuMDAwIDAuMDAwIHJnCjAgVHMKL0YxLjAgOCBUZgpbPDU1NzcyMDQy NjU2NDcyPiAtMTUgPDY5NmE2NjczMmQ0ZTYxNjE2ZDIwNDI+IDIwIDwyZTU2 PiAxMjUgPDJlPl0gVEoKMCAtOS4yNDggVGQKWzw0NzcyNmY3NDY1MjA0ZDYx NzI+IC0xNSA8NmI3NDIwMzEzMDMwPl0gVEoKMCAtOS4yNDggVGQKWzwzMTMx MzIzMjIwNDE0MTIwNDU2ZTczNjM2ODY1NjQ2NT5dIFRKCjAgLTkuMjQ4IFRk CjAgLTkuMjQ4IFRkCls8NmI3NjZiMmU+IDYwIDwyMDMxMzIzMzM0MzUzOTM4 MzczNj5dIFRKCjAgLTkuMjQ4IFRkCls8NjI3NDc3PiA2MCA8MmU+IDYwIDwy MDM4MzIzMzM5MzMzNjM1MzMzOD5dIFRKCjAgLTkuMjQ4IFRkCjAgLTkuMjQ4 IFRkCi9GMi4wIDggVGYKWzw0NTJkNmQ2MTY5NmMzYT5dIFRKCi9GMS4wIDgg VGYKWzwyMDY5NmU2Nj4gMzAgPDZmNDA3NTc3NjI2NTY0NzI+IC0xNSA8Njk2 YTY2NzMyZDJkNmU2MTYxNmQyZTZlNmM+XSBUSgpFVAoKcQoyMDAuMDAwIDAg MCA4MC4wMDAgMzYuMDAwIDczNS44OTAgY20KL0kxIERvClEKCkJUCjY2IDY5 OS40MjggVGQKL0YxLjAgOSBUZgpbPDQyNmY2ZjZiNzM2ODZmNzAwYT5dIFRK CkVUCgoKQlQKNjYgNjg5LjAyNCBUZAovRjEuMCA5IFRmCls8NTQ+IDEyMCA8 MmU2MTJlNzY+IDgwIDwyZT4gNjAgPDIwNGE2ZjczMjA3Nj4gMjUgPDYxNmUy MDY0NjU3MjIwNGQ2ZjZjNjU2ZTBhPl0gVEoKRVQKCgpCVAo2NiA2NzguNjIg VGQKL0YxLjAgOSBUZgpbPDRmNzg2Nj4gMzAgPDZmNzI2NDBhPl0gVEoKRVQK CgpCVAo2NiA2NjguMjE2IFRkCi9GMS4wIDkgVGYKWzwwYT5dIFRKCkVUCgoK QlQKNjYgNjU3LjgxMiBUZAovRjEuMCA5IFRmCls8MGE+XSBUSgpFVAoKCkJU CjM2IDU4MC45NDYgVGQKL0YxLjAgMTggVGYKWzw0Nj4gNTAgPDYxNjM3NDc1 NzU3MjIwMzIzMDMxMzAyZDMwMzEzMTMyPl0gVEoKRVQKCgpCVAo0MDguNjQg NTkxLjk3MiBUZAovRjEuMCA5IFRmCls8NDY+IDUwIDw2MTYzNzQ3NTc1NzI2 NDYxNzQ3NTZkM2E+IDUwIDwyMD5dIFRKCkVUCgowLjAwMCAwLjAwMCAwLjAw MCByZwoKQlQKNTA1LjYxNCA1OTEuOTcyIFRkCi9GMS4wIDkgVGYKWzwzMTM4 MmQzMDM5MmQzMjMwMzEzMD5dIFRKCkVUCgowLjAwMCAwLjAwMCAwLjAwMCBy ZwoKQlQKNDA4LjY0IDU3OC4xIFRkCi9GMS4wIDkgVGYKWzw1Nj4gODAgPDY1 NzI+IC0zMCA8NzY+IDI1IDw2MTZjNjQ2MTc0NzU2ZDNhPiA1MCA8MjA+XSBU SgpFVAoKMC4wMDAgMC4wMDAgMC4wMDAgcmcKCkJUCjUwNS42MTQgNTc4LjEg VGQKL0YxLjAgOSBUZgpbPDMwMzIyZDMxMzAyZDMyMzAzMTMwPl0gVEoKRVQK CjAuMDAwIDAuMDAwIDAuMDAwIHJnCjAuNSB3CjAuMDAwIDAuMDAwIDAuMDAw IFJHCjEgdwowLjAwMCAwLjAwMCAwLjAwMCBSRwowLjUgdwowLjAwMCAwLjAw MCAwLjAwMCByZwoxIHcKMC4wMDAgMC4wMDAgMC4wMDAgUkcKMC41IHcKCkJU Cjk2IDUzMC4wMjQgVGQKL0YyLjAgOSBUZgpbPDRmNmQ3MzYzPiAxMCA8Njg3 MjY5NmE3NjY5NmU2Nz5dIFRKCkVUCgowLjAwMCAwLjAwMCAwLjAwMCByZwox IHcKMC4wMDAgMC4wMDAgMC4wMDAgUkcKMC41IHcKCkJUCjM4NC41NjUgNTMw LjAyNCBUZAovRjIuMCA5IFRmCls8NDI2NTY0NzI2MT4gMTAgPDY3Pl0gVEoK RVQKCjAuMDAwIDAuMDAwIDAuMDAwIHJnCjEgdwowLjAwMCAwLjAwMCAwLjAw MCBSRwowLjUgdwoKQlQKNDg5LjY5NSA1MzAuMDI0IFRkCi9GMi4wIDkgVGYK Wzw1ND4gODAgPDZmNzQ2MTYxNmM+XSBUSgpFVAoKMC4wMDAgMC4wMDAgMC4w MDAgcmcKMSB3CjAuMDAwIDAuMDAwIDAuMDAwIFJHCjAuNSB3CgpCVAo1MzQu OTg3IDUzMC4wMjQgVGQKL0YyLjAgOSBUZgpbPDQyNTQ1Nz5dIFRKCkVUCgow LjAwMCAwLjAwMCAwLjAwMCByZwozNi4wMDAgNTI2LjAzOCBtCjU1OS4yODAg NTI2LjAzOCBsClMKMSB3CjAuMDAwIDAuMDAwIDAuMDAwIFJHCjAuNSB3CgpC VAo0MCA1MTIuOTQ4IFRkCi9GMS4wIDkgVGYKWzwzMTIwNzg+XSBUSgpFVAoK MC4wMDAgMC4wMDAgMC4wMDAgcmcKMSB3CjAuMDAwIDAuMDAwIDAuMDAwIFJH CjAuNSB3CgpCVAo5NiA1MTIuOTQ4IFRkCi9GMS4wIDkgVGYKWzw3NDY1NzM3 ND5dIFRKCkVUCgowLjAwMCAwLjAwMCAwLjAwMCByZwoxIHcKMC4wMDAgMC4w MDAgMC4wMDAgUkcKMC41IHcKCkJUCjM3Mi45NDYgNTEyLjk0OCBUZAovRjEu MCA5IFRmCls8ODAyMDMxMmUzMjMzMzQyYzMwMzA+XSBUSgpFVAoKMC4wMDAg MC4wMDAgMC4wMDAgcmcKMSB3CjAuMDAwIDAuMDAwIDAuMDAwIFJHCjAuNSB3 CgpCVAo0NzIuOTQ2IDUxMi45NDggVGQKL0YxLjAgOSBUZgpbPDgwMjAzMTJl MzIzMzM0MmMzMDMwPl0gVEoKRVQKCjAuMDAwIDAuMDAwIDAuMDAwIHJnCjEg dwowLjAwMCAwLjAwMCAwLjAwMCBSRwowLjUgdwoKQlQKNTM3LjQ3MSA1MTIu OTQ4IFRkCi9GMS4wIDkgVGYKWzwzMTM5MjU+XSBUSgpFVAoKMC4wMDAgMC4w MDAgMC4wMDAgcmcKMzYuMDAwIDUwNS42MzQgbQo1NTkuMjgwIDUwNS42MzQg bApTCjAuMDAwIDAuMDAwIDAuMDAwIFJHCjEgdwowLjAwMCAwLjAwMCAwLjAw MCBSRwowLjUgdwoKQlQKMzcxLjQ3OSA0OTIuMzQgVGQKL0YyLjAgOSBUZgpb PDUzNzU2Mjc0NmY3NDYxNjE2YzNhPl0gVEoKRVQKCjAuMDAwIDAuMDAwIDAu MDAwIHJnCjEgdwowLjAwMCAwLjAwMCAwLjAwMCBSRwowLjUgdwoKQlQKNDcy Ljk0NiA0OTIuNTQ0IFRkCi9GMS4wIDkgVGYKWzw4MDIwMzEyZTMyMzMzNDJj MzAzMD5dIFRKCkVUCgowLjAwMCAwLjAwMCAwLjAwMCByZwoxIHcKMC4wMDAg MC4wMDAgMC4wMDAgUkcKMC41IHcKCkJUCjM3MS40NzkgNDcwLjQ2OCBUZAov RjIuMCA5IFRmCls8NDI1NDU3MjAzMTM5MjUzYT5dIFRKCkVUCgowLjAwMCAw LjAwMCAwLjAwMCByZwoxIHcKMC4wMDAgMC4wMDAgMC4wMDAgUkcKMC41IHcK CkJUCjQ4MC40NTIgNDcwLjY3MiBUZAovRjEuMCA5IFRmCls8ODAyMDMyMzMz NDJjMzQzNj5dIFRKCkVUCgowLjAwMCAwLjAwMCAwLjAwMCByZwozMTkuNDgw IDQ2MS44OTAgbQo1MTkuNDgwIDQ2MS44OTAgbApTCjEgdwowLjAwMCAwLjAw MCAwLjAwMCBSRwowLjUgdwoKQlQKMzg2LjY5OCA0NDguNTk2IFRkCi9GMi4w IDkgVGYKWzw1ND4gODAgPDZmNzQ2MTYxNmMzYT5dIFRKCkVUCgowLjAwMCAw LjAwMCAwLjAwMCByZwoxIHcKMC4wMDAgMC4wMDAgMC4wMDAgUkcKMC41IHcK CkJUCjQ3Mi45NDYgNDQ4LjggVGQKL0YxLjAgOSBUZgpbPDgwMjAzMTJlMzQz NjM4MmMzNDM2Pl0gVEoKRVQKCjAuMDAwIDAuMDAwIDAuMDAwIHJnCjM2LjAw MCA2My43NDQgbQo1NTkuMjgwIDYzLjc0NCBsClMKCkJUCjM2IDUyLjI4MiBU ZAovRjEuMCA5IFRmCls8NTc+IDMwIDw2NTIwNzY+IDI1IDw2NTcyN2E+IDE1 IDw2ZjY1NmI+IDIwIDw2NTZlMjA3NTIwNzY3Mj4gLTE1IDw2OTY1NmU2NDY1 NmM2OTZhNmIyMDY4NjU3NDIwNjI2Zj4gMTUgPDc2PiAyNSA8NjU2ZTczNzQ2 MTYxNmU2NDY1MjA2MjY1NjQ3Mj4gMTAgPDYxNjcyMDYyNjk2ZTZlNjU2ZTIw NjQ2NTIwNjc2NTczNzQ2NTZjNjQ2NTIwNjI2NTc0NjE2YzY5NmU2NzczNzQ2 NTcyPiAtMjUgPDZkNjk2YTZlMjA3NDY1MjA3Nj4gMjUgPDZmNmM2NDZmNjU2 ZTIwNmY3MDIwNmY2ZTdhPiAxNSA8NjUyMDYyNjE2ZTZiNzI2NTZiPiAyMCA8 NjU2ZTY5NmU2NzJlPiA2MCA8MjA+IDUwIDw1Nj4gODAgPDZmNmY3MjBhPl0g VEoKRVQKCgpCVAozNiA0MS44NzggVGQKL0YxLjAgOSBUZgpbPDc2NzI+IDEw IDw2MTY3NjU2ZTIwNmI3NTZlNzQyMDc1MjA2MzZmNmU3NDYxNjM3NDIwNmY3 MDZlNjU2ZDY1NmUyMDcwNjU3MjIwNjUyZDZkNjE2OTZjMmU+XSBUSgpFVAoK UQoKZW5kc3RyZWFtCmVuZG9iago1IDAgb2JqCjw8IC9Db250ZW50cyA0IDAg UgovUHJvY1NldCA2IDAgUgovTWVkaWFCb3ggWzAgMCA1OTUuMjggODQxLjg5 XQovUGFyZW50IDIgMCBSCi9SZXNvdXJjZXMgPDwgL0ZvbnQgPDwgL0YxLjAg NyAwIFIKL0YyLjAgOCAwIFIKPj4KL1hPYmplY3QgPDwgL0kxIDkgMCBSCj4+ Cj4+Ci9UeXBlIC9QYWdlCj4+CmVuZG9iago2IDAgb2JqClsvUERGIC9UZXh0 IC9JbWFnZUNdCmVuZG9iago3IDAgb2JqCjw8IC9CYXNlRm9udCAvSGVsdmV0 aWNhCi9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nCi9UeXBlIC9Gb250Ci9T dWJ0eXBlIC9UeXBlMQo+PgplbmRvYmoKOCAwIG9iago8PCAvQmFzZUZvbnQg L0hlbHZldGljYS1Cb2xkCi9FbmNvZGluZyAvV2luQW5zaUVuY29kaW5nCi9U eXBlIC9Gb250Ci9TdWJ0eXBlIC9UeXBlMQo+PgplbmRvYmoKOSAwIG9iago8 PCAvTGVuZ3RoIDM3MjkKL1dpZHRoIDIwMAovQ29sb3JTcGFjZSAvRGV2aWNl R3JheQovRmlsdGVyIC9EQ1REZWNvZGUKL0hlaWdodCA4MAovVHlwZSAvWE9i amVjdAovQml0c1BlckNvbXBvbmVudCA4Ci9TdWJ0eXBlIC9JbWFnZQo+Pgpz dHJlYW0K/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQH/wAALCABQAMgBAREA/8QAHAABAAIDAQEBAAAAAAAAAAAAAAgJBgcK AgUD/8QALBAAAQQDAQABBAIBAwUAAAAABAMFBgcAAggBCRITFBURFhcKGSIh Q1mX2P/aAAgBAQAAPwDv4xjGMYxjGMYxjGMYxjGMYxjGMYxjGMYxjGMYxjGM YxjGMhd0p2/WvP8AIWepo8xya+unZkFuXX3MtQpCPVkPQ+30ppSOXrrrpMNU 1wOqpqo7WLYR7KwCBJGrNv7kwJRv2rptu8/lblFm8yc5SWEe8avdv288qvPU HO7XA+nafErhCo7GmA1ZytK4oOsvCrSZpS1RVjLPLYAo7O9x3t2hD/qCOoyK 2LfHVa9hXnw9zJbtryH2W2PP6sY5DMpL60sbD69PZW5WhR/rPGm1nYW71b7W nvorU1ghp/8AaQ1/6/zNHGMYxjGMYxjGMYxjGMoX7s707GQniVK88cr9XV/V JBZjbPOsI/TcSk1hmgi+e6mA89Vnac7ruPJEmebJCJ2RYbirsz6krHNdcuKi DY5k/B5q6yojlKPvDXVnxpfJWtJped49WXa02gtETS4rak2317ESazbHeunV pBKHRZdQhdEZVcdjZ9iSB4+ztASn4vkl/wDdpG/8efyO/wDq7n7/AOm8rJiP TN7crT5p34G4q76cqGkUg9UmHF9+Q6sla+imjoSsW6PnNFmR+97DnNTlblqK GbVgdF5jW7iWe4rtokUU2H3R6Wagsr226+YJ0rArHrAx3G+pxgVsRZeIzmMO CfnnhLY8tuyxreRuhtt54m5sTo8MZunv1guZH0q6p7MxjGMYxjGMYxjGMYxn Pt84DVCSZHQknnFbQG2BKv5m+Rq2mCGWcyryGFGzCvapqmQxkl7aBXBqJMFF chdN1Eh3IJbdPZTVMlLbbzfWt/4IIJyt8kwvUa3QXCPGrZvTZFLpRP8AxrVT zHNV9bATtXd8/c+PUzk/5nqfsLaP1/o3oP4/ihv3vCfvJfYlp8yPK3EvBPGh d+0lwxyg4TdCzoLD9B59W576wetUk/cfsN9gGmSx4v0zX8BD8Zbxx8TT/lT6 0Vfq8+mJnBcWo+4ub+C+wg+YeeaavAv5Sa4q5aQUlBnCHj7Q5uFfiPwPEXSR SQz+TlvsqH7en+pL7Cje6Ipfb9+rskVU+0kor9Cin2091Ptpa/Wqp9Gvu30J 6fz59Sm38fTpr/Pn1be+efz5/P8AOQOrj5LuP7So2/Oh4zYziNXPMTjJGe7f ZNDpXFJVCnaLtiTme2FQ5/aQJEWcX939WzIAAE7PL+iUwt/q7sIUIjJihbvg nSNRQe8awUfSa9sdp9f4efI467xRzdWPcskUN3/QvwwTuIA6eDbGtK5giHjm 1LBuofireaIQtt3GMre6v+WTh/jWfC1LbloOLjbpIqB6tXVrDpLY8yawCRP2 CBT+JGm8puj+6zd7o5jtr05gvJbUqm6htpDbt+V5MKg70rnpen4LelSObi8V 1YrWu7xhxdmF6jDiQKK5GtBXhTJIAm91D3QcW40fz1cXxAvRLQ0BYtvIFLX2 /jGMYxjGMYxlb/Sjc3u/yEfHi1uoIbm2OFdd0huDa4CoGgHCEQqlklxTAyU1 RyRl09tk1kFk90ldNttN9NtfffM+r289yTnWkY2XzH5BKWntpdH8vUrvMW+t Iw9BtTbb12xKtHB5Mi3ujSDIiGVrlriW3CGmDfwtsomiWJ6vut5inLjld0k6 C675n6qsuFdMs1Nx3mSYQ57KpKI14MkvbDdbxb2MdGAXKTgmqh7w5p1BOXN3 VR8/I9RTQ++p5t+/dsajkUG4SaYswMkbavPka51I8bGBqBZ2/wAIWb7A+8v4 G3IDDeLK/Rr91X7X17/Tr9e3v0+ZZfnHp8iXHKCXy013zBCJodB+efljdINY vU8BZ/CkP30goCTSKcSQgAlInX8Aqb/gquKTgl9SoMskD66KIqDbIDbbAlEo vHq/pn5Q4I2dkXLw5VXxg1s1NnOdTUFMW+qYgSDEopNfty6ywhRdFZhXoG0D bVnBoXXDEb2SXx1tbjmoUFJJwwGn/kX6uuScfApL7HtSVwcDoCQ3zCrrEa3V eFQe7y67sYSv4i9yBnHWDZnU978SbNCBEUkwSpQ6HItLeKG4BN2vm7ezul2+ Q/6g/wAifRVlpNvPWlHpUdszzpzVEqg10tIZhlSEFUHMUTjy5HmhjO7It+yO yfqS4C2ifqWyWt4fxP1/e4/OMV6K6A6dsPoOX9aVlS10jx2U7EDw2mm2Rwna RNsNrtpUczkgxvWWUM4cmcvERzZG9MX7pzVNLJ2X8ri+DN4hCXV3yot9uFNI fabt1tNlXwCVbhjzsyrRnmQkNyMPTcPfHMmKhvX7ZZwHj2yrQO0awlZfXVt8 j2+bH7gta4uivlQ5z+OGJdK2nytREsoORXfJpxz5Lm6B2xbEpFcbBQTjEQsP wFxJaxmXyDFKEitqZaZO6Ev3eWw9QFt3bqsJ/wDID2fFfjg7zjQvSM9lEx4t 71i1F1R1K2Om4U4sWv8Aaay5rUGkcmb1thpd9wWPCuay5yRShbRJW0RxIcR0 Qt093s8A7ddPkr04HX+UDrbSE9E8oMPSE7nqLm1pzGOyhQR6KXYKe88U/Epe NqyEfUn8WuvWNTaNbeRgncpZAR+Gis5/If22N8ONdzz3p6es1xVV8sSPMat4 EPqqkkk9aNFGSWxEhrFcnFRTeWs6L89oKugsrKdNHNsj7Ug9Fl6De7eWR+2X cnxwfKpz9T0h7evzq2g+iudbPte8GK9ZSLYLlXXtdQmyJsXZ0BbWQMUCDQ4n eBEGtDBHGkcXyPiSdqJLkpA7Qc217RbubqmGXLwZ0vTdh9tuXMnTHTYdOqvP XnT1Z2ey32wp2MPCp2jH+a4fExkaP1jqh722t8iFfnfdE1Bl0S3LWaRnh93L M5J2h0bYnzsnNXfXS9Nwz4932dWpVkFreXEMyDqW1Nt0yNriRskEXFk7RAwW mnl2jSKMjmI1EmSFJ1NHI/Vfhm5qy959O1NHvhz+RS57usBy5vu+JySg+too o8K6V6rOmkqfxaIWy6xwdMRiCkT+AgrLnQlvGbBtDK3W2U2TRcS91rYPg9kX RVs8gunTfSljTibSbpe157YsDj0rkTk8Ndb1UI9Ex6LxeLtzh79DQ2EOjdI3 kP0PRFA6Onxn6UE0xEvdrk8YxjIIdc8p3Pedlc+XBQvSTNzjYVCCW82iur9R oF5N8ja7ebIY1ugu7M5WJABWpVuRiGuyRXu7ruRsf/w0D9F+omPcm4V7ttV2 qwW9PkXglh1zXt5UpdrpCGLh6OQBxlBlKWZGrLaWNKYN1+OpTDo5uEbQCVcd Gp01FTX2W3bTtU/RVdg2pxp1WZ0tbPQvNXasV5/RuaIVLF5jC5LyqzXbsqrU IcuDYXIOSO1wwv0TwjSaO+y4SDEn5576j4qUV9pP3TD1+He3J9P6Mf8AoL5B oTa0Cpa7oReGkCj/ABbHqxPkT7BtXRNuA9mbZer8S0jrIPBqaiv6V0T823TU 3CW9T18y2LI6WByZz9aN7U/0vO4B+9u2hBXsKppr/apq2f1QWRjGCPKX9bZ5 I3xJ9/MHPLT+uSsLwoP936xN0N009tI7dNfFFwX19ZY9v3tRYsisX0FuaXuS R+YzyBEzJlatk9gWmbjwWTR4OVIIajiDpnOw5D0mAA3tiTom2giiJZX0P8a3 FHUVSVlR9uUZHza4pbVJGpGaKHvkBXrwLUMJuKaoy5QtzYzxGZ1b28IV4Z1l yGxz3Cb3EsVR3a2twCwyL/Ej8eEJhFzVvEOb2mNQfoSKwCFW/HGSe2y3AS+P VisIVDh/fRZ4muwnhnBJObu/RlZlfpY7qnO8uc3xzcnEsqdNcV9EKkryB1VX zR/X4DWUMi9fQhh/PdHX9JEIYxgxyNNH7R7Ncnpy/WsraEF+e7uJ7oZ9n8g8 0otRVdSDfV3xPcEdpy3/ACFflCtT5Yu6Agpc/i8ilkBlTsKAgmIGhIToY9sq Mm/FCRQBDIkQroWACOgIAQMOlonr4s74muBbbqGoqRmFEIKQqg24pnpoprnV jtc2gDSabu4mNTZYg8t/vDm1kmKKEKNcjfntu8X+2SmKmSMKshlBfxj8Lmcv IcZ70CyC84JSICXr18zymfx1d1lraogoNJ3+aR6WNc+kD/t6KIkW6PUoOLOF DCBMUXCCEHR2yJx3zkD0Qw9XC119q/oxWI9Nsc9/t063/BrcXwnxCOf1ZST7 wsn7fhZHn7guOEP233P+bpt9On01CfIx8ODDMeOYNzPwVVkYibWt3LGep7Rj MrsqYFgPXilWziATZ5GerBfpY4aODiOVDm9GOt5rez6ojEliCiL7Gqk2Hc6/ FlwlyvMJhPqcohqbJfNmRyijo+SuSzKxSwYW7DJBnwqPeT+QyRGPxokJL8Ak JqSGXNbNv1J5RTWkOGjqKF/B78YsBkbHLI9zbsk/RSxmm0oaaRbN1LaQ6UsL im7s+kdD1sRIIRiEdUkz1o8uMU0Oy6AWr4K5otjUkFKRj4L5Pja/WpLNVP4a /dALk3dT7/3mySP8pBu7bNmhxR+guYr6Qj8hvsaZD/crrWIqo/ufuoKJLt7U qDWR8gXxtW9cVJ82fG1yHX1ZVTwwG86yO17MlMnepjN6nFisv9kjfH4G3TCS PEufnaTqyKQHiOKi7n4oqMTHniRRJgM/h0u/rSu4nUVdQSqoG16MsJraHxuC xFpT2+vVujkUaBGNmD9U9812W3QbwR9FV9/PuLq+brKe+777e5m+MYxjGMYx jGMYxjGMYxjGMYxjGMYxjGMYxjGMYxjGMYxjGMYxjGMYxjGMYxjGMYxjP//Z CmVuZHN0cmVhbQplbmRvYmoKeHJlZgowIDEwCjAwMDAwMDAwMDAgNjU1MzUg ZiAKMDAwMDAwMDAxNCAwMDAwMCBuIAowMDAwMDAwMDcwIDAwMDAwIG4gCjAw MDAwMDAxMjcgMDAwMDAgbiAKMDAwMDAwMDE3NiAwMDAwMCBuIAowMDAwMDA0 MTE1IDAwMDAwIG4gCjAwMDAwMDQzMDEgMDAwMDAgbiAKMDAwMDAwNDMzNyAw MDAwMCBuIAowMDAwMDA0NDM0IDAwMDAwIG4gCjAwMDAwMDQ1MzYgMDAwMDAg biAKdHJhaWxlcgo8PCAvUm9vdCAzIDAgUgovU2l6ZSAxMAovSW5mbyAxIDAg Ugo+PgpzdGFydHhyZWYKODQzMwolJUVPRgo= 08155914 Parkietje B.V. Brouwerijstraat 26 Enschede 7523XD NL NL817575546B01 VAT Parkietje B.V. 08155914 info@dev.null.moneybird.net Foobar Holding B.V. Hoofdstraat 12 Amsterdam 1234AB NL Foobar Holding B.V. info@example.com 30 2019-10-15 RF730000000000000QM2JHJDQ NL50TEST0166567191 TESTNL2A We verzoeken u vriendelijk het bovenstaande bedrag van € 363,00 voor 15-10-2019 te voldoen op onze bankrekening onder vermelding van de omschrijving RF73QM2JHJDQ. Voor vragen kunt u contact opnemen per e-mail. 63.0 300.0 63.0 S 21.0 VAT 300.0 300.0 363.0 0 363.0 1 1.0 300.0 Project X Project X S 21.0 VAT 300.0 '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenInvoiceDoesNotExist: summary: Returns 404 when invoice does not exist value: error: record not found symbolic: id: not_found operationId: get_administration_id_sales_invoices_id_download_ubl /{administration_id}/sales_invoices/{id}/duplicate_creditinvoice{format}: patch: summary: Duplicate to credit invoice description: |- Duplicate a sales invoice to a new credit invoice. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object examples: CreatesACreditInvoiceForASalesInvoice: summary: Creates a credit invoice for a sales invoice value: {} responses: '200': description: Sales invoice updated content: application/json: schema: $ref: '#/components/schemas/sales_invoice_response' examples: CreatesACreditInvoiceForASalesInvoice: summary: Creates a credit invoice for a sales invoice value: id: '495430007374480756' administration_id: 123 contact_id: '495430007176299874' contact: id: '495430007176299874' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:55.141Z' updated_at: '2026-08-14T09:14:55.141Z' version: 1786698895 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: null recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: 2 state: draft invoice_date: null due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: null short_payment_reference: null reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: '495430007214048612' paused: false paid_at: null sent_at: null created_at: '2026-08-14T09:14:55.330Z' updated_at: '2026-08-14T09:14:55.336Z' public_view_code: null public_view_code_expires_at: null version: 1786698895 details: - id: '495430007377626485' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: null amount_decimal: '1.0' description: '**Creditfactuur voor factuur 2026-0001**' price: '0.0' period: null row_order: 1 total_price_excl_tax_with_discount: '0.0' total_price_excl_tax_with_discount_base: '0.0' tax_report_reference: - NL/1a mandatory_tax_text: '' created_at: '2026-08-14T09:14:55.333Z' updated_at: '2026-08-14T09:14:55.333Z' - id: '495430007379723638' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: '-1 x' amount_decimal: '-1.0' description: Project X price: '300.0' period: null row_order: 2 total_price_excl_tax_with_discount: '-300.0' total_price_excl_tax_with_discount_base: '-300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:55.335Z' updated_at: '2026-08-14T09:14:55.335Z' payments: [] total_paid: '0.0' total_unpaid: '-363.0' total_unpaid_base: '-363.0' prices_are_incl_tax: false total_price_excl_tax: '-300.0' total_price_excl_tax_base: '-300.0' total_price_incl_tax: '-363.0' total_price_incl_tax_base: '-363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: null original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/d510a06e0a02e45bf8c325fe381526d015f733ccccf813e53f08c03a472144ee/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/d510a06e0a02e45bf8c325fe381526d015f733ccccf813e53f08c03a472144ee/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: credit_invoice_created_from_original link_entity_id: null link_entity_type: null data: original_invoice: 2026-0001 created_at: '2026-08-14T09:14:55.338Z' updated_at: '2026-08-14T09:14:55.338Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '-300.0' taxable_amount_base: '-300.0' tax_amount: '-63.0' tax_amount_base: '-63.0' time_entries: [] '400': $ref: '#/components/responses/400_bad_request' '402': $ref: '#/components/responses/402_payment_required' '404': $ref: '#/components/responses/404_not_found' operationId: patch_administration_id_sales_invoices_id_duplicate_creditinvoice /{administration_id}/sales_invoices/{id}/mark_as_dubious{format}: patch: summary: Mark as dubious description: |- This endpoint marks a sales invoice as dubious. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: dubious_date: type: string format: date required: [] examples: MarksTheSalesInvoiceAsDubious: summary: Marks the sales invoice as dubious value: {} responses: '200': description: Sales invoice updated content: application/json: schema: $ref: '#/components/schemas/sales_invoice_response' examples: MarksTheSalesInvoiceAsDubious: summary: Marks the sales invoice as dubious value: id: '495430006121432315' administration_id: 123 contact_id: '495430006083683577' contact: id: '495430006083683577' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:54.099Z' updated_at: '2026-08-14T09:14:54.099Z' version: 1786698894 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF040000000000000CWPKF9T4 short_payment_reference: RF04CWPKF9T4 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:54.135Z' updated_at: '2026-08-14T09:14:54.506Z' public_view_code: '329952' public_view_code_expires_at: '2026-11-14T09:14:54.185Z' version: 1786698894 details: - id: '495430006123529468' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:54.137Z' updated_at: '2026-08-14T09:14:54.221Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: '2026-08-14' marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/911f4a6ec56f8b77bab18fe773094412c0b9e616401e14773e4e3e110b8a9ed6/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/911f4a6ec56f8b77bab18fe773094412c0b9e616401e14773e4e3e110b8a9ed6/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:54.140Z' updated_at: '2026-08-14T09:14:54.140Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:54.197Z' updated_at: '2026-08-14T09:14:54.197Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0001 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:54.238Z' updated_at: '2026-08-14T09:14:54.238Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_marked_as_dubious link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:54.510Z' updated_at: '2026-08-14T09:14:54.510Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' operationId: patch_administration_id_sales_invoices_id_mark_as_dubious /{administration_id}/sales_invoices/{id}/mark_as_uncollectible{format}: patch: summary: Mark as uncollectible description: |- This endpoint marks a sales invoice as uncollectible. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: uncollectible_date: type: string format: date book_method: type: string description: Can be `revenue`. required: [] examples: MarksTheSalesInvoiceAsUncollectibleUsingTheUncollectibleRevenue: summary: Marks the sales invoice as uncollectible using the uncollectible revenue value: {} responses: '200': description: Sales invoice updated content: application/json: schema: $ref: '#/components/schemas/sales_invoice_response' examples: MarksTheSalesInvoiceAsUncollectibleUsingTheUncollectibleRevenue: summary: Marks the sales invoice as uncollectible using the uncollectible revenue value: id: '495429992391378013' administration_id: 123 contact_id: '495429992353629275' contact: id: '495429992353629275' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:41.005Z' updated_at: '2026-08-14T09:14:41.005Z' version: 1786698881 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: uncollectible invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF630000000000000A7PD4MZY short_payment_reference: RF63A7PD4MZY reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:41.041Z' updated_at: '2026-08-14T09:14:41.527Z' public_view_code: '782694' public_view_code_expires_at: '2026-11-14T09:14:41.092Z' version: 1786698881 details: - id: '495429992394523742' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:41.044Z' updated_at: '2026-08-14T09:14:41.526Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: '2026-08-14' reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/a7ad25e235f1a47476a5403addf0880e90416cca85d76362a9dbe99ce7ddab86/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/a7ad25e235f1a47476a5403addf0880e90416cca85d76362a9dbe99ce7ddab86/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:41.048Z' updated_at: '2026-08-14T09:14:41.048Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:41.103Z' updated_at: '2026-08-14T09:14:41.103Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0001 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:41.144Z' updated_at: '2026-08-14T09:14:41.144Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_uncollectible link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:41.510Z' updated_at: '2026-08-14T09:14:41.510Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_marked_as_uncollectible link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:41.531Z' updated_at: '2026-08-14T09:14:41.531Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' operationId: patch_administration_id_sales_invoices_id_mark_as_uncollectible /{administration_id}/sales_invoices/{id}/pause{format}: post: summary: Pause sales invoice description: |- This endpoint pauses a sales invoice. The automatic workflow steps will not be executed while the sales invoice is paused. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object examples: PausesTheSalesInvoice: summary: Pauses the sales invoice value: {} responses: '201': description: Sales invoice paused content: application/json: schema: $ref: '#/components/schemas/sales_invoice_response' examples: PausesTheSalesInvoice: summary: Pauses the sales invoice value: id: '495430017107363041' administration_id: 123 contact_id: '495430017061225692' contact: id: '495430017061225692' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:04.568Z' updated_at: '2026-08-14T09:15:04.568Z' version: 1786698904 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '495430017065419998' contact_person: id: null contact_id: '495430017061225692' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:15:04.572Z' updated_at: '2026-08-14T09:15:04.572Z' version: 1786698904 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF550000000000000GXWW5W6Q short_payment_reference: RF55GXWW5W6Q reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: true paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:15:04.612Z' updated_at: '2026-08-14T09:15:04.754Z' public_view_code: '157689' public_view_code_expires_at: '2026-11-14T09:15:04.666Z' version: 1786698904 details: - id: '495430017110508770' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: 20260801..20260831 row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:04.615Z' updated_at: '2026-08-14T09:15:04.702Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2099-01-01' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/400671b2292f6982f7a6dd3e702804ed191edab57e61d69bd1b7a06fb264811c/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/400671b2292f6982f7a6dd3e702804ed191edab57e61d69bd1b7a06fb264811c/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:04.618Z' updated_at: '2026-08-14T09:15:04.618Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:04.678Z' updated_at: '2026-08-14T09:15:04.678Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com; janjanssen@dev.null.moneybird.net email_message: |- Geachte Jan Janssen, In de bijlage kunt u factuur 2026-0001 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:04.721Z' updated_at: '2026-08-14T09:15:04.721Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_paused link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:04.757Z' updated_at: '2026-08-14T09:15:04.757Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] '404': $ref: '#/components/responses/404_not_found' operationId: post_administration_id_sales_invoices_id_pause /{administration_id}/sales_invoices/{id}/register_payment{format}: patch: summary: Register a payment description: |- This endpoint is deprecated and should no longer be used. It has been replaced by [Create a payment](#post_sales_invoices_sales_invoice_id_payments). ### Required scope(s) `sales_invoices` deprecated: true x-sunset: '2026-12-31' tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: payment: type: object unevaluatedProperties: false properties: payment_date: type: string price: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. price_base: $ref: '#/components/schemas/number' description: Amount paid expressed in the base currency. Required for foreign currencies. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. financial_account_id: $ref: '#/components/schemas/identifier' description: Should be a valid financial account id. financial_mutation_id: $ref: '#/components/schemas/identifier' description: Should be a valid financial mutation id. transaction_identifier: type: string manual_payment_action: type: string description: Can be `private_payment`, `payment_without_proof`, `cash_payment`, `rounding_error`, `bank_transfer`, `balance_settlement` or `invoices_settlement`. ledger_account_id: $ref: '#/components/schemas/identifier' description: Should be a valid ledger account id. invoice_id: $ref: '#/components/schemas/identifier' required: - payment_date - price required: [] examples: RegistersPayments: summary: Registers payments value: payment: payment_date: '2026-08-14T09:15:06.355Z' price: '363.0' responses: '200': description: Sales invoice updated content: application/json: schema: type: object additionalProperties: true examples: RegistersPayments: summary: Registers payments value: id: '495430018948662687' administration_id: 123 invoice_type: SalesInvoice invoice_id: '495430018779841935' financial_account_id: null user_id: '495429852315255909' payment_transaction_id: null transaction_identifier: null price: '363.0' price_base: '363.0' payment_date: '2026-08-14' credit_invoice_id: null financial_mutation_id: null ledger_account_id: '495429852926575747' linked_payment_id: null manual_payment_action: null created_at: '2026-08-14T09:15:06.368Z' updated_at: '2026-08-14T09:15:06.368Z' '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: patch_administration_id_sales_invoices_id_register_payment /{administration_id}/sales_invoices/{id}/register_payment_creditinvoice{format}: patch: summary: Register a payment for a creditinvoice description: |- Settles a credit invoice against the sales invoice it credits. On the settlements ledger account, one payment is booked on each invoice, so they settle against each other. Both use today as the payment date and the total amount of the credit invoice, so no request body values are needed. The invoice must be a credit invoice, it must have an original invoice, and both invoices must be in a state that accepts a payment. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object examples: RegistersPaymentsForACreditInvoice: summary: Registers payments for a credit invoice value: {} responses: '200': description: Sales invoice updated content: application/json: schema: $ref: '#/components/schemas/sales_invoice_response' examples: RegistersPaymentsForACreditInvoice: summary: Registers payments for a credit invoice value: id: '495430024011188134' administration_id: 123 contact_id: '495430023798327188' contact: id: '495430023798327188' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:10.993Z' updated_at: '2026-08-14T09:15:10.993Z' version: 1786698910 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0002 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: paid invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF510000000000000JPQFF447 short_payment_reference: RF51JPQFF447 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: '495430023835027350' paused: false paid_at: '2026-08-14' sent_at: '2026-08-14' created_at: '2026-08-14T09:15:11.196Z' updated_at: '2026-08-14T09:15:11.370Z' public_view_code: '575635' public_view_code_expires_at: '2026-11-14T09:15:11.258Z' version: 1786698911 details: - id: '495430024015382439' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: null amount_decimal: '1.0' description: '**Creditfactuur voor factuur 2026-0001**' price: '0.0' period: null row_order: 1 total_price_excl_tax_with_discount: '0.0' total_price_excl_tax_with_discount_base: '0.0' tax_report_reference: - NL/1a mandatory_tax_text: '' created_at: '2026-08-14T09:15:11.200Z' updated_at: '2026-08-14T09:15:11.301Z' - id: '495430024017479592' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: '-1 x' amount_decimal: '-1.0' description: Project X price: '300.0' period: null row_order: 2 total_price_excl_tax_with_discount: '-300.0' total_price_excl_tax_with_discount_base: '-300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:11.202Z' updated_at: '2026-08-14T09:15:11.303Z' payments: - id: '495430024178960310' administration_id: 123 invoice_type: SalesInvoice invoice_id: '495430024011188134' financial_account_id: null user_id: '495429852315255909' payment_transaction_id: null transaction_identifier: null price: '-363.0' price_base: '-363.0' payment_date: '2026-08-14' credit_invoice_id: null financial_mutation_id: null ledger_account_id: '495429852927624326' linked_payment_id: null manual_payment_action: null created_at: '2026-08-14T09:15:11.356Z' updated_at: '2026-08-14T09:15:11.356Z' total_paid: '-363.0' total_unpaid: '0.0' total_unpaid_base: '0.0' prices_are_incl_tax: false total_price_excl_tax: '-300.0' total_price_excl_tax_base: '-300.0' total_price_incl_tax: '-363.0' total_price_incl_tax_base: '-363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/4d07289061499307ab39319ca7b78b09625d9b4453650175ca7aee003872cae8/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/4d07289061499307ab39319ca7b78b09625d9b4453650175ca7aee003872cae8/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: credit_invoice_created_from_original link_entity_id: null link_entity_type: null data: original_invoice: 2026-0001 created_at: '2026-08-14T09:15:11.205Z' updated_at: '2026-08-14T09:15:11.205Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:11.272Z' updated_at: '2026-08-14T09:15:11.272Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0002 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:11.323Z' updated_at: '2026-08-14T09:15:11.323Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_paid link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:11.359Z' updated_at: '2026-08-14T09:15:11.359Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '-300.0' taxable_amount_base: '-300.0' tax_amount: '-63.0' tax_amount_base: '-63.0' time_entries: [] '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' operationId: patch_administration_id_sales_invoices_id_register_payment_creditinvoice /{administration_id}/sales_invoices/{id}/resume{format}: post: summary: Resume sales invoice description: |- This endpoint resumes the sales invoice. The automatic workflow steps will execute again after resuming. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object examples: ResumesTheSalesInvoice: summary: Resumes the sales invoice value: {} responses: '201': description: Sales invoice resumed content: application/json: schema: $ref: '#/components/schemas/sales_invoice_response' examples: ResumesTheSalesInvoice: summary: Resumes the sales invoice value: id: '495430019450930641' administration_id: 123 contact_id: '495430019403744716' contact: id: '495430019403744716' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:06.802Z' updated_at: '2026-08-14T09:15:06.802Z' version: 1786698906 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '495430019406890446' contact_person: id: null contact_id: '495430019403744716' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:15:06.805Z' updated_at: '2026-08-14T09:15:06.805Z' version: 1786698906 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF0400000000000006PETSTTG short_payment_reference: RF046PETSTTG reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:15:06.847Z' updated_at: '2026-08-14T09:15:06.997Z' public_view_code: '011450' public_view_code_expires_at: '2026-11-14T09:15:06.899Z' version: 1786698906 details: - id: '495430019454076370' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: 20260801..20260831 row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:06.850Z' updated_at: '2026-08-14T09:15:06.937Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/20db81e58ce921e4cb4e7cebc5de00e81786002f4967c0ef2b1d867dbcc89adc/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/20db81e58ce921e4cb4e7cebc5de00e81786002f4967c0ef2b1d867dbcc89adc/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:06.853Z' updated_at: '2026-08-14T09:15:06.853Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:06.911Z' updated_at: '2026-08-14T09:15:06.911Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com; janjanssen@dev.null.moneybird.net email_message: |- Geachte Jan Janssen, In de bijlage kunt u factuur 2026-0001 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:06.956Z' updated_at: '2026-08-14T09:15:06.956Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_unpaused link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:07.000Z' updated_at: '2026-08-14T09:15:07.000Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] '404': $ref: '#/components/responses/404_not_found' operationId: post_administration_id_sales_invoices_id_resume /{administration_id}/sales_invoices/{id}/send_invoice{format}: patch: summary: Sends an invoice description: |- This endpoint provides two options: sending the invoice and scheduling sending in the future. When sending now, you can provide a send method, email address and message. If you don't provide any arguments, the defaults from the contact and workflow will be used. If you have sent the invoice before, then the settings from the previous sending are used instead of the defaults. When scheduling sending, set the boolean `sending_scheduled` to true and provide an `invoice_date`. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: sales_invoice_sending: type: object unevaluatedProperties: false properties: delivery_method: type: string enum: - Email - Peppol - Manual sending_scheduled: type: - boolean - string default: false description: Schedule the invoice to be sent in the future instead of immediately. Combine with `invoice_date` to set the date on which it is sent. deliver_ubl: type: - boolean - string description: Attach a UBL (e-invoicing) file to the email. Only used when `delivery_method` is `Email`; defaults to the contact's UBL preference. mergeable: type: - boolean - string default: false description: When multiple scheduled invoices share the same contact, identity, workflow, document style, currency, language and invoice date, merge them into a single invoice before sending. email_address: type: string description: Recipient email address. Only used when `delivery_method` is `Email`; overrides the contact's default email address. email_message: type: string description: Message included in the email. Only used when `delivery_method` is `Email`; defaults to the workflow's invoice email text. invoice_date: type: string format: date description: When scheduling, the date on which the invoice is sent. required: [] required: [] examples: SendsAnInvoiceWithAlternativeInformation: summary: Sends an invoice with alternative information value: sales_invoice_sending: delivery_method: Email email_address: alternative@example.com email_message: Hi, this is my invoice with id {invoice_id}! SendsAnInvoiceViaMailWithAnUblAttachment: summary: Sends an invoice via mail with an ubl attachment value: sales_invoice_sending: delivery_method: Email deliver_ubl: true email_address: alternative@example.com ScheduleSending: summary: Schedule sending value: sales_invoice_sending: sending_scheduled: true invoice_date: '2026-08-15' SendsAnInvoice: summary: Sends an invoice value: {} FallsBackToE-mailDeliveryWhenSendingSimplerinvoicingForTheSecondTime: summary: Falls back to e-mail delivery when sending simplerinvoicing for the second time value: {} responses: '200': description: Sales invoice updated content: application/json: schema: $ref: '#/components/schemas/sales_invoice_response' examples: SendsAnInvoiceWithAlternativeInformation: summary: Sends an invoice with alternative information value: id: '495430008153572788' administration_id: 123 contact_id: '495430008116872626' contact: id: '495430008116872626' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:56.038Z' updated_at: '2026-08-14T09:14:56.038Z' version: 1786698896 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF0700000000000005937VEZ7 short_payment_reference: RF075937VEZ7 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:56.073Z' updated_at: '2026-08-14T09:14:56.163Z' public_view_code: '701420' public_view_code_expires_at: '2026-11-14T10:14:56.127Z' version: 1786698896 details: - id: '495430008155669941' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:56.075Z' updated_at: '2026-08-14T09:14:56.161Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/bbabdfee5cb3a7d83d776f76410a80bbf0b7b18b773fa66b8828424d26459b10/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/bbabdfee5cb3a7d83d776f76410a80bbf0b7b18b773fa66b8828424d26459b10/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:56.078Z' updated_at: '2026-08-14T09:14:56.078Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:56.138Z' updated_at: '2026-08-14T09:14:56.138Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: alternative@example.com email_message: Hi, this is my invoice with id {invoice_id}! created_at: '2026-08-14T09:14:56.178Z' updated_at: '2026-08-14T09:14:56.178Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] SendsAnInvoiceViaMailWithAnUblAttachment: summary: Sends an invoice via mail with an ubl attachment value: id: '495430008367482311' administration_id: 123 contact_id: '495430008331830725' contact: id: '495430008331830725' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:56.243Z' updated_at: '2026-08-14T09:14:56.243Z' version: 1786698896 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF5200000000000005NF5YMYE short_payment_reference: RF525NF5YMYE reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:56.277Z' updated_at: '2026-08-14T09:14:56.368Z' public_view_code: '961805' public_view_code_expires_at: '2026-11-14T10:14:56.333Z' version: 1786698896 details: - id: '495430008370628040' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:56.280Z' updated_at: '2026-08-14T09:14:56.367Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/3365f553d2514012d99b35de1b8e0e981b6053255decafd8c3eb6c6ecd940974/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/3365f553d2514012d99b35de1b8e0e981b6053255decafd8c3eb6c6ecd940974/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:56.283Z' updated_at: '2026-08-14T09:14:56.283Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:56.344Z' updated_at: '2026-08-14T09:14:56.344Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: alternative@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0001 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:56.384Z' updated_at: '2026-08-14T09:14:56.384Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] ScheduleSending: summary: Schedule sending value: id: '495430008566711770' administration_id: 123 contact_id: '495430008530011608' contact: id: '495430008530011608' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:56.432Z' updated_at: '2026-08-14T09:14:56.432Z' version: 1786698896 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: null recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: 1 state: scheduled invoice_date: '2026-08-15' due_date: '2026-08-29' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: null short_payment_reference: null reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: null created_at: '2026-08-14T09:14:56.467Z' updated_at: '2026-08-14T09:14:56.530Z' public_view_code: null public_view_code_expires_at: null version: 1786698896 details: - id: '495430008568808923' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:56.470Z' updated_at: '2026-08-14T09:14:56.529Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: null original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/9c2514ee11feaa31ad2ecccae3aff0ca7eb3cdf14c54929cc512d6f3f75ccc0f/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/9c2514ee11feaa31ad2ecccae3aff0ca7eb3cdf14c54929cc512d6f3f75ccc0f/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:56.473Z' updated_at: '2026-08-14T09:14:56.473Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_scheduled link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:56.518Z' updated_at: '2026-08-14T09:14:56.518Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] SendsAnInvoice: summary: Sends an invoice value: id: '495430008881284584' administration_id: 123 contact_id: '495430008842487270' contact: id: '495430008842487270' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:56.730Z' updated_at: '2026-08-14T09:14:56.730Z' version: 1786698896 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF770000000000000CGG77RNH short_payment_reference: RF77CGG77RNH reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:56.767Z' updated_at: '2026-08-14T09:14:56.863Z' public_view_code: '936084' public_view_code_expires_at: '2026-11-14T10:14:56.826Z' version: 1786698896 details: - id: '495430008883381737' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:56.770Z' updated_at: '2026-08-14T09:14:56.861Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/c76ecce008759a0bc2b9c3370353445f10ec3d947ba0b203262be83e5a14cf63/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/c76ecce008759a0bc2b9c3370353445f10ec3d947ba0b203262be83e5a14cf63/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:56.773Z' updated_at: '2026-08-14T09:14:56.773Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:56.837Z' updated_at: '2026-08-14T09:14:56.837Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0001 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:56.879Z' updated_at: '2026-08-14T09:14:56.879Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] FallsBackToE-mailDeliveryWhenSendingSimplerinvoicingForTheSecondTime: summary: Falls back to e-mail delivery when sending simplerinvoicing for the second time value: id: '495430009199003139' administration_id: 123 contact_id: '495430009075271161' contact: id: '495430009075271161' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Simplerinvoicing customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '12345678' si_identifier_type: NL:KVK moneybird_payments_mandate: false created_at: '2026-08-14T09:14:56.952Z' updated_at: '2026-08-14T09:14:57.037Z' version: 1786698897 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF440000000000000DGG95MPH short_payment_reference: RF44DGG95MPH reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:57.070Z' updated_at: '2026-08-14T09:14:57.232Z' public_view_code: '222231' public_view_code_expires_at: '2026-11-14T10:14:57.230Z' version: 1786698897 details: - id: '495430009201100292' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:57.073Z' updated_at: '2026-08-14T09:14:57.167Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/075a36348bac0606f3382c26af6f19d0e92409ff9f0afa3683cdee2c40e73b8c/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/075a36348bac0606f3382c26af6f19d0e92409ff9f0afa3683cdee2c40e73b8c/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:57.076Z' updated_at: '2026-08-14T09:14:57.076Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:57.143Z' updated_at: '2026-08-14T09:14:57.143Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_si link_entity_id: null link_entity_type: null data: si_identifier: NL:KVK:12345678 created_at: '2026-08-14T09:14:57.186Z' updated_at: '2026-08-14T09:14:57.186Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0001 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:57.242Z' updated_at: '2026-08-14T09:14:57.242Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsErrorWhenSendingInvalidInvoiceWithoutDetails: summary: Returns error when sending invalid invoice without details value: error: details cannot be empty symbolic: sales_invoice: details_cannot_be_empty '404': $ref: '#/components/responses/404_not_found' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsErrorWhenSendingInvoiceFromIdentityWithoutEmail: summary: Returns error when sending invoice from identity without email value: error: delivery_method: - The sender address must contain an email address details: delivery_method: - error: need_identity_email ReturnsErrorWhenSendingInvoiceToContactWithoutEmailAddress: summary: Returns error when sending invoice to contact without email address value: error: email_address: - can't be blank details: email_address: - error: blank operationId: patch_administration_id_sales_invoices_id_send_invoice /{administration_id}/sales_invoices/{id}{format}: get: summary: Get an invoice by id description: |- Returns a sales invoices in the administration. Note that the link in the `url` attribute will only work if viewing invoices online has been enabled and the invoice is not a draft. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A sales invoice content: application/json: schema: $ref: '#/components/schemas/sales_invoice_response' examples: ReturnsInvoiceByGivenId: summary: Returns invoice by given id value: id: '495430012720121690' administration_id: 123 contact_id: '495430012640429909' contact: id: '495430012640429909' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:00.352Z' updated_at: '2026-08-14T09:15:00.352Z' version: 1786698900 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '495430012648818519' contact_person: id: null contact_id: '495430012640429909' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:15:00.360Z' updated_at: '2026-08-14T09:15:00.360Z' version: 1786698900 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF280000000000000TX4NQ34R short_payment_reference: RF28TX4NQ34R reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:15:00.427Z' updated_at: '2026-08-14T09:15:00.581Z' public_view_code: '551158' public_view_code_expires_at: '2026-11-14T09:15:00.512Z' version: 1786698900 details: - id: '495430012724315995' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: 20260801..20260831 row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:00.431Z' updated_at: '2026-08-14T09:15:00.579Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/8851de04c43d1cb08437adddcbfec2c2a33290a16a3f22c5a7eec8d6231eb336/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/8851de04c43d1cb08437adddcbfec2c2a33290a16a3f22c5a7eec8d6231eb336/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:00.436Z' updated_at: '2026-08-14T09:15:00.436Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:00.535Z' updated_at: '2026-08-14T09:15:00.535Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com; janjanssen@dev.null.moneybird.net email_message: |- Geachte Jan Janssen, In de bijlage kunt u factuur 2026-0001 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:00.605Z' updated_at: '2026-08-14T09:15:00.605Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenInvoiceDoesNotExist: summary: Returns 404 when invoice does not exist value: error: record not found symbolic: id: not_found operationId: get_administration_id_sales_invoices_id patch: summary: Update a sales invoice description: |- When updating a sales invoice, provide only the attributes you want to update. The other attributes will not be changed. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: sales_invoice: type: object unevaluatedProperties: false properties: contact_id: $ref: '#/components/schemas/identifier' description: The ID of the contact associated with the sales invoice. This is mandatory when setting the contact_person_id. Should be a valid contact id. contact_person_id: $ref: '#/components/schemas/identifier' description: The ID of the contact person associated with the sales invoice. Should be a valid contact person id. update_contact: type: - boolean - string description: When `true`, the contact's address and other details are updated on the invoice from the current contact record. original_estimate_id: $ref: '#/components/schemas/identifier' description: The ID of the estimate this invoice was created from. Used to link an invoice to its originating estimate. document_style_id: $ref: '#/components/schemas/identifier' description: Default document style is used if value is not provided. Should be a valid document style id. workflow_id: $ref: '#/components/schemas/identifier' description: If value is not provided, the workflow saved in the contact is used. If the contact doesn't have a default workflow, the administration's default workflow is used. Should be a valid workflow id. reference: type: string description: Your own reference for this invoice, e.g. a project code or PO number. Visible to the recipient. invoice_sequence_id: type: string description: The ID of the numbering sequence to use for the invoice number. remove_invoice_sequence_id: type: - boolean - string description: Set to `true` to remove the assigned numbering sequence, reverting to the administration default. invoice_date: type: string description: The date of the invoice. format: date first_due_interval: type: integer description: The number of days after the invoice date before the invoice is due. currency: type: string description: ISO three-character currency code, e.g. EUR or USD. prices_are_incl_tax: type: - boolean - string description: Whether the prices on the invoice are inclusive of tax. payment_conditions: type: string description: Free-text payment conditions printed on the invoice, e.g. "Payment within 30 days". discount: $ref: '#/components/schemas/number' description: Discount percentage applied to the entire invoice, e.g. `10.0` for 10%. time_entry_ids: type: array description: An array of time entry IDs to associate with this invoice. Linked time entries will be marked as invoiced. items: $ref: '#/components/schemas/identifier' details_attributes: $ref: '#/components/schemas/details_attributes' custom_fields_attributes: $ref: '#/components/schemas/custom_fields_attributes' required: [] required: [] examples: UpdatingTheSalesInvoiceReference: summary: Updating the sales invoice reference value: sales_invoice: reference: '30053' AddingAndRemovingASalesInvoiceDetail: summary: Adding and removing a sales invoice detail value: sales_invoice: details_attributes: - description: Sofa price: 199.99 - id: 495430015405524030 _destroy: true responses: '200': description: Sales invoice updated content: application/json: schema: $ref: '#/components/schemas/sales_invoice_response' examples: UpdatingTheSalesInvoiceReference: summary: Updating the sales invoice reference value: id: '495430015125554179' administration_id: 123 contact_id: '495430015087805441' contact: id: '495430015087805441' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:02.686Z' updated_at: '2026-08-14T09:15:02.686Z' version: 1786698902 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF72000000000000093UE3H7J short_payment_reference: RF7293UE3H7J reference: '30053' language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:15:02.722Z' updated_at: '2026-08-14T09:15:02.882Z' public_view_code: '616724' public_view_code_expires_at: '2026-11-14T09:15:02.774Z' version: 1786698902 details: - id: '495430015128699908' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:02.725Z' updated_at: '2026-08-14T09:15:02.821Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/e78cd375eb75924f2aa917c32d9522928a55a9ee266fd2e6c22fca5625a29938/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/e78cd375eb75924f2aa917c32d9522928a55a9ee266fd2e6c22fca5625a29938/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:02.728Z' updated_at: '2026-08-14T09:15:02.728Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:02.797Z' updated_at: '2026-08-14T09:15:02.797Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0001 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:02.838Z' updated_at: '2026-08-14T09:15:02.838Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_updated link_entity_id: null link_entity_type: null data: changes: reference: - '30052' - '30053' updated_at: - '2026-08-14T11:15:02.822+02:00' - '2026-08-14T11:15:02.882+02:00' created_at: '2026-08-14T09:15:02.886Z' updated_at: '2026-08-14T09:15:02.886Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] AddingAndRemovingASalesInvoiceDetail: summary: Adding and removing a sales invoice detail value: id: '495430015402378281' administration_id: 123 contact_id: '495430015364629543' contact: id: '495430015364629543' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:02.950Z' updated_at: '2026-08-14T09:15:02.950Z' version: 1786698902 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF510000000000000JVMYAS6Q short_payment_reference: RF51JVMYAS6Q reference: '30052' language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:15:02.986Z' updated_at: '2026-08-14T09:15:03.152Z' public_view_code: '937683' public_view_code_expires_at: '2026-11-14T09:15:03.036Z' version: 1786698903 details: - id: '495430015574344761' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Sofa price: '199.99' period: null row_order: 0 total_price_excl_tax_with_discount: '199.99' total_price_excl_tax_with_discount_base: '199.99' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:03.151Z' updated_at: '2026-08-14T09:15:03.151Z' payments: [] total_paid: '0.0' total_unpaid: '241.99' total_unpaid_base: '241.99' prices_are_incl_tax: false total_price_excl_tax: '199.99' total_price_excl_tax_base: '199.99' total_price_incl_tax: '241.99' total_price_incl_tax_base: '241.99' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/67020cc01f3d2cea4674bfa475fa665b468ac87d505dfcf1b1f31320e592542f/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/67020cc01f3d2cea4674bfa475fa665b468ac87d505dfcf1b1f31320e592542f/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:02.992Z' updated_at: '2026-08-14T09:15:02.992Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:03.048Z' updated_at: '2026-08-14T09:15:03.048Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0001 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:15:03.088Z' updated_at: '2026-08-14T09:15:03.088Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_updated link_entity_id: null link_entity_type: null data: changes: total_price_excl_tax: - '300.0' - '199.99' total_price_excl_tax_base: - '300.0' - '199.99' total_price_incl_tax: - '363.0' - '241.99' total_price_incl_tax_base: - '363.0' - '241.99' cached_taxes: - - debit: 0 credit: '63.0' payable: true tax_rate_id: '495429853078619274' report_reference: NL/1a - - tax_rate_id: '495429853078619274' report_reference: NL/1a payable: true debit: 0 credit: '42.0' updated_at: - '2026-08-14T11:15:03.072+02:00' - '2026-08-14T11:15:03.145+02:00' created_at: '2026-08-14T09:15:03.153Z' updated_at: '2026-08-14T09:15:03.153Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '199.99' taxable_amount_base: '199.99' tax_amount: '42.0' tax_amount_base: '42.0' time_entries: [] '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: patch_administration_id_sales_invoices_id delete: summary: Delete a sales invoice description: |- Delete a sales invoice. Requires that the sales invoice has no pending payments and is not in a locked bookkeeping period. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Sales invoice deleted '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_sales_invoices_id /{administration_id}/sales_invoices/{sales_invoice_id}/attachments/{id}/download{format}: get: summary: Download attachment description: |- Download the attachment. The response will be a redirect to a temporarily available URL where the attachment can be downloaded. Use the `Location` header in the response to download the attachment. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: sales_invoice_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '302': description: Found content: text/plain: schema: type: string examples: DownloadsTheAttachment: summary: Downloads the attachment value: '{"message":"Use the Location header to download the attachment"}' '404': $ref: '#/components/responses/404_not_found' operationId: get_administration_id_sales_invoices_sales_invoice_id_attachments_id_download /{administration_id}/sales_invoices/{sales_invoice_id}/attachments/{id}{format}: delete: summary: Delete an attachment description: |- Deletes an attachment of an attachable. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: sales_invoice_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Attachment deleted '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_sales_invoices_sales_invoice_id_attachments_id /{administration_id}/sales_invoices/{sales_invoice_id}/notes/{id}{format}: delete: summary: Destroys note from entity description: |- Deletes a note from the sales invoice. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: sales_invoice_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Note deleted '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400StatusWhenUserHasNoPermissionsToNotes: summary: Returns a 400 status when user has no permissions to notes value: error: User has no permissions to notes for SalesInvoice symbolic: user: insufficient_permissions operationId: delete_administration_id_sales_invoices_sales_invoice_id_notes_id /{administration_id}/sales_invoices/{sales_invoice_id}/notes{format}: post: summary: Adds note to entity description: |- Adds a note to the sales invoice. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: sales_invoice_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: note: type: object unevaluatedProperties: false properties: note: type: string description: '**Required**. Text for the note or to-do.' todo: type: - boolean - string description: If `true` the note is a to-do. assignee_id: type: - integer - string description: Assign to-do to user. Should be a valid user id. If assignee_id is provided the note will be a to-do. required: [] required: [] examples: CreateANote: summary: Create a note value: note: note: Text of the note assignee_id: 495430017700857100 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '495430017721828640' administration_id: 123 entity_id: '495430017554056462' entity_type: SalesInvoice user_id: '495429852315255909' assignee_id: '495430017700857118' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-08-14T09:15:05.198Z' updated_at: '2026-08-14T09:15:05.198Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400StatusWhenUserHasNoPermissionsToNotes: summary: Returns a 400 status when user has no permissions to notes value: error: User has no permissions to notes for SalesInvoice symbolic: user: insufficient_permissions '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422StatusWhenTheNoteIsNotValid: summary: Returns a 422 status when the note is not valid value: error: note: - can't be blank todo_type: - can't be blank details: note: - error: blank todo_type: - error: blank operationId: post_administration_id_sales_invoices_sales_invoice_id_notes /{administration_id}/sales_invoices/{sales_invoice_id}/payments/{id}{format}: delete: summary: Delete a payment description: |- Delete a payment from a sales invoice. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: sales_invoice_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Payment deleted '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_sales_invoices_sales_invoice_id_payments_id /{administration_id}/sales_invoices/{sales_invoice_id}/payments{format}: post: summary: Create a payment description: |- Registers a payment for a sales invoice. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: sales_invoice_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: payment: type: object unevaluatedProperties: false properties: payment_date: type: string description: The date on which the payment was made. price: $ref: '#/components/schemas/number' description: The amount paid in the document's currency. Both a decimal and a string '10,95' are accepted. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. price_base: $ref: '#/components/schemas/number' description: Amount paid expressed in the base currency of the administration. Required when the document uses a different currency than the administration's base currency. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. financial_account_id: $ref: '#/components/schemas/identifier' description: The ID of the financial account (bank account or cash register) associated with this payment. Required for `private_payment` and `cash_payment` actions. Should be a valid financial account id. financial_mutation_id: $ref: '#/components/schemas/identifier' description: The ID of the bank transaction to link this payment to. Required for `bank_transfer` actions. Should be a valid financial mutation id. transaction_identifier: type: string description: An external transaction reference, e.g. a bank transaction ID or PSP reference. Used to match the payment with financial mutations. manual_payment_action: type: string description: Can be `private_payment` (needs financial_account_id), `payment_without_proof`, `cash_payment` (needs financial_account_id), `rounding_error`, `bank_transfer` (needs financial_mutation_id), `balance_settlement` (needs ledger_account_id) or `invoices_settlement` (needs invoice_id). ledger_account_id: $ref: '#/components/schemas/identifier' description: The ID of the ledger account to book this payment to. Required for `balance_settlement` actions. Should be a valid ledger account id. invoice_id: $ref: '#/components/schemas/identifier' description: The ID of the document to settle this payment against. Required for `invoices_settlement` actions. Should be a valid document id (sales invoice, purchase invoice, receipt, etc.). required: - payment_date - price required: [] examples: CreateAPayment: summary: Create a payment value: payment: payment_date: '2026-08-14T09:14:39.391Z' price: '363.0' responses: '201': description: Payment created content: application/json: schema: $ref: '#/components/schemas/payment_response' examples: CreateAPayment: summary: Create a payment value: id: '495429990674859057' administration_id: 123 invoice_type: SalesInvoice invoice_id: '495429990545884193' financial_account_id: null user_id: '495429852315255909' payment_transaction_id: null transaction_identifier: null price: '363.0' price_base: '363.0' payment_date: '2026-08-14' credit_invoice_id: null financial_mutation_id: null ledger_account_id: '495429852926575747' linked_payment_id: null manual_payment_action: null created_at: '2026-08-14T09:14:39.404Z' updated_at: '2026-08-14T09:14:39.404Z' '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_sales_invoices_sales_invoice_id_payments /{administration_id}/sales_invoices{format}: get: summary: List all invoices description: |- Returns a paginated list of sales invoices in the administration. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: |- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:all`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | state | `String` | `all` | `all`, `draft`, `open`, `scheduled`, `pending_payment`, `late`, `reminded`, `paid` or `uncollectible` | | period | `String` | `this_year` | A period description (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom period (`201301..201302`, `20130101..20130131`) | | reference | `String` | | Select invoices with a certain reference | | contact_id | `Integer` | | Select invoices belonging to a certain contact | | recurring_sales_invoice_id | `Integer` | | Select invoices created by a certain recurring invoice | | workflow_id | `Integer` | | Select invoices that use a certain workflow | | created_after | `String` | | Select invoices created after the given time (exclusive). ISO 8601 formatted string. The time to compare with is in UTC timezone | | updated_after | `String` | | Select invoices updated after the given time (exclusive). ISO 8601 formatted string. The time to compare with is in UTC timezone | You can filter by multiple states at the same time by separating the values with a pipe (`state:draft|scheduled`). This also holds for the reference. A draft with no `invoice_date` set is only matched by a `period` when that period contains today. To list drafts irrespective of date, pass `state:draft` without a `period`; to narrow them down in time, use `created_after` or `updated_after`. schema: type: string default: period:this_year examples: ReturnsOnlySalesInvoicesUpdatedAfterGivenDatetime: summary: Returns only sales invoices updated after given datetime value: updated_after:2026-08-14 09:14:52 UTC ReturnsAllSalesInvoicesCreatedAfterGivenDatetime: summary: Returns all sales invoices created after given datetime value: created_after:2026-08-13 09:14:47 UTC ReturnsAllInvoicesFilteredOnPeriod: summary: Returns all invoices filtered on period value: period:this_month ReturnsAnEmptyListWhenFilterContactIdDoesNotMatchAnyContact: summary: Returns an empty list when filter contact id does not match any contact value: contact_id:123 ReturnsAllInvoicesFilteredOnState: summary: Returns all invoices filtered on state value: state:late - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: A list of sales invoices content: application/json: schema: type: array items: $ref: '#/components/schemas/sales_invoice_response' examples: ReturnsOnlySalesInvoicesUpdatedAfterGivenDatetime: summary: Returns only sales invoices updated after given datetime value: - id: '495429998705903150' administration_id: 123 contact_id: '495429998662911529' contact: id: '495429998662911529' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:47.022Z' updated_at: '2026-08-14T09:14:47.022Z' version: 1786698887 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '495429998666057259' contact_person: id: null contact_id: '495429998662911529' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:14:47.026Z' updated_at: '2026-08-14T09:14:47.026Z' version: 1786698887 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF840000000000000TWXJYNCU short_payment_reference: RF84TWXJYNCU reference: foo language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:47.063Z' updated_at: '2026-08-14T09:15:52.461Z' public_view_code: '568534' public_view_code_expires_at: '2026-11-14T09:14:47.112Z' version: 1786698952 details: - id: '495429998709048879' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: 20260801..20260831 row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:47.066Z' updated_at: '2026-08-14T09:14:47.146Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/ccefcedc82103ae295db2b32ab155685387a74377b9e4a0a9e5a9953f93b2c1d/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/ccefcedc82103ae295db2b32ab155685387a74377b9e4a0a9e5a9953f93b2c1d/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:47.069Z' updated_at: '2026-08-14T09:14:47.069Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:47.123Z' updated_at: '2026-08-14T09:14:47.123Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com; janjanssen@dev.null.moneybird.net email_message: |- Geachte Jan Janssen, In de bijlage kunt u factuur 2026-0001 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:47.163Z' updated_at: '2026-08-14T09:14:47.163Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] ReturnsAllSalesInvoicesCreatedAfterGivenDatetime: summary: Returns all sales invoices created after given datetime value: - id: '495429999499675265' administration_id: 123 contact_id: '495429999171470941' contact: id: '495429999171470941' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:47.507Z' updated_at: '2026-08-14T09:14:47.507Z' version: 1786698887 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0003 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF9100000000000006PG3ZRYM short_payment_reference: RF916PG3ZRYM reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:47.820Z' updated_at: '2026-08-14T09:14:47.899Z' public_view_code: '995539' public_view_code_expires_at: '2026-11-14T09:14:47.866Z' version: 1786698887 details: - id: '495429999501772418' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:47.823Z' updated_at: '2026-08-14T09:14:47.897Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/1594a81bc244036a49ebcac839e08b0f02dce21162cf87d62819d4045c17f528/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/1594a81bc244036a49ebcac839e08b0f02dce21162cf87d62819d4045c17f528/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:47.826Z' updated_at: '2026-08-14T09:14:47.826Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:47.877Z' updated_at: '2026-08-14T09:14:47.877Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0003 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:47.942Z' updated_at: '2026-08-14T09:14:47.942Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] - id: '495429999362311794' administration_id: 123 contact_id: '495429999171470941' contact: id: '495429999171470941' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:47.507Z' updated_at: '2026-08-14T09:14:47.507Z' version: 1786698887 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0002 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF8500000000000004XQJWT36 short_payment_reference: RF854XQJWT36 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:47.689Z' updated_at: '2026-08-14T09:14:47.767Z' public_view_code: '603513' public_view_code_expires_at: '2026-11-14T09:14:47.735Z' version: 1786698887 details: - id: '495429999364408947' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:47.692Z' updated_at: '2026-08-14T09:14:47.766Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/982870375b8edf75b914a0e66acd56af340e44a92711423a55abaf0eddd4a6ab/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/982870375b8edf75b914a0e66acd56af340e44a92711423a55abaf0eddd4a6ab/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:47.695Z' updated_at: '2026-08-14T09:14:47.695Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:47.746Z' updated_at: '2026-08-14T09:14:47.746Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0002 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:47.782Z' updated_at: '2026-08-14T09:14:47.782Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] - id: '495429999214462562' administration_id: 123 contact_id: '495429999171470941' contact: id: '495429999171470941' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:47.507Z' updated_at: '2026-08-14T09:14:47.507Z' version: 1786698887 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '495429999174616671' contact_person: id: null contact_id: '495429999171470941' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:14:47.511Z' updated_at: '2026-08-14T09:14:47.511Z' version: 1786698887 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF340000000000000UKC5ZXCK short_payment_reference: RF34UKC5ZXCK reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:47.548Z' updated_at: '2026-08-14T09:14:47.633Z' public_view_code: '569346' public_view_code_expires_at: '2026-11-14T09:14:47.597Z' version: 1786698887 details: - id: '495429999217608291' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: 20260801..20260831 row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:47.551Z' updated_at: '2026-08-14T09:14:47.632Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/e9f616543c22ffe0fa26f3ac0134a3de7310f4e476b110b961e8de51d16badb3/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/e9f616543c22ffe0fa26f3ac0134a3de7310f4e476b110b961e8de51d16badb3/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:47.554Z' updated_at: '2026-08-14T09:14:47.554Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:47.609Z' updated_at: '2026-08-14T09:14:47.609Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com; janjanssen@dev.null.moneybird.net email_message: |- Geachte Jan Janssen, In de bijlage kunt u factuur 2026-0001 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:47.649Z' updated_at: '2026-08-14T09:14:47.649Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] ReturnsPaginatedSalesInvoicesOnPage1: summary: Returns paginated sales invoices on page 1 value: - id: '495430000553494249' administration_id: 123 contact_id: '495430000213755589' contact: id: '495430000213755589' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:48.502Z' updated_at: '2026-08-14T09:14:48.502Z' version: 1786698888 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0003 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF1500000000000003YZGS2KF short_payment_reference: RF153YZGS2KF reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:48.825Z' updated_at: '2026-08-14T09:14:48.905Z' public_view_code: '580435' public_view_code_expires_at: '2026-11-14T09:14:48.872Z' version: 1786698888 details: - id: '495430000556639978' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:48.828Z' updated_at: '2026-08-14T09:14:48.904Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/311d665fd4aa1b62e01521d8d72b6f709f66472cd7bc3d51c95db9c1956fb46c/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/311d665fd4aa1b62e01521d8d72b6f709f66472cd7bc3d51c95db9c1956fb46c/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:48.831Z' updated_at: '2026-08-14T09:14:48.831Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:48.883Z' updated_at: '2026-08-14T09:14:48.883Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0003 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:48.920Z' updated_at: '2026-08-14T09:14:48.920Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] ReturnsAllInvoicesFilteredOnPeriod: summary: Returns all invoices filtered on period value: - id: '495430001523427153' administration_id: 123 contact_id: '495430001196271405' contact: id: '495430001196271405' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:49.438Z' updated_at: '2026-08-14T09:14:49.438Z' version: 1786698889 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0003 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF240000000000000EHG7S525 short_payment_reference: RF24EHG7S525 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:49.750Z' updated_at: '2026-08-14T09:14:49.830Z' public_view_code: '335678' public_view_code_expires_at: '2026-11-14T09:14:49.796Z' version: 1786698889 details: - id: '495430001525524306' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:49.753Z' updated_at: '2026-08-14T09:14:49.829Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/c65c87886b8662dd9fcba38c2d2a88072d0cc16c5570e009b0604ade4d33d5a4/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/c65c87886b8662dd9fcba38c2d2a88072d0cc16c5570e009b0604ade4d33d5a4/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:49.755Z' updated_at: '2026-08-14T09:14:49.755Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:49.807Z' updated_at: '2026-08-14T09:14:49.807Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0003 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:49.847Z' updated_at: '2026-08-14T09:14:49.847Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] - id: '495430001383966530' administration_id: 123 contact_id: '495430001196271405' contact: id: '495430001196271405' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:49.438Z' updated_at: '2026-08-14T09:14:49.438Z' version: 1786698889 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0002 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF350000000000000A5J6Y5GD short_payment_reference: RF35A5J6Y5GD reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:49.617Z' updated_at: '2026-08-14T09:14:49.696Z' public_view_code: '532577' public_view_code_expires_at: '2026-11-14T09:14:49.663Z' version: 1786698889 details: - id: '495430001387112259' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:49.620Z' updated_at: '2026-08-14T09:14:49.695Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/527afb38b72765006b4b4faf297e06020a6cdc2df00e58e8fb27809bbe9bad3e/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/527afb38b72765006b4b4faf297e06020a6cdc2df00e58e8fb27809bbe9bad3e/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:49.623Z' updated_at: '2026-08-14T09:14:49.623Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:49.674Z' updated_at: '2026-08-14T09:14:49.674Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0002 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:49.711Z' updated_at: '2026-08-14T09:14:49.711Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] - id: '495430001239263026' administration_id: 123 contact_id: '495430001196271405' contact: id: '495430001196271405' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:49.438Z' updated_at: '2026-08-14T09:14:49.438Z' version: 1786698889 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '495430001199417135' contact_person: id: null contact_id: '495430001196271405' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:14:49.441Z' updated_at: '2026-08-14T09:14:49.441Z' version: 1786698889 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF480000000000000GNZHEDTZ short_payment_reference: RF48GNZHEDTZ reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:49.478Z' updated_at: '2026-08-14T09:14:49.564Z' public_view_code: '632513' public_view_code_expires_at: '2026-11-14T09:14:49.528Z' version: 1786698889 details: - id: '495430001241360179' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: 20260801..20260831 row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:49.481Z' updated_at: '2026-08-14T09:14:49.562Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/4795b05fe64b4169833a35683301960a1ad6186dd889f3bdd39c63b374139ab8/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/4795b05fe64b4169833a35683301960a1ad6186dd889f3bdd39c63b374139ab8/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:49.484Z' updated_at: '2026-08-14T09:14:49.484Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:49.539Z' updated_at: '2026-08-14T09:14:49.539Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com; janjanssen@dev.null.moneybird.net email_message: |- Geachte Jan Janssen, In de bijlage kunt u factuur 2026-0001 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:49.579Z' updated_at: '2026-08-14T09:14:49.579Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] ReturnsAnEmptyListWhenFilterContactIdDoesNotMatchAnyContact: summary: Returns an empty list when filter contact id does not match any contact value: [] ReturnsAllInvoicesOfAnAdministration: summary: Returns all invoices of an administration value: - id: '495430003446515693' administration_id: 123 contact_id: '495430003097339849' contact: id: '495430003097339849' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:51.251Z' updated_at: '2026-08-14T09:14:51.251Z' version: 1786698891 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0003 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF0500000000000006GKXCCSU short_payment_reference: RF056GKXCCSU reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:51.584Z' updated_at: '2026-08-14T09:14:51.674Z' public_view_code: '015463' public_view_code_expires_at: '2026-11-14T09:14:51.641Z' version: 1786698891 details: - id: '495430003449661422' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:51.587Z' updated_at: '2026-08-14T09:14:51.672Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/a8c61f648e6116d9f595fcde3d61b3174836f2c6c2a219d81fb50391a98e53f7/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/a8c61f648e6116d9f595fcde3d61b3174836f2c6c2a219d81fb50391a98e53f7/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:51.590Z' updated_at: '2026-08-14T09:14:51.590Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:51.652Z' updated_at: '2026-08-14T09:14:51.652Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0003 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:51.689Z' updated_at: '2026-08-14T09:14:51.689Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] - id: '495430003295520734' administration_id: 123 contact_id: '495430003097339849' contact: id: '495430003097339849' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:51.251Z' updated_at: '2026-08-14T09:14:51.251Z' version: 1786698891 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0002 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF180000000000000Q4FGC3T3 short_payment_reference: RF18Q4FGC3T3 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:51.439Z' updated_at: '2026-08-14T09:14:51.527Z' public_view_code: '639992' public_view_code_expires_at: '2026-11-14T09:14:51.491Z' version: 1786698891 details: - id: '495430003297617887' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:51.442Z' updated_at: '2026-08-14T09:14:51.526Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/62c213a1608ce5bfda39e383a04507dedffb7466faaf475a9602aaaef1052a6d/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/62c213a1608ce5bfda39e383a04507dedffb7466faaf475a9602aaaef1052a6d/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:51.446Z' updated_at: '2026-08-14T09:14:51.446Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:51.503Z' updated_at: '2026-08-14T09:14:51.503Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0002 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:51.544Z' updated_at: '2026-08-14T09:14:51.544Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] - id: '495430003142428622' administration_id: 123 contact_id: '495430003097339849' contact: id: '495430003097339849' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:51.251Z' updated_at: '2026-08-14T09:14:51.251Z' version: 1786698891 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '495430003100485579' contact_person: id: null contact_id: '495430003097339849' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:14:51.255Z' updated_at: '2026-08-14T09:14:51.255Z' version: 1786698891 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF440000000000000VQP9AD43 short_payment_reference: RF44VQP9AD43 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:51.294Z' updated_at: '2026-08-14T09:14:51.382Z' public_view_code: '860559' public_view_code_expires_at: '2026-11-14T09:14:51.345Z' version: 1786698891 details: - id: '495430003145574351' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: 20260801..20260831 row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:51.297Z' updated_at: '2026-08-14T09:14:51.380Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/b3afe3cf6fe4b05b1b50219e81f6ba2c6a71fbd0e7b378ba9e6c55754fd95ad3/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/b3afe3cf6fe4b05b1b50219e81f6ba2c6a71fbd0e7b378ba9e6c55754fd95ad3/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:51.300Z' updated_at: '2026-08-14T09:14:51.300Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:51.357Z' updated_at: '2026-08-14T09:14:51.357Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com; janjanssen@dev.null.moneybird.net email_message: |- Geachte Jan Janssen, In de bijlage kunt u factuur 2026-0001 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:51.398Z' updated_at: '2026-08-14T09:14:51.398Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] ReturnsAllInvoicesFilteredOnState: summary: Returns all invoices filtered on state value: [] ReturnsPaginatedSalesInvoicesOnPage2: summary: Returns paginated sales invoices on page 2 value: - id: '495430005319271598' administration_id: 123 contact_id: '495430005127382169' contact: id: '495430005127382169' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:14:53.187Z' updated_at: '2026-08-14T09:14:53.187Z' version: 1786698893 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: 2026-0002 recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: null state: open invoice_date: '2026-08-14' due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: RF1700000000000009GXFK5Q5 short_payment_reference: RF179GXFK5Q5 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-08-14' created_at: '2026-08-14T09:14:53.370Z' updated_at: '2026-08-14T09:14:53.450Z' public_view_code: '692605' public_view_code_expires_at: '2026-11-14T09:14:53.417Z' version: 1786698893 details: - id: '495430005321368751' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: null row_order: 1 total_price_excl_tax_with_discount: '300.0' total_price_excl_tax_with_discount_base: '300.0' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:14:53.372Z' updated_at: '2026-08-14T09:14:53.449Z' payments: [] total_paid: '0.0' total_unpaid: '363.0' total_unpaid_base: '363.0' prices_are_incl_tax: false total_price_excl_tax: '300.0' total_price_excl_tax_base: '300.0' total_price_incl_tax: '363.0' total_price_incl_tax_base: '363.0' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-08-28' original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/b933adc836c8e6df90d6add8a07ff263e9e36058480ec18b1c341a95645fde59/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/b933adc836c8e6df90d6add8a07ff263e9e36058480ec18b1c341a95645fde59/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:53.376Z' updated_at: '2026-08-14T09:14:53.376Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:14:53.428Z' updated_at: '2026-08-14T09:14:53.428Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_send_email link_entity_id: null link_entity_type: null data: email_address: info@example.com email_message: |- Geachte Foobar Holding B.V., In de bijlage kunt u factuur 2026-0002 voor onze diensten vinden. Wij verzoeken u vriendelijk de factuur voor 28-08-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-08-14T09:14:53.466Z' updated_at: '2026-08-14T09:14:53.466Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: GiveA400ErrorWhenTheDateRangeIsFromTheBeginningOfTime: summary: Give a 400 error when the date range is from the beginning of time value: error: Period must have both a start and end date ReturnsAnErrorWhenTooManySalesInvoicesAreRequested: summary: Returns an error when too many sales invoices are requested value: error: per_page does not have a valid value GiveA400ErrorWhenTheDateRangeIsUntilTheEndOfTime: summary: Give a 400 error when the date range is until the end of time value: error: Period must have both a start and end date ReturnsAnErrorWhenThePageIsOutOfRange: summary: Returns an error when the page is out of range value: error: page does not have a valid value operationId: get_administration_id_sales_invoices post: summary: Create a sales invoice description: |- Create a sales invoice with the parameters defined in the request body. ### Required scope(s) `sales_invoices` tags: - Sales invoices security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: sales_invoice: type: object unevaluatedProperties: false properties: contact_id: $ref: '#/components/schemas/identifier' description: The ID of the contact associated with the sales invoice. This is mandatory when setting the contact_person_id. Should be a valid contact id. contact_person_id: $ref: '#/components/schemas/identifier' description: The ID of the contact person associated with the sales invoice. Should be a valid contact person id. original_estimate_id: $ref: '#/components/schemas/identifier' description: The ID of the estimate this invoice was created from. Used to link an invoice to its originating estimate. document_style_id: $ref: '#/components/schemas/identifier' description: Default document style is used if value is not provided. Should be a valid document style id. workflow_id: $ref: '#/components/schemas/identifier' description: If value is not provided, the workflow saved in the contact is used. If the contact doesn't have a default workflow, the administration's default workflow is used. Should be a valid workflow id. reference: type: string description: Your own reference for this invoice, e.g. a project code or PO number. Visible to the recipient. invoice_sequence_id: type: string description: The ID of the numbering sequence to use for the invoice number. If not provided, the administration default is used. invoice_date: type: string description: When left empty, it is filled in when the invoice is sent. format: date first_due_interval: type: integer description: The number of days after the invoice date before the invoice is due. Defaults to the first workflow step's due interval. currency: type: string description: ISO three-character currency code, e.g. EUR or USD. Defaults to the workflow's currency. prices_are_incl_tax: type: - boolean - string description: Whether the prices on the invoice are inclusive of tax. Defaults to the workflow's setting. payment_conditions: type: string description: Free-text payment conditions printed on the invoice, e.g. "Payment within 30 days". Defaults to the workflow's payment conditions. discount: $ref: '#/components/schemas/number' description: Discount percentage applied to the entire invoice, e.g. `10.0` for 10%. time_entry_ids: type: array description: An array of time entry IDs to associate with this invoice. Linked time entries will be marked as invoiced. items: type: - integer details_attributes: $ref: '#/components/schemas/details_attributes' custom_fields_attributes: $ref: '#/components/schemas/custom_fields_attributes' required: [] from_payment_request: type: - boolean - string description: Set to `true` when the invoice was created from a Moneybird payment request. required: [] examples: CreateABasicSalesInvoice: summary: Create a basic sales invoice value: sales_invoice: reference: '30052' contact_id: 495430025050326000 details_attributes: - description: Rocking Chair price: 129.95 CreateASalesInvoiceInAForeignCurrency: summary: Create a sales invoice in a foreign currency value: sales_invoice: reference: '30052' contact_id: 495430025621800000 currency: USD details_attributes: - description: Rocking Chair price: 159.99 tax_rate_id: 495430025807397950 responses: '201': description: Sales invoice created content: application/json: schema: $ref: '#/components/schemas/sales_invoice_response' examples: CreateABasicSalesInvoice: summary: Create a basic sales invoice value: id: '495430025262138391' administration_id: 123 contact_id: '495430025050326018' contact: id: '495430025050326018' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:12.187Z' updated_at: '2026-08-14T09:15:12.187Z' version: 1786698912 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: - id: '495430025053471748' contact_id: '495430025050326018' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:15:12.191Z' updated_at: '2026-08-14T09:15:12.191Z' version: 1786698912 archived: false contact_person_id: null contact_person: null invoice_id: null recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: 2 state: draft invoice_date: null due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: null short_payment_reference: null reference: '30052' language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: null created_at: '2026-08-14T09:15:12.389Z' updated_at: '2026-08-14T09:15:12.393Z' public_view_code: null public_view_code_expires_at: null version: 1786698912 details: - id: '495430025265284120' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Rocking Chair price: '129.95' period: null row_order: 0 total_price_excl_tax_with_discount: '129.95' total_price_excl_tax_with_discount_base: '129.95' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:15:12.392Z' updated_at: '2026-08-14T09:15:12.392Z' payments: [] total_paid: '0.0' total_unpaid: '157.24' total_unpaid_base: '157.24' prices_are_incl_tax: false total_price_excl_tax: '129.95' total_price_excl_tax_base: '129.95' total_price_incl_tax: '157.24' total_price_incl_tax_base: '157.24' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: null original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/fb600879c483f9c9d1aeb9d04ee6bec9ef42a50b3b8b5cea4b6f4d5ed5bc2970/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/fb600879c483f9c9d1aeb9d04ee6bec9ef42a50b3b8b5cea4b6f4d5ed5bc2970/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:12.395Z' updated_at: '2026-08-14T09:15:12.395Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '129.95' taxable_amount_base: '129.95' tax_amount: '27.29' tax_amount_base: '27.29' time_entries: [] CreateASalesInvoiceInAForeignCurrency: summary: Create a sales invoice in a foreign currency value: id: '495430025846195277' administration_id: 123 contact_id: '495430025621799991' contact: id: '495430025621799991' administration_id: 123 company_name: Foobar Holding B.V. firstname: null lastname: null address1: Hoofdstraat 12 address2: null zipcode: 1234AB city: Amsterdam country: NL phone: null delivery_method: Email customer_id: customer-1 tax_number: null chamber_of_commerce: null bank_account: null is_trusted: false max_transfer_amount: null attention: null email: info@example.com email_ubl: true send_invoices_to_attention: null send_invoices_to_email: info@example.com send_estimates_to_attention: null send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: null sepa_iban_account_name: null sepa_bic: null sepa_mandate_id: null sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: null credit_card_reference: null credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: null si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:15:12.732Z' updated_at: '2026-08-14T09:15:12.732Z' version: 1786698912 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: - id: '495430025625994297' contact_id: '495430025621799991' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-08-14T09:15:12.737Z' updated_at: '2026-08-14T09:15:12.737Z' version: 1786698912 archived: false contact_person_id: null contact_person: null invoice_id: null recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: 2 state: draft invoice_date: null due_date: '2026-08-28' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: null short_payment_reference: null reference: '30052' language: nl currency: USD discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: null created_at: '2026-08-14T09:15:12.946Z' updated_at: '2026-08-14T09:15:12.951Z' public_view_code: null public_view_code_expires_at: null version: 1786698912 details: - id: '495430025849341006' administration_id: 123 tax_rate_id: '495430025807397964' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Rocking Chair price: '159.99' period: null row_order: 0 total_price_excl_tax_with_discount: '159.99' total_price_excl_tax_with_discount_base: '127.99' tax_report_reference: - NL/3a mandatory_tax_text: Intracommunautaire levering, artikel 138, lid 1, Richtlijn 2006/112 created_at: '2026-08-14T09:15:12.949Z' updated_at: '2026-08-14T09:15:12.949Z' payments: [] total_paid: '0.0' total_unpaid: '159.99' total_unpaid_base: '127.99' prices_are_incl_tax: false total_price_excl_tax: '159.99' total_price_excl_tax_base: '127.99' total_price_incl_tax: '159.99' total_price_incl_tax_base: '127.99' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: null original_estimate_id: null url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/beaeb65d769843e86644f3089f68bccabf552684e770124aab54fc86f2452f7d/sales_invoice payment_url: http://moneybird.dev/123/external/0000000000000000000000000000000000000000000000000000000000000001/beaeb65d769843e86644f3089f68bccabf552684e770124aab54fc86f2452f7d/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:15:12.953Z' updated_at: '2026-08-14T09:15:12.953Z' tax_totals: [] time_entries: [] '402': description: Payment required content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ExceedingTheMonthlySalesInvoiceLimitOnAFreePlanResultsInAnError: summary: Exceeding the monthly sales invoice limit on a free plan results in an error value: error: creating sales invoices is limited symbolic: administration: limit_reached '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: CreatingAnInvoiceWithAnUnknownCustomFieldIdResultsInAnError: summary: Creating an invoice with an unknown custom field id results in an error value: error: Custom field with id 123456 not found for administration symbolic: custom_fields_attributes: not_found '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_sales_invoices /{administration_id}/sepa_credit_transfer{format}: post: summary: Upload a SEPA credit transfer file to create purchase transaction batches description: |- Upload a SEPA credit transfer file (pain.001.001.09/Version 2019) to create purchase transaction batches. This endpoint requires an active Moneybird Banking account in the administration. ### Required scope(s) `bank` tags: - Purchase transactions security: - bearerAuth: - bank parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: multipart/form-data: schema: type: object required: - file properties: file: type: string format: binary description: SEPA credit transfer file (pain.001.001.09/Version 2019) ledger_account_id: $ref: '#/components/schemas/identifier' description: The ID of the ledger account that will be linked to all the purchase transactions in the file financial_account_id: $ref: '#/components/schemas/identifier' description: The ID of the Moneybird Banking financial account that will be linked to all the purchase transactions in the file. Must be an active Moneybird Banking account. If not provided, the financial account will be determined based on the debtor account in the file. responses: '201': description: Purchase transaction batches created successfully using the SEPA credit transfer file content: application/json: schema: type: array items: $ref: '#/components/schemas/purchase_transaction_batch_response' examples: Returns201: summary: Returns 201 value: - id: '495430058484172074' administration_id: 123 financial_account_id: '495430058375120161' state: open identifier: PMT20250910-STD created_at: '2025-09-12T00:00:00.000Z' updated_at: '2025-09-12T00:00:00.000Z' - id: '495430058489414956' administration_id: 123 financial_account_id: '495430058386654500' state: open identifier: PMT20250910-INST created_at: '2025-09-12T00:00:00.000Z' updated_at: '2025-09-12T00:00:00.000Z' - id: '495430058492560686' administration_id: 123 financial_account_id: '495430058397140263' state: open identifier: PMT20250910-SAL created_at: '2025-09-12T00:00:00.000Z' updated_at: '2025-09-12T00:00:00.000Z' CreatesPurchaseTransactionBatchesFromASepaCreditTransferFile: summary: Creates purchase transaction batches from a sepa credit transfer file value: - id: '495430058619438394' administration_id: 123 financial_account_id: '495430058526115121' state: open identifier: PMT20250910-STD created_at: '2025-09-12T00:00:00.000Z' updated_at: '2025-09-12T00:00:00.000Z' - id: '495430058623632700' administration_id: 123 financial_account_id: '495430058535552308' state: open identifier: PMT20250910-INST created_at: '2025-09-12T00:00:00.000Z' updated_at: '2025-09-12T00:00:00.000Z' - id: '495430058626778430' administration_id: 123 financial_account_id: '495430058546038071' state: open identifier: PMT20250910-SAL created_at: '2025-09-12T00:00:00.000Z' updated_at: '2025-09-12T00:00:00.000Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenNoFileIsProvided: summary: Returns 400 when no file is provided value: errors: - File is required '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns401WhenUserHasNoBankPermission: summary: Returns 401 when user has no bank permission value: error: No access to bank '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns403WhenAdministrationHasNoActiveMoneybirdBankingAccounts: summary: Returns 403 when administration has no active moneybird banking accounts value: error: No access to SEPA credit transfers '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenNoLedgerAccountIsFound: summary: Returns 404 when no ledger account is found value: error: 'Record not found for model name: Category' CreatesAnImportWithGivenIds: summary: Creates an import with given ids value: error: 'Record not found for model name: Financial account' Returns404WhenNoFinancialAccountIsFound: summary: Returns 404 when no financial account is found value: error: 'Record not found for model name: Financial account' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenCreatedBatchesAreInvalid: summary: Returns 422 when created batches are invalid value: errors: - Purchase transactions is invalid - Amount must be greater than or equal to 0.01 Returns422WhenTheXmlIsInvalid: summary: Returns 422 when the xml is invalid value: message: The XML is invalid errors: - '6:0: ERROR: Element ''{urn:iso:std:iso:20022:tech:xsd:pain.001.001.09}CreDtTm'': ''invalid-date'' is not a valid value of the atomic type ''{urn:iso:std:iso:20022:tech:xsd:pain.001.001.09}ISODateTime''.' - '7:0: ERROR: Element ''{urn:iso:std:iso:20022:tech:xsd:pain.001.001.09}NbOfTxs'': [facet ''pattern''] The value ''not-a-number'' is not accepted by the pattern ''[0-9]{1,15}''.' - '8:0: ERROR: Element ''{urn:iso:std:iso:20022:tech:xsd:pain.001.001.09}CtrlSum'': ''invalid-amount'' is not a valid value of the atomic type ''{urn:iso:std:iso:20022:tech:xsd:pain.001.001.09}DecimalNumber''.' - '10:0: ERROR: Element ''{urn:iso:std:iso:20022:tech:xsd:pain.001.001.09}Nm'': [facet ''minLength''] The value has a length of ''0''; this underruns the allowed minimum length of ''1''.' - '14:0: ERROR: Element ''{urn:iso:std:iso:20022:tech:xsd:pain.001.001.09}PmtInfId'': [facet ''minLength''] The value has a length of ''0''; this underruns the allowed minimum length of ''1''.' - '15:0: ERROR: Element ''{urn:iso:std:iso:20022:tech:xsd:pain.001.001.09}PmtMtd'': [facet ''enumeration''] The value ''INVALID'' is not an element of the set {''CHK'', ''TRF'', ''TRA''}.' - '16:0: ERROR: Element ''{urn:iso:std:iso:20022:tech:xsd:pain.001.001.09}NbOfTxs'': [facet ''pattern''] The value ''-1'' is not accepted by the pattern ''[0-9]{1,15}''.' - '18:0: ERROR: Element ''{urn:iso:std:iso:20022:tech:xsd:pain.001.001.09}Dbtr'': This element is not expected. Expected is one of ( {urn:iso:std:iso:20022:tech:xsd:pain.001.001.09}PmtTpInf, {urn:iso:std:iso:20022:tech:xsd:pain.001.001.09}ReqdExctnDt ).' operationId: post_administration_id_sepa_credit_transfer /{administration_id}/subscription_templates/{id}/checkout_identifier{format}: get: summary: Create online sales link [Deprecated] description: |- This call generates an online sales link, which enables pre-setting the contact and start date for a subscription. ### Required scope(s) `settings` deprecated: true x-sunset: '2025-12-31' tags: - Subscription templates security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' - name: contact_id in: query required: false schema: $ref: '#/components/schemas/identifier' examples: CreatesAnOnlineSalesLink: summary: Creates an online sales link value: '495430102601958763' - name: start_date in: query required: false schema: type: string format: date examples: CreatesAnOnlineSalesLinkForAProduct: summary: Creates an online sales link for a product value: '2026-08-14' - name: product_id in: query required: false schema: $ref: '#/components/schemas/identifier' examples: CreatesAnOnlineSalesLinkForAProduct: summary: Creates an online sales link for a product value: '495430102469838168' responses: '200': description: A subscription template content: application/json: schema: type: string examples: CreatesAnOnlineSalesLinkForAProduct: summary: Creates an online sales link for a product value: http://checkout.moneybird.dev/stp/NU15M29jQnpLTFBqeDVBTUFldlJYMWhjcjd6MHM1SkU0cGV0QlgzVU1jdW1rQUJMeU83ZUtkb0xwNmN4RG94VVhIemRUUT09LS1KanQ4OXM4MlMxanVoMWpBLS0rNkxUK2JYMzZnT1RrdytYczNSZVpRPT0= CreatesAnOnlineSalesLinkIfNoContactIdIsProvided: summary: Creates an online sales link if no contact id is provided value: http://checkout.moneybird.dev/s/M0cyZFo0K2piUmp1bkU2RGp4Y3hxcFVsU2lYa2JndmRYMmpPMHRyUnFsSnRlYytJeWlIejZSTEZqb1RXemwyTVFEQjN4dz09LS1BbHBzSjdqa2NKcDh3K2tXLS1oT0hnL1pjRzJQSDByNUxiWVE1cStnPT0= CreatesAnOnlineSalesLink: summary: Creates an online sales link value: http://checkout.moneybird.dev/s/clFGVFlWNHd5eUh2Vk9YR2lQb1JPbmF4TmdJWDkxVjVSeStiZVNOUEdiNTRFOENoWlhYaThSblAwc080ZVF6WXE4K3FWWUdYbVNMWmVJekFiSC9wOGJHWU9iZjEyVkdBZWlNPS0taHJ2Ny9zdHdqWXd4b2VJRy0taTN4TVpvS2p4ZS9tZG50UDhCWVZOdz09 headers: X-Deprecated-Endpoint: description: This endpoint is deprecated and will be removed in the future. schema: type: string '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404IfContactIsNotFound: summary: Returns 404 if contact is not found value: error: 'Record not found for model name: Contact' Returns404WhenTheProductIsNotFound: summary: Returns 404 when the product is not found value: error: Product not found for subscription template operationId: get_administration_id_subscription_templates_id_checkout_identifier /{administration_id}/subscription_templates/{id}/sales_link{format}: post: summary: Create online sales link description: |- This call generates an online sales link, and allows pre-setting the contact and start date for a subscription. The link is valid for one hour ### Required scope(s) `settings` tags: - Subscription templates security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' - name: contact_id in: query required: false schema: $ref: '#/components/schemas/identifier' - name: start_date in: query required: false schema: type: string format: date - name: product_id in: query required: false schema: $ref: '#/components/schemas/identifier' responses: '201': description: Online sales link created successfully content: application/json: schema: type: string examples: CreatesAnOnlineSalesLink: summary: Creates an online sales link value: http://checkout.moneybird.dev/o/DJbAqBobywgy CreatesAnOnlineSalesLinkIfNoContactIdIsProvided: summary: Creates an online sales link if no contact id is provided value: http://checkout.moneybird.dev/o/nlLn0mWKvnxJ CreatesAnOnlineSalesLinkForAProduct: summary: Creates an online sales link for a product value: http://checkout.moneybird.dev/o/5pAylevzOOV9 '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404IfContactIsNotFound: summary: Returns 404 if contact is not found value: error: 'Record not found for model name: Contact' Returns404WhenTheProductIsNotFound: summary: Returns 404 when the product is not found value: error: Product not found for subscription template operationId: post_administration_id_subscription_templates_id_sales_link /{administration_id}/subscription_templates{format}: get: summary: List all subscription templates description: |- This call retrieves a paginated list of all subscription templates available in the administration. Each page consists of up to 100 subscription templates. To access subsequent pages, utilize the page parameter to fetch the next set of subscription templates. ### Required scope(s) `settings` tags: - Subscription templates security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/page' responses: '200': description: A list of subscription templates content: application/json: schema: type: array items: $ref: '#/components/schemas/subscription_template_response' examples: ListsSubscriptionTemplatesForTheAdministration: summary: Lists subscription templates for the administration value: - id: '495430101902558489' administration_id: 123 workflow_id: '495430101875295507' document_style_id: '495429853658481817' mergeable: false contact_can_update: true products: - id: '495430101895218456' administration_id: 123 description: fancy product title: null identifier: null price: '10.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:16:25.471Z' updated_at: '2026-08-14T09:16:25.471Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400IfPageParamIsInvalid: summary: Returns a 400 if page param is invalid value: error: Page is too small symbolic: page: min operationId: get_administration_id_subscription_templates /{administration_id}/subscriptions/{id}/additional_charges{format}: post: summary: Create an additional charge to be invoiced together with the subscription description: |- At the end of the current subscription period, the additional charges are merged where possible and an invoice will be created for them. The invoice will be scheduled for sending together with the subscription invoice, so that they are merged on sending. ### Required scope(s) `sales_invoices` tags: - Subscriptions security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: type: object additionalProperties: true examples: CreateAUsageCharge: summary: Create a usage charge value: product_id: 495430097405216800 amount: 5 x price: 100 period: 20210601..20210630 description: Transaction Costs responses: '201': description: Subscription additional charge created content: application/json: schema: $ref: '#/components/schemas/subscription_additional_charge_response' examples: CreateAUsageCharge: summary: Create a usage charge value: id: '495430097674699781' administration_id: 123 contact_id: null subscription_id: '495430097437722616' product_id: '495430097405216754' detail_id: null amount: 5 x price: '100.0' period: 202106..202106 description: Transaction Costs '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' operationId: post_administration_id_subscriptions_id_additional_charges get: summary: Get additional charges description: |- Get the additional charges of the given subscription. ### Required scope(s) `sales_invoices` tags: - Subscriptions security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' - name: include_billed in: query required: false schema: type: - boolean - string description: If true, includes the additional charges that have already been billed. Default is false. examples: DoesReturnBilledAdditionalChargesIfIncludeBilledIsTrue: summary: Does return billed additional charges if include billed is true value: 'true' responses: '200': description: A subscription additional charge content: application/json: schema: type: array items: $ref: '#/components/schemas/subscription_additional_charge_response' examples: DoesReturnBilledAdditionalChargesIfIncludeBilledIsTrue: summary: Does return billed additional charges if include billed is true value: - id: '495430099944866990' administration_id: 123 contact_id: null subscription_id: '495430099714180255' product_id: '495430099935429804' detail_id: null amount: 5 x price: '100.0' period: 202106..202106 description: Transaction Costs - id: '495430099960595633' administration_id: 123 contact_id: null subscription_id: '495430099714180255' product_id: '495430099951158447' detail_id: '495430099993101491' amount: 5 x price: '100.0' period: 202106..202106 description: Transaction Costs ViewsAdditionalChargesOfASubscription: summary: Views additional charges of a subscription value: - id: '495430100296139978' administration_id: 123 contact_id: null subscription_id: '495430100069647547' product_id: '495430100286702792' detail_id: null amount: 5 x price: '100.0' period: 202106..202106 description: Transaction Costs '404': $ref: '#/components/responses/404_not_found' operationId: get_administration_id_subscriptions_id_additional_charges /{administration_id}/subscriptions/{id}/create_and_schedule_one_off_sales_invoice{format}: post: summary: Create and schedule an invoice to be sent together with the subscription description: |- Besides the recurring sales invoice for the subscription, you sometimes need to bill separate costs like usage based charges. Ideally you want these costs to be on the same invoice as the subscription invoice. This endpoint allows you to put extra invoice details on the subscription invoice. This endpoint creates a new sales invoice and schedules it for sending on the same date as the next subscription invoice. During sending, Moneybird will merge both the scheduled invoice and the subscription invoice. This means the contact will receive one sales invoice with multiple invoice details, both from the subscription and from the one off sales invoice. ### Required scope(s) `sales_invoices` tags: - Subscriptions security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: sales_invoice: type: object unevaluatedProperties: false properties: details_attributes: $ref: '#/components/schemas/details_attributes' invoice_date: type: string format: date description: Date to schedule the invoice for. Defaults to the date of the next subscription invoice. required: [] required: [] examples: CreatesASalesInvoice: summary: Creates a sales invoice value: sales_invoice: details_attributes: '0': description: Extra costs subscription price: '10.5' responses: '201': description: Sales invoice created content: application/json: schema: $ref: '#/components/schemas/sales_invoice_response' examples: CreatesASalesInvoice: summary: Creates a sales invoice value: id: '495430094496466718' administration_id: 123 contact_id: '495430094216496909' contact: id: '495430094216496909' administration_id: 123 company_name: Foobar Holding B.V. firstname: '' lastname: '' address1: Hoofdstraat 12 address2: '' zipcode: 1234AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '1' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:16:18.140Z' updated_at: '2026-08-14T09:16:18.140Z' version: 1786698978 sales_invoices_url: https://moneybird.dev/123/sales_invoices/eeb8f14af002373e9696d964589ad860903a3d3ecc5304460bbc8a13a57bb1f7/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null invoice_id: null recurring_sales_invoice_id: null subscription_id: null workflow_id: '495429853366977679' document_style_id: '495429853658481817' identity_id: '495429852692743275' draft_id: 2 state: scheduled invoice_date: '2026-09-01' due_date: '2026-09-15' payment_conditions: We verzoeken u vriendelijk het bovenstaande bedrag van {document.total_price} voor {document.due_date} te voldoen op onze bankrekening onder vermelding van de omschrijving {document.payment_reference}. Voor vragen kunt u contact opnemen per e-mail. payment_reference: null short_payment_reference: null reference: null language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: null created_at: '2026-08-14T09:16:18.140Z' updated_at: '2026-08-14T09:16:18.140Z' public_view_code: null public_view_code_expires_at: null version: 1786698978 details: - id: '495430094498563871' administration_id: 123 tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' project_id: null product_id: null amount: null amount_decimal: '1.0' description: Extra costs subscription price: '10.5' period: null row_order: 0 total_price_excl_tax_with_discount: '10.5' total_price_excl_tax_with_discount_base: '10.5' tax_report_reference: - NL/1a mandatory_tax_text: null created_at: '2026-08-14T09:16:18.140Z' updated_at: '2026-08-14T09:16:18.140Z' payments: [] total_paid: '0.0' total_unpaid: '12.71' total_unpaid_base: '12.71' prices_are_incl_tax: false total_price_excl_tax: '10.5' total_price_excl_tax_base: '10.5' total_price_incl_tax: '12.71' total_price_incl_tax_base: '12.71' total_discount: '0.0' marked_dubious_on: null marked_uncollectible_on: null reminder_count: 0 next_reminder: null original_estimate_id: null url: http://moneybird.dev/123/external/eeb8f14af002373e9696d964589ad860903a3d3ecc5304460bbc8a13a57bb1f7/3bf9b201beec4362812d4fd1ae5f7645652927ae1cce01d77726d85e6ce28a18/sales_invoice payment_url: http://moneybird.dev/123/external/eeb8f14af002373e9696d964589ad860903a3d3ecc5304460bbc8a13a57bb1f7/3bf9b201beec4362812d4fd1ae5f7645652927ae1cce01d77726d85e6ce28a18/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:16:18.140Z' updated_at: '2026-08-14T09:16:18.140Z' - administration_id: 123 user_id: '495429852315255909' action: sales_invoice_state_changed_to_scheduled link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:16:18.140Z' updated_at: '2026-08-14T09:16:18.140Z' tax_totals: - tax_rate_id: '495429853078619274' taxable_amount: '10.5' taxable_amount_base: '10.5' tax_amount: '2.21' tax_amount_base: '2.21' time_entries: [] '400': $ref: '#/components/responses/400_bad_request' '402': $ref: '#/components/responses/402_payment_required' '404': $ref: '#/components/responses/404_not_found' operationId: post_administration_id_subscriptions_id_create_and_schedule_one_off_sales_invoice /{administration_id}/subscriptions/{id}{format}: get: summary: Get subscription description: |- Get a subscription. ### Required scope(s) `sales_invoices` tags: - Subscriptions security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A subscription content: application/json: schema: $ref: '#/components/schemas/subscription_response' examples: ReturnsASubscription: summary: Returns a subscription value: id: '495430099069305974' administration_id: 123 start_date: '2017-01-01' end_date: null frequency: 1 frequency_type: month reference: null cancelled_at: null product_id: '495430099053577332' product: id: '495430099053577332' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:16:22.763Z' updated_at: '2026-08-14T09:16:22.763Z' contact_id: '495430099039945842' contact: id: '495430099039945842' administration_id: 123 company_name: Foobar Holding B.V. firstname: '' lastname: '' address1: Hoofdstraat 12 address2: '' zipcode: 1234AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '1' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:16:22.749Z' updated_at: '2026-08-14T09:16:22.749Z' version: 1786698982 sales_invoices_url: https://moneybird.dev/123/sales_invoices/1b814d528c41b7c38f40d400929f7c5e07a5c31ad70dd551970a3334249a3991/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null subscription_products: - start_date: '2017-01-01' end_date: null product_id: '495430099053577332' product: id: '495430099053577332' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:16:22.763Z' updated_at: '2026-08-14T09:16:22.763Z' amount: 1 x discount: '0.0' recurring_sales_invoice_id: '495430099102860409' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTheSubscriptionDoesNotExist: summary: Returns 404 when the subscription does not exist value: error: 'Record not found for model name: Subscription' operationId: get_administration_id_subscriptions_id patch: summary: Update a subscription description: |- Updates the product the contact is subscribed to. This will automatically calculate the differences between the product prices and create a one off sales invoice to bill the extra charge for the remaining billing period. Optionally you can provide a start date for the product change to become active. ### Required scope(s) `sales_invoices` tags: - Subscriptions security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: subscription: type: object unevaluatedProperties: false properties: contact_person_id: $ref: '#/components/schemas/identifier_nullable' description: Should be a valid contact person id. document_style_id: $ref: '#/components/schemas/identifier' description: Should be a valid document style id. reference: type: string mergeable: type: - boolean - string default: false description: Merge invoices from this subscription with other mergeable invoices for the same contact before sending. Only applies when invoices are sent automatically. prices_are_incl_tax: type: - boolean - string default: false description: Whether the amounts on the generated invoices are inclusive of tax. product_id: $ref: '#/components/schemas/identifier' description: Should be a valid product id. start_date: type: string format: date amount: type: string description: Quantity of the product billed each period. discount: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. required: [] required: [] examples: UpdatesASubscription: summary: Updates a subscription value: subscription: product_id: 495430095224178500 discount: 10 amount: 3 x responses: '200': description: Subscription updated content: application/json: schema: $ref: '#/components/schemas/subscription_response' examples: UpdatesASubscription: summary: Updates a subscription value: id: '495430095268218726' administration_id: 123 start_date: '2017-01-01' end_date: null frequency: 1 frequency_type: month reference: null cancelled_at: null product_id: '495430095224178526' product: id: '495430095224178526' administration_id: 123 description: My product description title: null identifier: null price: '30.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:16:19.111Z' updated_at: '2026-08-14T09:16:19.111Z' contact_id: '495430095238858594' contact: id: '495430095238858594' administration_id: 123 company_name: Foobar Holding B.V. firstname: '' lastname: '' address1: Hoofdstraat 12 address2: '' zipcode: 1234AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '1' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:16:19.125Z' updated_at: '2026-08-14T09:16:19.125Z' version: 1786698979 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0e9a8505554406a252601972c565e5a29f84fca2b20538782369b9b51b06a1f5/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null subscription_products: - start_date: '2017-01-01' end_date: '2026-08-13' product_id: '495430095253538660' product: id: '495430095253538660' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:16:19.138Z' updated_at: '2026-08-14T09:16:19.138Z' amount: 1 x discount: '0.0' - start_date: '2026-08-14' end_date: null product_id: '495430095224178526' product: id: '495430095224178526' administration_id: 123 description: My product description title: null identifier: null price: '30.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:16:19.111Z' updated_at: '2026-08-14T09:16:19.111Z' amount: 3 x discount: '10.0' recurring_sales_invoice_id: '495430095301773161' '400': $ref: '#/components/responses/400_bad_request' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404IfTheSubscriptionCouldnTBeFound: summary: Returns a 404 if the subscription couldn't be found value: error: record not found symbolic: id: not_found '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: patch_administration_id_subscriptions_id delete: summary: Cancel a subscription description: |- Cancels the subscription. Stops the recurring sales invoice for the contact. Optionally you can provide an `end_date` to stop the subscription on a future date. ### Required scope(s) `sales_invoices` tags: - Subscriptions security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: subscription: type: object unevaluatedProperties: false properties: end_date: type: string format: date required: [] required: [] examples: CancelsASubscriptionForTheContact: summary: Cancels a subscription for the contact value: subscription: end_date: '2026-08-16' responses: '200': description: Subscription cancelled content: application/json: schema: $ref: '#/components/schemas/subscription_response' examples: CancelsASubscriptionForTheContact: summary: Cancels a subscription for the contact value: id: '495430096756148175' administration_id: 123 start_date: '2017-01-01' end_date: '2026-08-16' frequency: 1 frequency_type: month reference: null cancelled_at: '2026-08-14T09:16:20.783Z' product_id: '495430096740419533' product: id: '495430096740419533' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:16:20.557Z' updated_at: '2026-08-14T09:16:20.557Z' contact_id: '495430096726788043' contact: id: '495430096726788043' administration_id: 123 company_name: Foobar Holding B.V. firstname: '' lastname: '' address1: Hoofdstraat 12 address2: '' zipcode: 1234AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '1' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:16:20.543Z' updated_at: '2026-08-14T09:16:20.543Z' version: 1786698980 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0912a4de2573066a29ea5f5faa2c729e772da370d91b67cb5f162310a9f377f0/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null subscription_products: - start_date: '2017-01-01' end_date: '2026-08-16' product_id: '495430096740419533' product: id: '495430096740419533' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:16:20.557Z' updated_at: '2026-08-14T09:16:20.557Z' amount: 1 x discount: '0.0' recurring_sales_invoice_id: '495430096788654034' '400': $ref: '#/components/responses/400_bad_request' '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_subscriptions_id /{administration_id}/subscriptions{format}: get: summary: List all subscriptions description: |- Lists all subscriptions for the given contact. ### Required scope(s) `sales_invoices` tags: - Subscriptions security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: contact_id in: query required: true schema: $ref: '#/components/schemas/identifier' examples: ListsAllSubscriptionsForAContact: summary: Lists all subscriptions for a contact value: '495430098648826961' responses: '200': description: A list of subscriptions content: application/json: schema: type: array items: $ref: '#/components/schemas/subscription_response' examples: ListsAllSubscriptionsForAContact: summary: Lists all subscriptions for a contact value: - id: '495430098677138517' administration_id: 123 start_date: '2017-01-01' end_date: null frequency: 1 frequency_type: month reference: null cancelled_at: null product_id: '495430098662458451' product: id: '495430098662458451' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:16:22.389Z' updated_at: '2026-08-14T09:16:22.389Z' contact_id: '495430098648826961' contact: id: '495430098648826961' administration_id: 123 company_name: Foobar Holding B.V. firstname: '' lastname: '' address1: Hoofdstraat 12 address2: '' zipcode: 1234AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '1' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:16:22.376Z' updated_at: '2026-08-14T09:16:22.376Z' version: 1786698982 sales_invoices_url: https://moneybird.dev/123/sales_invoices/5f012d313a17c9c7580c102e6f1bf79a3c9f2091d92922bc8c4f25c4fbb4fff7/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null subscription_products: - start_date: '2017-01-01' end_date: null product_id: '495430098662458451' product: id: '495430098662458451' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:16:22.389Z' updated_at: '2026-08-14T09:16:22.389Z' amount: 1 x discount: '0.0' recurring_sales_invoice_id: '495430098708595800' operationId: get_administration_id_subscriptions post: summary: Create a new subscription description: |- Starts a new subscription for the given contact. The `product_id` points to a product with a frequency, price and description. A recurring sales invoice is automatically created to bill the contact for the given frequency. The first invoice will be sent on the start date, but no sooner than tomorrow. The `reference` will be added to the sales invoices. Optionally you can create a subscription with a different frequency than stored in the product. Make sure the frequency of the product and the provided frequency are compatible. E.g. you can bill a monthly product yearly. ### Required scope(s) `sales_invoices` tags: - Subscriptions security: - bearerAuth: - sales_invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: subscription: type: object unevaluatedProperties: false properties: start_date: type: string format: date product_id: $ref: '#/components/schemas/identifier' description: Should be a valid product id. amount: type: string description: Quantity of the product billed each period. discount: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. contact_person_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact person id. end_date: type: string format: date reference: type: string document_style_id: $ref: '#/components/schemas/identifier' description: Should be a valid document style id. frequency: type: integer description: Number of periods between invoices, combined with `frequency_type`. Must be compatible with the product's frequency (e.g. a monthly product can be billed yearly). Defaults to the product's frequency. frequency_type: type: string enum: - day - week - month - quarter - year description: Length of a single billing period, combined with `frequency`. Defaults to the product's frequency type. mergeable: type: - boolean - string default: false description: Merge invoices from this subscription with other mergeable invoices for the same contact before sending. Only applies when invoices are sent automatically. prices_are_incl_tax: type: - boolean - string default: false description: Whether the amounts on the generated invoices are inclusive of tax. required: - start_date - product_id required: [] examples: CreatesANewSubscriptionForTheContact: summary: Creates a new subscription for the contact value: subscription: start_date: '2026-08-15' contact_id: 495430094878148400 product_id: 495430094893877060 reference: moneybird.nl discount: 10 amount: 5x responses: '201': description: Subscription created content: application/json: schema: $ref: '#/components/schemas/subscription_response' examples: CreatesANewSubscriptionForTheContact: summary: Creates a new subscription for the contact value: id: '495430094916945729' administration_id: 123 start_date: '2026-08-15' end_date: null frequency: 1 frequency_type: month reference: moneybird.nl cancelled_at: null product_id: '495430094893877055' product: id: '495430094893877055' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:16:18.796Z' updated_at: '2026-08-14T09:16:18.796Z' contact_id: '495430094878148413' contact: id: '495430094878148413' administration_id: 123 company_name: Foobar Holding B.V. firstname: '' lastname: '' address1: Hoofdstraat 12 address2: '' zipcode: 1234AB city: Amsterdam country: NL phone: '' delivery_method: Email customer_id: '1' tax_number: '' chamber_of_commerce: '' bank_account: '' is_trusted: false max_transfer_amount: null attention: '' email: info@example.com email_ubl: true send_invoices_to_attention: '' send_invoices_to_email: info@example.com send_estimates_to_attention: '' send_estimates_to_email: info@example.com direct_debit: false sepa_active: false sepa_iban: '' sepa_iban_account_name: '' sepa_bic: '' sepa_mandate_id: '' sepa_mandate_date: null sepa_sequence_type: RCUR credit_card_number: '' credit_card_reference: '' credit_card_type: null tax_number_validated_at: null tax_number_valid: null invoice_workflow_id: null estimate_workflow_id: null si_identifier: '' si_identifier_type: null moneybird_payments_mandate: false created_at: '2026-08-14T09:16:18.780Z' updated_at: '2026-08-14T09:16:18.780Z' version: 1786698978 sales_invoices_url: https://moneybird.dev/123/sales_invoices/69d2f96c1690cc2fbbe4bfd629d62dbc9fe145cde85875b1e2ba4ae999e8d00f/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null subscription_products: - start_date: '2026-08-15' end_date: null product_id: '495430094893877055' product: id: '495430094893877055' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '495429853078619274' ledger_account_id: '495429852896167034' created_at: '2026-08-14T09:16:18.796Z' updated_at: '2026-08-14T09:16:18.796Z' amount: 5x discount: '10.0' recurring_sales_invoice_id: '495430094954694468' '400': $ref: '#/components/responses/400_bad_request' '402': $ref: '#/components/responses/402_payment_required' '422': $ref: '#/components/responses/422_unprocessable_entity' operationId: post_administration_id_subscriptions /{administration_id}/task_list_groups/{id}{format}: get: summary: Returns information about a task list group description: |- Returns information about a task list group, including its tasks. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A task list group content: application/json: schema: $ref: '#/components/schemas/task_list_group_response' examples: ReturnsASingleGroup: summary: Returns a single group value: id: '495429918807557663' name: 'Task list group #2' row_order: 1 report_type: null created_at: '2026-08-14T09:13:30.866Z' updated_at: '2026-08-14T09:13:30.866Z' tasks: - id: '495429918808606240' administration_id: 123 name: 'Task #2' description: Description 2 row_order: 0 completed_at: null report_type: null task_lists_group_id: '495429918807557663' parent_task_id: null created_at: '2026-08-14T09:13:30.867Z' updated_at: '2026-08-14T09:13:30.867Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:30.869Z' updated_at: '2026-08-14T09:13:30.869Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenGroupDoesNotExist: summary: Returns 404 when group does not exist value: error: 'Record not found for model name: Group' operationId: get_administration_id_task_list_groups_id patch: summary: Updates a task list group description: |- Updates a task list group's name or report type. Updating the report type will destroy all tasks and generate new tasks based on the new report. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: content: application/*: schema: unevaluatedProperties: false type: object properties: group: type: object unevaluatedProperties: false properties: name: type: string report_type: type: string enum: - balance_sheet - profit_loss - debtor - creditor - assets description: Report this group is based on; its tasks are generated from the report. examples: UpdatesAGroupWithoutParams: summary: Updates a group without params value: {} UpdatesAGroup: summary: Updates a group value: group: name: Updated Group responses: '200': description: Group updated content: application/json: schema: $ref: '#/components/schemas/task_list_group_response' examples: UpdatesAGroupWithoutParams: summary: Updates a group without params value: id: '495429919189239393' name: 'Task list group #2' row_order: 1 report_type: null created_at: '2026-08-14T09:13:31.231Z' updated_at: '2026-08-14T09:13:31.231Z' tasks: - id: '495429919190287970' administration_id: 123 name: 'Task #2' description: Description 2 row_order: 0 completed_at: null report_type: null task_lists_group_id: '495429919189239393' parent_task_id: null created_at: '2026-08-14T09:13:31.232Z' updated_at: '2026-08-14T09:13:31.232Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:31.233Z' updated_at: '2026-08-14T09:13:31.233Z' UpdatesAGroup: summary: Updates a group value: id: '495429919242716777' name: Updated Group row_order: 1 report_type: null created_at: '2026-08-14T09:13:31.282Z' updated_at: '2026-08-14T09:13:31.300Z' tasks: - id: '495429919243765354' administration_id: 123 name: 'Task #2' description: Description 2 row_order: 0 completed_at: null report_type: null task_lists_group_id: '495429919242716777' parent_task_id: null created_at: '2026-08-14T09:13:31.283Z' updated_at: '2026-08-14T09:13:31.283Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:31.284Z' updated_at: '2026-08-14T09:13:31.284Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenGroupDoesNotExist: summary: Returns 404 when group does not exist value: error: 'Record not found for model name: Group' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenTryingToUpdateAVirtualGroup: summary: Returns 422 when trying to update a virtual group value: error: The first group cannot be modified operationId: patch_administration_id_task_list_groups_id delete: summary: Deletes a task list group description: |- Permanently deletes a task list group and all its tasks. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Group deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenGroupDoesNotExist: summary: Returns 404 when group does not exist value: error: 'Record not found for model name: Group' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenTryingToDeleteAVirtualGroup: summary: Returns 422 when trying to delete a virtual group value: error: The first group cannot be deleted operationId: delete_administration_id_task_list_groups_id /{administration_id}/task_list_groups/{task_list_group_id}/tasks{format}: post: summary: Creates a new task in a group description: |- Creates a new task in the specified task list group. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: task_list_group_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: task: type: object unevaluatedProperties: false properties: name: type: string description: type: string report_type: type: string enum: - balance_sheet - profit_loss - debtor - creditor - assets description: Report this task is based on; its content is generated from the report. assignee_id: type: string description: ID of the user to assign the task to. related_entity_id: $ref: '#/components/schemas/identifier_nullable' description: The ID of a ledger account to link to the task generate_subtasks: type: boolean description: Whether to generate subtasks based on the related entity's children required: - name examples: CreatesANewTask: summary: Creates a new task value: task: name: New Task responses: '201': description: Task created content: application/json: schema: $ref: '#/components/schemas/task_list_task_response' examples: CreatesANewTask: summary: Creates a new task value: id: '495429919064458826' administration_id: 123 name: New Task description: null row_order: 1 completed_at: null report_type: null task_lists_group_id: '495429919040341575' parent_task_id: null created_at: '2026-08-14T09:13:31.111Z' updated_at: '2026-08-14T09:13:31.111Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:31.114Z' updated_at: '2026-08-14T09:13:31.114Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenParametersAreInvalid: summary: Returns 400 when parameters are invalid value: error: task[name] is missing '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenGroupDoesNotExist: summary: Returns 404 when group does not exist value: error: 'Record not found for model name: Group' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenNameIsMissing: summary: Returns 422 when name is missing value: error: Name can't be blank Returns422WhenGroupHasGeneratedTasks: summary: Returns 422 when group has generated tasks value: error: Tasks cannot be added to a group with generated tasks operationId: post_administration_id_task_list_groups_task_list_group_id_tasks /{administration_id}/task_list_tasks/{id}{format}: get: summary: Returns information about a task description: |- Returns information about a task, including its subtasks, notes, and events. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A task content: application/json: schema: $ref: '#/components/schemas/task_list_task_response' examples: ReturnsASingleTask: summary: Returns a single task value: id: '495429920170706649' administration_id: 123 name: 'Task #1' description: Description 1 row_order: 0 completed_at: null report_type: null task_lists_group_id: '495429920169658072' parent_task_id: null created_at: '2026-08-14T09:13:32.167Z' updated_at: '2026-08-14T09:13:32.167Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:32.168Z' updated_at: '2026-08-14T09:13:32.168Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTaskDoesNotExist: summary: Returns 404 when task does not exist value: error: 'Record not found for model name: Task' operationId: get_administration_id_task_list_tasks_id patch: summary: Updates a task description: |- Updates a task's attributes. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: task: type: object unevaluatedProperties: false properties: name: type: string description: type: string report_type: type: string enum: - balance_sheet - profit_loss - debtor - creditor - assets description: Report this task is based on; its content is generated from the report. assignee_id: type: string description: ID of the user to assign the task to. related_entity_id: $ref: '#/components/schemas/identifier_nullable' description: The ID of a ledger account to link to the task generate_subtasks: type: boolean description: Whether to generate subtasks based on the related entity's children examples: UpdatesATask: summary: Updates a task value: task: name: Updated Task responses: '200': description: Task updated content: application/json: schema: $ref: '#/components/schemas/task_list_task_response' examples: UpdatesATask: summary: Updates a task value: id: '495429920812435262' administration_id: 123 name: Updated Task description: Description 1 row_order: 0 completed_at: null report_type: null task_lists_group_id: '495429920811386685' parent_task_id: null created_at: '2026-08-14T09:13:32.778Z' updated_at: '2026-08-14T09:13:32.797Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:32.780Z' updated_at: '2026-08-14T09:13:32.780Z' - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_name link_entity_id: null link_entity_type: null data: name: Updated Task created_at: '2026-08-14T09:13:32.799Z' updated_at: '2026-08-14T09:13:32.799Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenRequiredParamsAreMissing: summary: Returns 400 when required params are missing value: error: task is missing '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTaskDoesNotExist: summary: Returns 404 when task does not exist value: error: 'Record not found for model name: Task' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenNameIsEmpty: summary: Returns 422 when name is empty value: error: Name can't be blank operationId: patch_administration_id_task_list_tasks_id delete: summary: Deletes a task description: |- Permanently deletes a task and all its subtasks. Generated tasks cannot be deleted. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Task deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTaskDoesNotExist: summary: Returns 404 when task does not exist value: error: 'Record not found for model name: Task' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenTaskIsGenerated: summary: Returns 422 when task is generated value: error: Generated tasks cannot be deleted operationId: delete_administration_id_task_list_tasks_id /{administration_id}/task_list_tasks/{task_list_task_id}/assignment{format}: post: summary: Assigns a user to a task description: |- Assigns a user to the specified task. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: task_list_task_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: assignee_id: $ref: '#/components/schemas/identifier' description: The ID of the user to assign to the task. A user must have permissions to a task or else a 404 will be thrown. required: - assignee_id examples: AssignsAUserToTheTask: summary: Assigns a user to the task value: assignee_id: '495429852342518886' responses: '200': description: User assigned to task content: application/json: schema: $ref: '#/components/schemas/task_list_task_response' examples: AssignsAUserToTheTask: summary: Assigns a user to the task value: id: '495429920007128771' administration_id: 123 name: 'Task #1' description: Description 1 row_order: 0 completed_at: null report_type: null task_lists_group_id: '495429920006080194' parent_task_id: null created_at: '2026-08-14T09:13:32.011Z' updated_at: '2026-08-14T09:13:32.011Z' assignee_id: '495429852342518886' subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:32.012Z' updated_at: '2026-08-14T09:13:32.012Z' - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_assigned link_entity_id: null link_entity_type: null data: assignee: Mo Neybird created_at: '2026-08-14T09:13:32.033Z' updated_at: '2026-08-14T09:13:32.033Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTaskDoesNotExist: summary: Returns 404 when task does not exist value: error: 'Record not found for model name: Task' Returns404WhenAssigneeIdIsInvalid: summary: Returns 404 when assignee id is invalid value: error: Assignee not found operationId: post_administration_id_task_list_tasks_task_list_task_id_assignment delete: summary: Unassigns the user from a task description: |- Removes the current assignment from the specified task. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: task_list_task_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: User unassigned from task content: application/json: schema: $ref: '#/components/schemas/task_list_task_response' examples: UnassignsTheTask: summary: Unassigns the task value: id: '495429920209503966' administration_id: 123 name: 'Task #1' description: Description 1 row_order: 0 completed_at: null report_type: null task_lists_group_id: '495429920208455389' parent_task_id: null created_at: '2026-08-14T09:13:32.204Z' updated_at: '2026-08-14T09:13:32.204Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:32.205Z' updated_at: '2026-08-14T09:13:32.205Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTaskDoesNotExist: summary: Returns 404 when task does not exist value: error: 'Record not found for model name: Task' operationId: delete_administration_id_task_list_tasks_task_list_task_id_assignment /{administration_id}/task_list_tasks/{task_list_task_id}/completion{format}: post: summary: Completes a task description: |- Marks a task and all its subtasks as completed. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: task_list_task_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: Task completed content: application/json: schema: $ref: '#/components/schemas/task_list_task_response' examples: CompletesTheTask: summary: Completes the task value: id: '495429919709333146' administration_id: 123 name: 'Task #1' description: Description 1 row_order: 0 completed_at: '2026-08-14T09:13:31.745Z' report_type: null task_lists_group_id: '495429919708284569' parent_task_id: null created_at: '2026-08-14T09:13:31.726Z' updated_at: '2026-08-14T09:13:31.745Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:31.728Z' updated_at: '2026-08-14T09:13:31.728Z' - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_completed link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:31.748Z' updated_at: '2026-08-14T09:13:31.748Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTaskDoesNotExist: summary: Returns 404 when task does not exist value: error: 'Record not found for model name: Task' operationId: post_administration_id_task_list_tasks_task_list_task_id_completion delete: summary: Reopens a task description: |- Reopens a completed task and possible parent tasks. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: task_list_task_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: Task reopened content: application/json: schema: $ref: '#/components/schemas/task_list_task_response' examples: ReopensTheTask: summary: Reopens the task value: id: '495429919916951222' administration_id: 123 name: 'Task #1' description: Description 1 row_order: 0 completed_at: null report_type: null task_lists_group_id: '495429919915902645' parent_task_id: null created_at: '2026-08-14T09:13:31.925Z' updated_at: '2026-08-14T09:13:31.946Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:31.926Z' updated_at: '2026-08-14T09:13:31.926Z' - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_completed link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:31.934Z' updated_at: '2026-08-14T09:13:31.934Z' - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_reopened link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:31.948Z' updated_at: '2026-08-14T09:13:31.948Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTaskDoesNotExist: summary: Returns 404 when task does not exist value: error: 'Record not found for model name: Task' operationId: delete_administration_id_task_list_tasks_task_list_task_id_completion /{administration_id}/task_list_tasks/{task_list_task_id}/notes{format}: post: summary: Creates a note on a task description: |- Creates a new note on the specified task. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: task_list_task_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: note: type: object unevaluatedProperties: false properties: note: type: string description: The note content todo: type: boolean description: Whether the note is a to-do item required: - note examples: CreatesANote: summary: Creates a note value: note: note: Test note todo: false responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreatesANote: summary: Creates a note value: id: '495429919815239335' administration_id: 123 entity_id: '495429919799510693' entity_type: TaskLists::Task user_id: '495429852315255909' assignee_id: null todo: false note: Test note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-08-14T09:13:31.828Z' updated_at: '2026-08-14T09:13:31.828Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTaskDoesNotExist: summary: Returns 404 when task does not exist value: error: 'Record not found for model name: Task' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenNoteIsEmpty: summary: Returns 422 when note is empty value: error: note: - can't be blank todo_type: - can't be blank details: note: - error: blank todo_type: - error: blank operationId: post_administration_id_task_list_tasks_task_list_task_id_notes /{administration_id}/task_list_templates/{id}{format}: get: summary: Returns information about a task list template description: |- Returns information about a task list template, including its groups and tasks. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task list templates security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A task list template content: application/json: schema: $ref: '#/components/schemas/task_list_template_response' examples: ReturnsASingleTemplate: summary: Returns a single template value: id: '495429947757692160' administration_id: 123 name: 'Task list template #1' description: Template description period: P1M deadline_after: null created_at: '2026-08-14T09:13:58.475Z' updated_at: '2026-08-14T09:13:58.475Z' groups: - id: '495429947759789314' name: 'Task list group #1' row_order: 0 report_type: null created_at: '2026-08-14T09:13:58.478Z' updated_at: '2026-08-14T09:13:58.478Z' tasks: - id: '495429947760837891' administration_id: 123 name: 'Task #1' description: Description 1 row_order: 0 completed_at: null report_type: null task_lists_group_id: '495429947759789314' parent_task_id: null created_at: '2026-08-14T09:13:58.479Z' updated_at: '2026-08-14T09:13:58.479Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:58.480Z' updated_at: '2026-08-14T09:13:58.480Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTemplateDoesNotExist: summary: Returns 404 when template does not exist value: error: 'Record not found for model name: List template' operationId: get_administration_id_task_list_templates_id patch: summary: Updates a task list template description: |- Updates a task list template. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task list templates security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: task_list_template: type: object unevaluatedProperties: false properties: name: type: string description: type: string period: type: string description: ISO 8601 duration string (e.g. P1M, P3M, P1Y) or friendly name (monthly, quarterly, yearly, none) deadline_after: type: string description: ISO 8601 duration string representing the deadline offset from the period end examples: UpdatesATemplate: summary: Updates a template value: task_list_template: name: Updated Template responses: '200': description: Template updated content: application/json: schema: $ref: '#/components/schemas/task_list_template_response' examples: UpdatesATemplate: summary: Updates a template value: id: '495429947865695503' administration_id: 123 name: Updated Template description: Template description period: P1M deadline_after: null created_at: '2026-08-14T09:13:58.578Z' updated_at: '2026-08-14T09:13:58.600Z' groups: - id: '495429947868841233' name: 'Task list group #1' row_order: 0 report_type: null created_at: '2026-08-14T09:13:58.581Z' updated_at: '2026-08-14T09:13:58.581Z' tasks: - id: '495429947869889810' administration_id: 123 name: 'Task #1' description: Description 1 row_order: 0 completed_at: null report_type: null task_lists_group_id: '495429947868841233' parent_task_id: null created_at: '2026-08-14T09:13:58.582Z' updated_at: '2026-08-14T09:13:58.582Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:58.584Z' updated_at: '2026-08-14T09:13:58.584Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenRequiredParamsAreMissing: summary: Returns 400 when required params are missing value: error: task_list_template is missing '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTemplateDoesNotExist: summary: Returns 404 when template does not exist value: error: 'Record not found for model name: List template' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenNameIsEmpty: summary: Returns 422 when name is empty value: error: Name can't be blank operationId: patch_administration_id_task_list_templates_id delete: summary: Deletes a task list template description: |- Permanently deletes a task list template and all its groups and tasks. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task list templates security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Template deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTemplateDoesNotExist: summary: Returns 404 when template does not exist value: error: 'Record not found for model name: List template' operationId: delete_administration_id_task_list_templates_id /{administration_id}/task_list_templates/{task_list_template_id}/groups{format}: post: summary: Creates a new group in a task list template description: |- Creates a new group in the specified task list template. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task list templates security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: task_list_template_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: group: type: object unevaluatedProperties: false properties: name: type: string report_type: type: string enum: - balance_sheet - profit_loss - debtor - creditor - assets description: Report this group is based on; its tasks are generated from the report. required: - name examples: CreatesANewGroup: summary: Creates a new group value: group: name: New Group responses: '201': description: Group created content: application/json: schema: $ref: '#/components/schemas/task_list_group_response' examples: CreatesANewGroup: summary: Creates a new group value: id: '495429947627668720' name: New Group row_order: 1 report_type: null created_at: '2026-08-14T09:13:58.351Z' updated_at: '2026-08-14T09:13:58.351Z' tasks: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenRequiredParamsAreMissing: summary: Returns 400 when required params are missing value: error: group is missing, group[name] is missing '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTemplateDoesNotExist: summary: Returns 404 when template does not exist value: error: 'Record not found for model name: List template' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenNameIsMissing: summary: Returns 422 when name is missing value: error: Name can't be blank operationId: post_administration_id_task_list_templates_task_list_template_id_groups /{administration_id}/task_list_templates/{task_list_template_id}/task_lists{format}: post: summary: Creates a task list from a template description: |- Creates a new task list based on the specified template. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: task_list_template_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: false content: application/*: schema: unevaluatedProperties: false type: object properties: task_list: type: object unevaluatedProperties: false properties: name: type: string description: type: string deadline_on: type: string format: date period_begin: type: string format: date period_end: type: string format: date examples: CreatesATaskListFromTheTemplate: summary: Creates a task list from the template value: {} responses: '201': description: Task list created content: application/json: schema: $ref: '#/components/schemas/task_list_response' examples: CreatesATaskListFromTheTemplate: summary: Creates a task list from the template value: id: '495429947534345441' administration_id: 123 name: 'Task list template #1' description: Template description deadline_on: null period_begin: '2026-07-01' period_end: '2026-07-31' completed: false template_id: '495429947500791004' total_tasks_count: 1 completed_tasks_count: 0 created_at: '2026-08-14T09:13:58.262Z' updated_at: '2026-08-14T09:13:58.262Z' groups: - id: '495429947538539747' name: 'Task list group #1' row_order: 0 report_type: null created_at: '2026-08-14T09:13:58.266Z' updated_at: '2026-08-14T09:13:58.266Z' tasks: - id: '495429947539588324' administration_id: 123 name: 'Task #1' description: Description 1 row_order: 0 completed_at: null report_type: null task_lists_group_id: '495429947538539747' parent_task_id: null created_at: '2026-08-14T09:13:58.267Z' updated_at: '2026-08-14T09:13:58.267Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:58.269Z' updated_at: '2026-08-14T09:13:58.269Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenParamsAreInvalidType: summary: Returns 400 when params are invalid type value: error: task_list is invalid '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTemplateDoesNotExist: summary: Returns 404 when template does not exist value: error: 'Record not found for model name: List template' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenTaskListParamsAreInvalid: summary: Returns 422 when task list params are invalid value: error: Name can't be blank operationId: post_administration_id_task_list_templates_task_list_template_id_task_lists /{administration_id}/task_list_templates{format}: get: summary: List all task list templates of an administration description: |- Returns all task list templates in the administration. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task list templates security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' responses: '200': description: A list of task list templates content: application/json: schema: type: array items: $ref: '#/components/schemas/task_list_template_response' examples: ReturnsTheListOfTemplates: summary: Returns the list of templates value: - id: '495429947716797691' administration_id: 123 name: 'Task list template #1' description: Template description period: P1M deadline_after: null created_at: '2026-08-14T09:13:58.437Z' updated_at: '2026-08-14T09:13:58.437Z' groups: - id: '495429947719943421' name: 'Task list group #1' row_order: 0 report_type: null created_at: '2026-08-14T09:13:58.440Z' updated_at: '2026-08-14T09:13:58.440Z' tasks: - id: '495429947720991998' administration_id: 123 name: 'Task #1' description: Description 1 row_order: 0 completed_at: null report_type: null task_lists_group_id: '495429947719943421' parent_task_id: null created_at: '2026-08-14T09:13:58.441Z' updated_at: '2026-08-14T09:13:58.441Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:58.442Z' updated_at: '2026-08-14T09:13:58.442Z' operationId: get_administration_id_task_list_templates post: summary: Creates a new task list template description: |- Creates a new task list template. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task list templates security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: task_list_template: type: object unevaluatedProperties: false properties: name: type: string description: type: string period: type: string description: ISO 8601 duration string (e.g. P1M, P3M, P1Y) or friendly name (monthly, quarterly, yearly, none) deadline_after: type: string description: ISO 8601 duration string representing the deadline offset from the period end required: - name examples: CreatesANewTemplate: summary: Creates a new template value: task_list_template: name: New Template responses: '201': description: Template created content: application/json: schema: $ref: '#/components/schemas/task_list_template_response' examples: CreatesANewTemplate: summary: Creates a new template value: id: '495429948039759145' administration_id: 123 name: New Template description: null period: P1M deadline_after: null created_at: '2026-08-14T09:13:58.745Z' updated_at: '2026-08-14T09:13:58.745Z' groups: - id: '495429948042904875' name: null row_order: 0 report_type: null created_at: '2026-08-14T09:13:58.748Z' updated_at: '2026-08-14T09:13:58.748Z' tasks: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenRequiredParamsAreMissing: summary: Returns 400 when required params are missing value: error: task_list_template is missing, task_list_template[name] is missing '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenNameIsMissing: summary: Returns 422 when name is missing value: error: Name can't be blank operationId: post_administration_id_task_list_templates /{administration_id}/task_lists/{id}{format}: get: summary: Returns information about a task list description: |- Returns information about a task list, including its groups, tasks, and subtasks. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A task list content: application/json: schema: $ref: '#/components/schemas/task_list_response' examples: ReturnsASingleTaskList: summary: Returns a single task list value: id: '495429892363519309' administration_id: 123 name: 'Task list #1' description: List description deadline_on: null period_begin: '2026-04-01' period_end: '2026-06-30' completed: false template_id: null total_tasks_count: 1 completed_tasks_count: 0 created_at: '2026-08-14T09:13:05.646Z' updated_at: '2026-08-14T09:13:05.646Z' groups: - id: '495429892366665039' name: 'Task list group #1' row_order: 0 report_type: null created_at: '2026-08-14T09:13:05.651Z' updated_at: '2026-08-14T09:13:05.651Z' tasks: - id: '495429892367713616' administration_id: 123 name: 'Task #1' description: Description 1 row_order: 0 completed_at: null report_type: null task_lists_group_id: '495429892366665039' parent_task_id: null created_at: '2026-08-14T09:13:05.652Z' updated_at: '2026-08-14T09:13:05.652Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:05.654Z' updated_at: '2026-08-14T09:13:05.654Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTaskListDoesNotExist: summary: Returns 404 when task list does not exist value: error: 'Record not found for model name: List' operationId: get_administration_id_task_lists_id patch: summary: Updates a task list description: |- Updates a task list's name, description, or deadline. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: task_list: type: object unevaluatedProperties: false properties: name: type: string description: type: string deadline_on: type: string format: date required: [] examples: UpdatesATaskList: summary: Updates a task list value: task_list: name: Updated Name responses: '200': description: Task list updated content: application/json: schema: $ref: '#/components/schemas/task_list_response' examples: UpdatesATaskList: summary: Updates a task list value: id: '495429892187358530' administration_id: 123 name: Updated Name description: List description deadline_on: null period_begin: '2026-04-01' period_end: '2026-06-30' completed: false template_id: null total_tasks_count: 1 completed_tasks_count: 0 created_at: '2026-08-14T09:13:05.479Z' updated_at: '2026-08-14T09:13:05.504Z' groups: - id: '495429892191552836' name: 'Task list group #1' row_order: 0 report_type: null created_at: '2026-08-14T09:13:05.483Z' updated_at: '2026-08-14T09:13:05.483Z' tasks: - id: '495429892192601413' administration_id: 123 name: 'Task #1' description: Description 1 row_order: 0 completed_at: null report_type: null task_lists_group_id: '495429892191552836' parent_task_id: null created_at: '2026-08-14T09:13:05.484Z' updated_at: '2026-08-14T09:13:05.484Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:05.486Z' updated_at: '2026-08-14T09:13:05.486Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400WhenTheGivenParametersAreInvalid: summary: Returns a 400 when the given parameters are invalid value: error: task_list is missing '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTaskListDoesNotExist: summary: Returns 404 when task list does not exist value: error: 'Record not found for model name: List' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenNameIsEmpty: summary: Returns 422 when name is empty value: error: Name can't be blank operationId: patch_administration_id_task_lists_id delete: summary: Deletes a task list description: |- Permanently deletes a task list and all its groups and tasks. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Task list deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTaskListDoesNotExist: summary: Returns 404 when task list does not exist value: error: 'Record not found for model name: List' operationId: delete_administration_id_task_lists_id /{administration_id}/task_lists/{task_list_id}/groups{format}: post: summary: Creates a new group in a task list description: |- Creates a new group in the specified task list. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: task_list_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: group: type: object unevaluatedProperties: false properties: name: type: string report_type: type: string enum: - balance_sheet - profit_loss - debtor - creditor - assets description: Report this group is based on; its tasks are generated from the report. required: - name required: [] examples: CreatesANewGroup: summary: Creates a new group value: group: name: New Group responses: '201': description: Group created content: application/json: schema: $ref: '#/components/schemas/task_list_group_response' examples: CreatesANewGroup: summary: Creates a new group value: id: '495429893511710109' name: New Group row_order: 1 report_type: null created_at: '2026-08-14T09:13:06.742Z' updated_at: '2026-08-14T09:13:06.742Z' tasks: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400WhenTheGivenParametersAreInvalid: summary: Returns a 400 when the given parameters are invalid value: error: group is missing, group[name] is missing '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTaskListDoesNotExist: summary: Returns 404 when task list does not exist value: error: 'Record not found for model name: List' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenNameIsMissing: summary: Returns 422 when name is missing value: error: Name can't be blank operationId: post_administration_id_task_lists_task_list_id_groups /{administration_id}/task_lists{format}: get: summary: List all task lists of an administration description: |- Returns a paginated list of task lists in the administration. Each page contains 30 task lists by default. Use the `page` parameter to fetch the next page. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - $ref: '#/components/parameters/per_page' description: 'Amount of task lists per page, default: 30' - $ref: '#/components/parameters/page' description: The page to fetch, starting at 1. responses: '200': description: A list of task lists content: application/json: schema: type: array items: $ref: '#/components/schemas/task_list_response' examples: RequestsWithADifferentPage: summary: Requests with a different page value: [] RequestsWithAPageSizeLargerThanDefault: summary: Requests with a page size larger than default value: - id: '495429893004199288' administration_id: 123 name: 'Task list #1' description: List description deadline_on: null period_begin: '2026-04-01' period_end: '2026-06-30' completed: false template_id: null total_tasks_count: 1 completed_tasks_count: 0 created_at: '2026-08-14T09:13:06.258Z' updated_at: '2026-08-14T09:13:06.258Z' groups: - id: '495429893008393594' name: 'Task list group #1' row_order: 0 report_type: null created_at: '2026-08-14T09:13:06.263Z' updated_at: '2026-08-14T09:13:06.263Z' tasks: - id: '495429893009442171' administration_id: 123 name: 'Task #1' description: Description 1 row_order: 0 completed_at: null report_type: null task_lists_group_id: '495429893008393594' parent_task_id: null created_at: '2026-08-14T09:13:06.263Z' updated_at: '2026-08-14T09:13:06.263Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:06.265Z' updated_at: '2026-08-14T09:13:06.265Z' FetchesWithoutPageAndPerPageAttributesUsingDefaultValues: summary: Fetches without page and per page attributes, using default values value: - id: '495429893089133949' administration_id: 123 name: 'Task list #1' description: List description deadline_on: null period_begin: '2026-04-01' period_end: '2026-06-30' completed: false template_id: null total_tasks_count: 1 completed_tasks_count: 0 created_at: '2026-08-14T09:13:06.339Z' updated_at: '2026-08-14T09:13:06.339Z' groups: - id: '495429893093328255' name: 'Task list group #1' row_order: 0 report_type: null created_at: '2026-08-14T09:13:06.343Z' updated_at: '2026-08-14T09:13:06.343Z' tasks: - id: '495429893094376832' administration_id: 123 name: 'Task #1' description: Description 1 row_order: 0 completed_at: null report_type: null task_lists_group_id: '495429893093328255' parent_task_id: null created_at: '2026-08-14T09:13:06.344Z' updated_at: '2026-08-14T09:13:06.344Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:06.346Z' updated_at: '2026-08-14T09:13:06.346Z' RequestsWithAPageSizeSmallerThanDefault: summary: Requests with a page size smaller than default value: - id: '495429893169874306' administration_id: 123 name: 'Task list #1' description: List description deadline_on: null period_begin: '2026-04-01' period_end: '2026-06-30' completed: false template_id: null total_tasks_count: 1 completed_tasks_count: 0 created_at: '2026-08-14T09:13:06.416Z' updated_at: '2026-08-14T09:13:06.416Z' groups: - id: '495429893173020036' name: 'Task list group #1' row_order: 0 report_type: null created_at: '2026-08-14T09:13:06.420Z' updated_at: '2026-08-14T09:13:06.420Z' tasks: - id: '495429893174068613' administration_id: 123 name: 'Task #1' description: Description 1 row_order: 0 completed_at: null report_type: null task_lists_group_id: '495429893173020036' parent_task_id: null created_at: '2026-08-14T09:13:06.421Z' updated_at: '2026-08-14T09:13:06.421Z' assignee_id: null subtasks: [] notes: [] events: - administration_id: 123 user_id: '495429852315255909' action: task_lists_task_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:06.422Z' updated_at: '2026-08-14T09:13:06.422Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400WhenPerPageIsInvalid: summary: Returns 400 when per page is invalid value: error: per_page is invalid, per_page does not have a valid value Returns400WhenPerPageExceedsMaximum: summary: Returns 400 when per page exceeds maximum value: error: per_page does not have a valid value Returns400WhenPageIsInvalid: summary: Returns 400 when page is invalid value: error: page is invalid, page does not have a valid value operationId: get_administration_id_task_lists post: summary: Creates a new task list description: |- Creates a new task list. Optionally, you can provide a template_id to create the task list from a template. ### Required scope(s) All of: `bank`, `documents`, `estimates`, `sales_invoices`, `settings` and `time_entries` tags: - Task lists security: - bearerAuth: - bank - documents - estimates - sales_invoices - settings - time_entries parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: task_list: type: object unevaluatedProperties: false properties: name: type: string description: type: string deadline_on: type: string format: date period_begin: type: string format: date period_end: type: string format: date template_id: $ref: '#/components/schemas/identifier' description: ID of a task list template to create the list from required: - name examples: CreatesANewTaskList: summary: Creates a new task list value: task_list: name: New Task List responses: '201': description: Task list created content: application/json: schema: $ref: '#/components/schemas/task_list_response' examples: CreatesANewTaskList: summary: Creates a new task list value: id: '495429892582671708' administration_id: 123 name: New Task List description: null deadline_on: null period_begin: '2026-07-01' period_end: '2026-07-31' completed: true template_id: null total_tasks_count: 0 completed_tasks_count: 0 created_at: '2026-08-14T09:13:05.856Z' updated_at: '2026-08-14T09:13:05.856Z' groups: - id: '495429892585817438' name: null row_order: 0 report_type: null created_at: '2026-08-14T09:13:05.859Z' updated_at: '2026-08-14T09:13:05.859Z' tasks: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400WhenTheGivenParametersAreInvalid: summary: Returns a 400 when the given parameters are invalid value: error: task_list is missing, task_list[name] is missing '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenNameIsMissing: summary: Returns 422 when name is missing value: error: Name can't be blank operationId: post_administration_id_task_lists /{administration_id}/tax_rates{format}: get: summary: List all available tax rates for the administration description: |- Returns a paginated list of all available tax rates for the administration ### Required scope(s) Any of: `settings`, `sales_invoices`, `documents` or `estimates` tags: - Tax rates security: - bearerAuth: - settings - bearerAuth: - sales_invoices - bearerAuth: - documents - bearerAuth: - estimates parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: |- Filters are `key:value` terms separated by commas (e.g. `percentage:21,tax_rate_type:sales_invoice`). Any filter you pass replaces the defaults below entirely, so include every key you need. Available filters: | **Filter** | **Type** | **Default** | **Description** | | --- | --- | --- | --- | | name | `String` | | Select tax rates by their full name | | partial_name | `String` | | Select tax rates with this substring in their name | | percentage | `Integer` | | Select tax rates with the specified percentage, e.g. specify `21` for 21% | | tax_rate_type | `String` | `all` | `all`, `general_journal_document`, `purchase_invoice` or `sales_invoice` | | country | `String` | | Select tax rates with the specified country. Must be a 2 letter abbreviation following ISO 3166. Please note that only foreign tax rates will have this field set. Domestic tax rates will not have this set at the moment. | | show_tax | `Boolean` | | Use `true` to tax rates for which tax is shown on the invoice, `false` for when it's not shown. No value will select both | | active | `Boolean` | | Use `true` to select active tax rates. Use `false` for inactive tax rates. No value will select both | | created_after | `String` | | Tax rates created after the given time (exclusive). ISO 8601 formatted string. The time to compare with is in UTC timezone | | updated_after | `String` | | Tax rates updated after the given time (exclusive). ISO 8601 formatted string. The time to compare with is in UTC timezone | You can filter by multiple tax rate types at the same time by separating the values with a pipe (`tax_rate_type:purchase_invoice|sales_invoice`). schema: type: string examples: ReturnsAllTaxRatesCreatedAfterGivenDatetime: summary: Returns all tax rates created after given datetime value: created_after:2026-08-13 09:12:33 UTC ReturnsOnlyTaxRatesUpdatedAfterGivenDatetime: summary: Returns only tax rates updated after given datetime value: updated_after:2026-08-14 09:12:38 UTC ReturnsAllTaxRatesFilteredOnPercentage: summary: Returns all tax rates filtered on percentage value: percentage:21 - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' responses: '200': description: A list of tax rates content: application/json: schema: type: array items: $ref: '#/components/schemas/tax_rate_response' examples: ReturnsAllTaxRatesCreatedAfterGivenDatetime: summary: Returns all tax rates created after given datetime value: - id: '495429853078619274' administration_id: 123 name: 21% btw percentage: '21.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-08-14T09:12:28.177Z' updated_at: '2026-08-14T09:12:28.177Z' - id: '495429853087007883' administration_id: 123 name: 9% btw percentage: '9.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-08-14T09:12:28.190Z' updated_at: '2026-08-14T09:12:28.190Z' - id: '495429853089105036' administration_id: 123 name: 0% btw percentage: '0.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-08-14T09:12:28.192Z' updated_at: '2026-08-14T09:12:28.192Z' - id: '495429853091202189' administration_id: 123 name: 21% btw percentage: '21.0' tax_rate_type: purchase_invoice show_tax: true active: true country: null created_at: '2026-08-14T09:12:28.195Z' updated_at: '2026-08-14T09:12:28.195Z' - id: '495429853093299342' administration_id: 123 name: 9% btw percentage: '9.0' tax_rate_type: purchase_invoice show_tax: true active: true country: null created_at: '2026-08-14T09:12:28.196Z' updated_at: '2026-08-14T09:12:28.196Z' ReturnsPaginatedTaxRatesOnPage2: summary: Returns paginated tax rates on page 2 value: - id: '495429853087007883' administration_id: 123 name: 9% btw percentage: '9.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-08-14T09:12:28.190Z' updated_at: '2026-08-14T09:12:28.190Z' ReturnsAllTaxRatesOfAnAdministration: summary: Returns all tax rates of an administration value: - id: '495429853078619274' administration_id: 123 name: 21% btw percentage: '21.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-08-14T09:12:28.177Z' updated_at: '2026-08-14T09:12:28.177Z' - id: '495429853087007883' administration_id: 123 name: 9% btw percentage: '9.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-08-14T09:12:28.190Z' updated_at: '2026-08-14T09:12:28.190Z' - id: '495429853089105036' administration_id: 123 name: 0% btw percentage: '0.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-08-14T09:12:28.192Z' updated_at: '2026-08-14T09:12:28.192Z' - id: '495429853091202189' administration_id: 123 name: 21% btw percentage: '21.0' tax_rate_type: purchase_invoice show_tax: true active: true country: null created_at: '2026-08-14T09:12:28.195Z' updated_at: '2026-08-14T09:12:28.195Z' - id: '495429853093299342' administration_id: 123 name: 9% btw percentage: '9.0' tax_rate_type: purchase_invoice show_tax: true active: true country: null created_at: '2026-08-14T09:12:28.196Z' updated_at: '2026-08-14T09:12:28.196Z' ReturnsOnlyTaxRatesUpdatedAfterGivenDatetime: summary: Returns only tax rates updated after given datetime value: - id: '495429853078619274' administration_id: 123 name: foo percentage: '21.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-08-14T09:12:28.177Z' updated_at: '2026-08-14T09:13:38.915Z' ReturnsAllTaxRatesFilteredOnPercentage: summary: Returns all tax rates filtered on percentage value: - id: '495429853078619274' administration_id: 123 name: 21% btw percentage: '21.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-08-14T09:12:28.177Z' updated_at: '2026-08-14T09:12:28.177Z' - id: '495429853091202189' administration_id: 123 name: 21% btw percentage: '21.0' tax_rate_type: purchase_invoice show_tax: true active: true country: null created_at: '2026-08-14T09:12:28.195Z' updated_at: '2026-08-14T09:12:28.195Z' ReturnsPaginatedTaxRatesOnPage1: summary: Returns paginated tax rates on page 1 value: - id: '495429853078619274' administration_id: 123 name: 21% btw percentage: '21.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-08-14T09:12:28.177Z' updated_at: '2026-08-14T09:12:28.177Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenTooManyTaxRatesAreRequested: summary: Returns an error when too many tax rates are requested value: error: per_page does not have a valid value operationId: get_administration_id_tax_rates /{administration_id}/time_entries/{id}/resume{format}: patch: summary: Resume a stopped timer description: |- Resumes a stopped time entry. If another time entry is currently active, it will be stopped first. Can only resume timers that started today. ### Required scope(s) `time_entries` tags: - Time entries security: - bearerAuth: - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: Time entry resumed content: application/json: schema: $ref: '#/components/schemas/time_entry_response' examples: ResumesAStoppedTimeEntry: summary: Resumes a stopped time entry value: id: '495429901881443491' administration_id: 123 contact_id: null project_id: null sales_invoice_id: null user_id: '495429852315255909' started_at: '2026-08-14T08:13:00.000Z' ended_at: null description: Designing the website paused_duration: 0 billable: true created_at: '2026-08-14T09:13:14.725Z' updated_at: '2026-08-14T09:13:14.743Z' contact: null user: id: '495429852315255909' name: Moneybird created_at: '2026-08-14T09:12:27.440Z' updated_at: '2026-08-14T09:12:27.691Z' project: null sales_invoice: null events: - administration_id: 123 user_id: '495429852315255909' action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:14.727Z' updated_at: '2026-08-14T09:13:14.727Z' - administration_id: 123 user_id: '495429852315255909' action: time_entry_updated link_entity_id: null link_entity_type: null data: ended_at: - '2026-08-14T11:13:00.000+02:00' - null updated_at: - '2026-08-14T11:13:14.725+02:00' - '2026-08-14T11:13:14.743+02:00' created_at: '2026-08-14T09:13:14.745Z' updated_at: '2026-08-14T09:13:14.745Z' notes: [] '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTimeEntryDoesNotExist: summary: Returns 404 when time entry does not exist value: error: record not found symbolic: id: not_found '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsA422IfTheTimeEntryCannotBeResumed: summary: Returns a 422 if the time entry cannot be resumed value: error: base: - Cannot resume timer details: base: - error: cannot_resume_timer operationId: patch_administration_id_time_entries_id_resume /{administration_id}/time_entries/{id}/stop{format}: patch: summary: Stops an active time entry description: |- Stops an active time entry. If the time entry is already stopped, the time entry is returned unchanged. ### Required scope(s) `time_entries` tags: - Time entries security: - bearerAuth: - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: Time entry stopped content: application/json: schema: $ref: '#/components/schemas/time_entry_response' examples: StopsAnActiveTimeEntry: summary: Stops an active time entry value: id: '495429901764002974' administration_id: 123 contact_id: null project_id: null sales_invoice_id: null user_id: '495429852315255909' started_at: '2026-08-14T09:13:00.000Z' ended_at: '2026-08-14T09:13:00.000Z' description: Designing the website paused_duration: 0 billable: true created_at: '2026-08-14T09:13:14.612Z' updated_at: '2026-08-14T09:13:14.631Z' contact: null user: id: '495429852315255909' name: Moneybird created_at: '2026-08-14T09:12:27.440Z' updated_at: '2026-08-14T09:12:27.691Z' project: null sales_invoice: null events: - administration_id: 123 user_id: '495429852315255909' action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:14.615Z' updated_at: '2026-08-14T09:13:14.615Z' - administration_id: 123 user_id: '495429852315255909' action: time_entry_updated link_entity_id: null link_entity_type: null data: ended_at: - null - '2026-08-14T11:13:00.000+02:00' updated_at: - '2026-08-14T11:13:14.612+02:00' - '2026-08-14T11:13:14.631+02:00' created_at: '2026-08-14T09:13:14.633Z' updated_at: '2026-08-14T09:13:14.633Z' notes: [] '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTimeEntryDoesNotExist: summary: Returns 404 when time entry does not exist value: error: record not found symbolic: id: not_found operationId: patch_administration_id_time_entries_id_stop /{administration_id}/time_entries/{id}{format}: get: summary: Get a time entry by id description: |- Returns a time entry in the administration. ### Required scope(s) `time_entries` tags: - Time entries security: - bearerAuth: - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A time entry content: application/json: schema: $ref: '#/components/schemas/time_entry_response' examples: ReturnsTimeEntryByGivenId: summary: Returns time entry by given id value: id: '495429903562310997' administration_id: 123 contact_id: '495429903549728082' project_id: '495429903553922387' sales_invoice_id: null user_id: '495429852315255909' started_at: '2026-08-14T09:13:00.000Z' ended_at: '2026-08-14T10:13:00.000Z' description: Designing the website paused_duration: 0 billable: true created_at: '2026-08-14T09:13:16.327Z' updated_at: '2026-08-14T09:13:16.327Z' contact: id: '495429903549728082' firstname: null lastname: null company_name: Foobar Holding B.V. user: id: '495429852315255909' name: Moneybird created_at: '2026-08-14T09:12:27.440Z' updated_at: '2026-08-14T09:12:27.691Z' project: id: '495429903553922387' name: Project 1 state: active budget: 10 sales_invoice: null events: - administration_id: 123 user_id: '495429852315255909' action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:16.329Z' updated_at: '2026-08-14T09:13:16.329Z' notes: [] DoesNotIncludeTheSalesInvoiceWhenTheApiUserHasNoAccessToSalesInvoices: summary: Does not include the sales invoice when the api user has no access to sales invoices value: id: '495429903615788379' administration_id: 123 contact_id: '495429903602156888' project_id: '495429903606351193' sales_invoice_id: null user_id: '495429852315255909' started_at: '2026-08-14T09:13:00.000Z' ended_at: '2026-08-14T10:13:00.000Z' description: Designing the website paused_duration: 0 billable: true created_at: '2026-08-14T09:13:16.379Z' updated_at: '2026-08-14T09:13:16.379Z' contact: id: '495429903602156888' firstname: null lastname: null company_name: Foobar Holding B.V. user: id: '495429852315255909' name: Moneybird created_at: '2026-08-14T09:12:27.440Z' updated_at: '2026-08-14T09:12:27.691Z' project: id: '495429903606351193' name: Project 1 state: active budget: 10 events: - administration_id: 123 user_id: '495429852315255909' action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:16.381Z' updated_at: '2026-08-14T09:13:16.381Z' notes: [] '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTimeEntryDoesNotExist: summary: Returns 404 when time entry does not exist value: error: record not found symbolic: id: not_found operationId: get_administration_id_time_entries_id patch: summary: Update a time entry description: |- When updating a time entry, provide only the attributes you want to update. The other attributes will not be changed. `started_at` and `ended_at` are rounded down to full minutes when updating a time entry, with a minimum of 1 minute between them. ### Required scope(s) `time_entries` tags: - Time entries security: - bearerAuth: - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: time_entry: type: object unevaluatedProperties: false properties: started_at: type: string format: date-time description: The start time of the time entry. Rounded down to full minutes. ended_at: type: string format: date-time description: The end time of the time entry. Rounded down to full minutes. A time entry without `ended_at` is considered a running (active) time entry. paused_duration: type: integer description: Total paused duration in seconds, is rounded down to full minutes. contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. project_id: $ref: '#/components/schemas/identifier' description: Should be a valid project id. sales_invoice_id: $ref: '#/components/schemas/identifier' description: Should be a valid sales invoice id. description: type: string description: A description of how the time was spent. May be shown on the invoice. billable: type: - boolean - string description: Whether this time entry is billable to the client. default: true required: [] required: [] examples: UpdatingTheTimeEntryDescription: summary: Updating the time entry description value: time_entry: description: Updated description responses: '200': description: Time entry updated content: application/json: schema: $ref: '#/components/schemas/time_entry_response' examples: UpdatingTheTimeEntryDescription: summary: Updating the time entry description value: id: '495429903265563963' administration_id: 123 contact_id: '495429903255078200' project_id: '495429903258223929' sales_invoice_id: null user_id: '495429852315255909' started_at: '2026-08-14T09:13:00.000Z' ended_at: '2026-08-14T10:13:00.000Z' description: Updated description paused_duration: 0 billable: true created_at: '2026-08-14T09:13:16.044Z' updated_at: '2026-08-14T09:13:16.059Z' contact: id: '495429903255078200' firstname: null lastname: null company_name: Foobar Holding B.V. user: id: '495429852315255909' name: Moneybird created_at: '2026-08-14T09:12:27.440Z' updated_at: '2026-08-14T09:12:27.691Z' project: id: '495429903258223929' name: Project 1 state: active budget: 10 sales_invoice: null events: - administration_id: 123 user_id: '495429852315255909' action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:16.046Z' updated_at: '2026-08-14T09:13:16.046Z' - administration_id: 123 user_id: '495429852315255909' action: time_entry_updated link_entity_id: null link_entity_type: null data: description: - Designing the website - Updated description updated_at: - '2026-08-14T11:13:16.044+02:00' - '2026-08-14T11:13:16.059+02:00' created_at: '2026-08-14T09:13:16.061Z' updated_at: '2026-08-14T09:13:16.061Z' notes: [] '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTimeEntryDoesNotExist: summary: Returns 404 when time entry does not exist value: error: record not found symbolic: id: not_found '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenInvalidDataIsProvided: summary: Returns 422 when invalid data is provided value: error: description: - can't be blank details: description: - error: blank operationId: patch_administration_id_time_entries_id delete: summary: Delete a time entry description: |- Delete a time entry by id. ### Required scope(s) `time_entries` tags: - Time entries security: - bearerAuth: - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Time entry deleted '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTimeEntryDoesNotExist: summary: Returns 404 when time entry does not exist value: error: record not found symbolic: id: not_found operationId: delete_administration_id_time_entries_id /{administration_id}/time_entries/{time_entry_id}/notes/{id}{format}: delete: summary: Destroys note from entity description: |- Deletes a note from a time entry. ### Required scope(s) `time_entries` tags: - Time entries security: - bearerAuth: - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: time_entry_id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Note deleted operationId: delete_administration_id_time_entries_time_entry_id_notes_id /{administration_id}/time_entries/{time_entry_id}/notes{format}: post: summary: Adds note to entity description: |- Adds a note to the time entry. ### Required scope(s) `time_entries` tags: - Time entries security: - bearerAuth: - time_entries parameters: - $ref: '#/components/parameters/administration_id' - name: time_entry_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: note: type: object unevaluatedProperties: false properties: note: type: string description: '**Required**. Text for the note or to-do.' todo: type: - boolean - string description: If `true` the note is a to-do. assignee_id: $ref: '#/components/schemas/identifier' description: Assign to-do to user. Should be a valid user id. If assignee_id is provided the note will be a to-do. required: [] required: [] examples: CreateANote: summary: Create a note value: note: note: Text of the note assignee_id: 495429902010418370 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '495429902112130231' administration_id: 123 entity_id: '495429902032438453' entity_type: TimeEntry user_id: '495429852315255909' assignee_id: '495429902010418351' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-08-14T09:13:14.944Z' updated_at: '2026-08-14T09:13:14.944Z' '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: Returns422WhenInvalidNoteDataIsProvided: summary: Returns 422 when invalid note data is provided value: error: note: - can't be blank todo_type: - can't be blank details: note: - error: blank todo_type: - error: blank operationId: post_administration_id_time_entries_time_entry_id_notes /{administration_id}/time_entries{format}: get: summary: List all time entries description: |- Returns a paginated list of time entries in the administration. ### Required scope(s) `time_entries` tags: - Time entries security: - bearerAuth: - time_entries parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false description: |- Filters are `key:value` terms separated by commas (e.g. `period:this_year,state:all`). Any filter you pass replaces the defaults below entirely, so include every key you need — in particular pass an explicit `period` (a named period or a `YYYYMMDD..YYYYMMDD` range) to look beyond the default financial year. Available filters: | **Filter** | **Type** | **Default** | **Description** | | --- | --- | --- | --- | | state | `String` | `all` | `all`, `open` or `non_billable` | | period | `String` | `this_year` | This can either be the description of a period (`this_week`, `prev_week`, `next_week`, `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`) or a custom period (`201301..201302`, `20130101..20130131`) | | contact_id | `Integer` | | Select time entries belonging to a certain contact | | include_nil_contacts | `Boolean` | false | Whether to include time entries that have no assigned contact | | include_active | `Boolean` | false | Whether to include active time entries i.e. time entries without ended_at | | project_id | `Integer` | | Select time entries belonging to a certain project | | user_id | `Integer` | | Select time entries belonging to a certain user | | day | `Date` | | Select time entries on a specific date | You can filter by multiple states at the same time as well. To do this, separate the state values by a pipe: `state:open|non_billable`. schema: type: string default: period:this_year examples: ReturnsAllTimeEntriesFilteredOnPeriod: summary: Returns all time entries filtered on period value: period:this_month ReturnsAllTimeEntriesFilteredOnState: summary: Returns all time entries filtered on state value: state:non_billable - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per_page' - name: query in: query required: false schema: type: string description: Allows filtering by time entry description. examples: ReturnsAllTimeEntriesFilteredOnSearchQuery: summary: Returns all time entries filtered on search query value: Custom responses: '200': description: A list of time entries content: application/json: schema: type: array items: $ref: '#/components/schemas/time_entry_response' examples: ReturnsPaginatedTimeEntriesOnPage1: summary: Returns paginated time entries on page 1 value: - id: '495429902208599235' administration_id: 123 contact_id: '495429902196016320' project_id: '495429902200210625' sales_invoice_id: null user_id: '495429852315255909' started_at: '2026-08-14T09:13:00.000Z' ended_at: '2026-08-14T10:13:00.000Z' description: Designing the website paused_duration: 0 billable: true created_at: '2026-08-14T09:13:15.037Z' updated_at: '2026-08-14T09:13:15.037Z' contact: id: '495429902196016320' firstname: null lastname: null company_name: Foobar Holding B.V. user: id: '495429852315255909' name: Moneybird created_at: '2026-08-14T09:12:27.440Z' updated_at: '2026-08-14T09:12:27.691Z' project: id: '495429902200210625' name: Project 1 state: active budget: 10 sales_invoice: null events: - administration_id: 123 user_id: '495429852315255909' action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:15.038Z' updated_at: '2026-08-14T09:13:15.038Z' notes: [] ReturnsAllTimeEntriesFilteredOnPeriod: summary: Returns all time entries filtered on period value: - id: '495429902302971087' administration_id: 123 contact_id: '495429902289339596' project_id: '495429902294582477' sales_invoice_id: null user_id: '495429852315255909' started_at: '2026-08-14T09:13:00.000Z' ended_at: '2026-08-14T10:13:00.000Z' description: Designing the website paused_duration: 0 billable: true created_at: '2026-08-14T09:13:15.126Z' updated_at: '2026-08-14T09:13:15.126Z' contact: id: '495429902289339596' firstname: null lastname: null company_name: Foobar Holding B.V. user: id: '495429852315255909' name: Moneybird created_at: '2026-08-14T09:12:27.440Z' updated_at: '2026-08-14T09:12:27.691Z' project: id: '495429902294582477' name: Project 1 state: active budget: 10 sales_invoice: null events: - administration_id: 123 user_id: '495429852315255909' action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:15.129Z' updated_at: '2026-08-14T09:13:15.129Z' notes: [] - id: '495429902322894034' administration_id: 123 contact_id: null project_id: null sales_invoice_id: null user_id: 1 started_at: '2026-08-14T09:13:00.000Z' ended_at: '2026-08-14T10:13:00.000Z' description: Designing the website paused_duration: 0 billable: false created_at: '2026-08-14T09:13:15.145Z' updated_at: '2026-08-14T09:13:15.145Z' contact: null user: id: 1 name: Edwin Vlieg created_at: '2026-08-14T09:13:15.136Z' updated_at: '2026-08-14T09:13:15.141Z' project: null sales_invoice: null events: - administration_id: 123 user_id: 1 action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:15.147Z' updated_at: '2026-08-14T09:13:15.147Z' notes: [] - id: '495429902341768405' administration_id: 123 contact_id: null project_id: null sales_invoice_id: null user_id: 2 started_at: '2026-08-14T09:13:00.000Z' ended_at: '2026-08-14T10:13:00.000Z' description: Designing the website paused_duration: 0 billable: true created_at: '2026-08-14T09:13:15.163Z' updated_at: '2026-08-14T09:13:15.163Z' contact: null user: id: 2 name: Edwin Vlieg created_at: '2026-08-14T09:13:15.155Z' updated_at: '2026-08-14T09:13:15.159Z' project: null sales_invoice: null events: - administration_id: 123 user_id: 2 action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:15.165Z' updated_at: '2026-08-14T09:13:15.165Z' notes: [] ReturnsAllTimeEntriesFilteredOnState: summary: Returns all time entries filtered on state value: - id: '495429902442431713' administration_id: 123 contact_id: null project_id: null sales_invoice_id: null user_id: 1 started_at: '2026-08-14T09:13:00.000Z' ended_at: '2026-08-14T10:13:00.000Z' description: Designing the website paused_duration: 0 billable: false created_at: '2026-08-14T09:13:15.259Z' updated_at: '2026-08-14T09:13:15.259Z' contact: null user: id: 1 name: Edwin Vlieg created_at: '2026-08-14T09:13:15.251Z' updated_at: '2026-08-14T09:13:15.256Z' project: null sales_invoice: null events: - administration_id: 123 user_id: 1 action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:15.261Z' updated_at: '2026-08-14T09:13:15.261Z' notes: [] ReturnsAllTimeEntriesFilteredOnSearchQuery: summary: Returns all time entries filtered on search query value: - id: '495429902787413247' administration_id: 123 contact_id: null project_id: null sales_invoice_id: null user_id: 3 started_at: '2026-08-14T09:13:00.000Z' ended_at: '2026-08-14T10:13:00.000Z' description: Custom description paused_duration: 0 billable: true created_at: '2026-08-14T09:13:15.588Z' updated_at: '2026-08-14T09:13:15.588Z' contact: null user: id: 3 name: Edwin Vlieg created_at: '2026-08-14T09:13:15.580Z' updated_at: '2026-08-14T09:13:15.584Z' project: null sales_invoice: null events: - administration_id: 123 user_id: 3 action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:15.590Z' updated_at: '2026-08-14T09:13:15.590Z' notes: [] ReturnsPaginatedTimeEntriesOnPage2: summary: Returns paginated time entries on page 2 value: - id: '495429903056897312' administration_id: 123 contact_id: null project_id: null sales_invoice_id: null user_id: 1 started_at: '2026-08-14T09:13:00.000Z' ended_at: '2026-08-14T10:13:00.000Z' description: Designing the website paused_duration: 0 billable: false created_at: '2026-08-14T09:13:15.845Z' updated_at: '2026-08-14T09:13:15.845Z' contact: null user: id: 1 name: Edwin Vlieg created_at: '2026-08-14T09:13:15.838Z' updated_at: '2026-08-14T09:13:15.842Z' project: null sales_invoice: null events: - administration_id: 123 user_id: 1 action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:15.847Z' updated_at: '2026-08-14T09:13:15.847Z' notes: [] ReturnsAllTimeEntriesOfAnAdministration: summary: Returns all time entries of an administration value: - id: '495429903120860457' administration_id: 123 contact_id: '495429903109326118' project_id: '495429903113520423' sales_invoice_id: null user_id: '495429852315255909' started_at: '2026-08-14T09:13:00.000Z' ended_at: '2026-08-14T10:13:00.000Z' description: Designing the website paused_duration: 0 billable: true created_at: '2026-08-14T09:13:15.906Z' updated_at: '2026-08-14T09:13:15.906Z' contact: id: '495429903109326118' firstname: null lastname: null company_name: Foobar Holding B.V. user: id: '495429852315255909' name: Moneybird created_at: '2026-08-14T09:12:27.440Z' updated_at: '2026-08-14T09:12:27.691Z' project: id: '495429903113520423' name: Project 1 state: active budget: 10 sales_invoice: null events: - administration_id: 123 user_id: '495429852315255909' action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:15.908Z' updated_at: '2026-08-14T09:13:15.908Z' notes: [] - id: '495429903136589100' administration_id: 123 contact_id: null project_id: null sales_invoice_id: null user_id: 1 started_at: '2026-08-14T09:13:00.000Z' ended_at: '2026-08-14T10:13:00.000Z' description: Designing the website paused_duration: 0 billable: false created_at: '2026-08-14T09:13:15.922Z' updated_at: '2026-08-14T09:13:15.922Z' contact: null user: id: 1 name: Edwin Vlieg created_at: '2026-08-14T09:13:15.915Z' updated_at: '2026-08-14T09:13:15.919Z' project: null sales_invoice: null events: - administration_id: 123 user_id: 1 action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:15.923Z' updated_at: '2026-08-14T09:13:15.923Z' notes: [] - id: '495429903152317743' administration_id: 123 contact_id: null project_id: null sales_invoice_id: null user_id: 2 started_at: '2026-08-14T09:13:00.000Z' ended_at: '2026-08-14T10:13:00.000Z' description: Designing the website paused_duration: 0 billable: true created_at: '2026-08-14T09:13:15.937Z' updated_at: '2026-08-14T09:13:15.937Z' contact: null user: id: 2 name: Edwin Vlieg created_at: '2026-08-14T09:13:15.930Z' updated_at: '2026-08-14T09:13:15.934Z' project: null sales_invoice: null events: - administration_id: 123 user_id: 2 action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:15.938Z' updated_at: '2026-08-14T09:13:15.938Z' notes: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenTooManyTimeEntriesAreRequested: summary: Returns an error when too many time entries are requested value: error: per_page does not have a valid value '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorMessageIfFilterUserIdIsNotFound: summary: Returns an error message if filter user id is not found value: error: record not found symbolic: user_id: not_found ReturnsAnErrorMessageIfFilterContactIdIsNotFound: summary: Returns an error message if filter contact id is not found value: error: record not found symbolic: contact_id: not_found operationId: get_administration_id_time_entries post: summary: Create a time entry description: |- API to post a time entry. Used to create time entries to record time spent by an employee. Api user needs access to both sales invoices and time entries for this action. `started_at` and `ended_at` are rounded down to full minutes when creating a time entry, with a minimum of 1 minute between them. ### Required scope(s) `time_entries` tags: - Time entries security: - bearerAuth: - time_entries parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: time_entry: type: object unevaluatedProperties: false properties: user_id: $ref: '#/components/schemas/identifier' description: The employee for which the time should be entered. Should be a valid user id. started_at: $ref: '#/components/schemas/timestamp' description: The start time of the time entry. Rounded down to full minutes. ended_at: $ref: '#/components/schemas/timestamp' description: The end time of the time entry. Rounded down to full minutes. Omit to create a running (active) time entry. description: type: string description: A description on how the time was spent. May be shown on the invoice. contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. project_id: $ref: '#/components/schemas/identifier' description: Should be a valid project id. sales_invoice_id: $ref: '#/components/schemas/identifier' description: Should be a valid sales invoice id. billable: type: - boolean - string default: true description: Whether this time entry is billable to the client. paused_duration: type: integer description: Total paused duration in seconds, is rounded down to full minutes. required: - user_id - started_at - description required: [] examples: CreateABasicTimeEntry: summary: Create a basic time entry value: time_entry: started_at: '2026-08-14T09:13:00.000Z' ended_at: '2026-08-14T10:13:00.000Z' description: Test contact_id: 495429903350498600 project_id: 495429903354692900 user_id: 495429852315255940 billable: false responses: '201': description: Time entry created content: application/json: schema: $ref: '#/components/schemas/time_entry_response' examples: CreateABasicTimeEntry: summary: Create a basic time entry value: id: '495429903373567298' administration_id: 123 contact_id: '495429903350498623' project_id: '495429903354692928' sales_invoice_id: null user_id: '495429852315255909' started_at: '2026-08-14T09:13:00.000Z' ended_at: '2026-08-14T10:13:00.000Z' description: Test paused_duration: 0 billable: false created_at: '2026-08-14T09:13:16.148Z' updated_at: '2026-08-14T09:13:16.148Z' contact: id: '495429903350498623' firstname: null lastname: null company_name: Foobar Holding B.V. user: id: '495429852315255909' name: Moneybird created_at: '2026-08-14T09:12:27.440Z' updated_at: '2026-08-14T09:12:27.691Z' project: id: '495429903354692928' name: Project 1 state: active budget: 10 sales_invoice: null events: - administration_id: 123 user_id: '495429852315255909' action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-08-14T09:13:16.149Z' updated_at: '2026-08-14T09:13:16.149Z' notes: [] '402': description: Payment required content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns402WhenLimitIsReached: summary: Returns 402 when limit is reached value: error: creating time entries is limited symbolic: administration: limit_reached '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenSalesInvoiceIdDoesNotExist: summary: Returns 404 when sales invoice id does not exist value: error: no sales invoice with given ID found symbolic: sales_invoice_id: not_found '422': description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' examples: ReturnsAnErrorWhenInvalidDetailsAreProvided: summary: Returns an error when invalid details are provided value: error: ended_at: - cannot be before the start time description: - can't be blank details: ended_at: - error: ended_at_before_started_at description: - error: blank operationId: post_administration_id_time_entries /{administration_id}/users{format}: get: summary: List all users description: |- Returns a list of users within the administration. ### Required scope(s) `settings` tags: - Users security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: include_inactive in: query required: false schema: type: - boolean - string examples: IncludesInactiveUsersWhenIncludeInactiveIsTrue: summary: Includes inactive users when include inactive is true value: 'true' - name: include_accountants in: query required: false schema: type: - boolean - string examples: IncludesAccountsWhenIncludeAccountantsIsTrue: summary: Includes accounts when include accountants is true value: 'true' - name: include_api_users in: query required: false schema: type: - boolean - string examples: IncludesApiUsersWhenIncludeApiUsersIsTrue: summary: Includes api users when include api users is true value: 'true' responses: '200': description: A list of users content: application/json: schema: type: array items: $ref: '#/components/schemas/extended_user_response' examples: DoesNotIncludeApiUsersWhenIncludeApiUsersIsFalse: summary: Does not include api users when include api users is false value: - id: '495429852342518886' name: Mo Neybird created_at: '2026-08-14T09:12:27.477Z' updated_at: '2026-08-14T09:12:27.715Z' email: info@moneybird.nl email_validated: true language: nl time_zone: Europe/Amsterdam user_type: owner permissions: - sales_invoices - documents - estimates - bank - settings - ownership - time_entries OnlyIncludesPermissionForUsersWithThisAdministration: summary: Only includes permission for users with this administration value: - id: '495429852342518886' name: Mo Neybird created_at: '2026-08-14T09:12:27.477Z' updated_at: '2026-08-14T09:12:27.715Z' email: info@moneybird.nl email_validated: true language: nl time_zone: Europe/Amsterdam user_type: owner permissions: - sales_invoices - documents - estimates - bank - settings - ownership - time_entries - id: '495429989074732905' name: A. Arend. created_at: '2026-08-14T09:14:37.878Z' updated_at: '2026-08-14T09:14:38.072Z' email: john+6@example.com email_validated: true language: nl time_zone: Europe/Amsterdam user_type: employee permissions: - time_entries ReturnsAllActiveUsersOfAnAdministration: summary: Returns all active users of an administration value: - id: '495429852342518886' name: Mo Neybird created_at: '2026-08-14T09:12:27.477Z' updated_at: '2026-08-14T09:12:27.715Z' email: info@moneybird.nl email_validated: true language: nl time_zone: Europe/Amsterdam user_type: owner permissions: - sales_invoices - documents - estimates - bank - settings - ownership - time_entries - id: '495429989314856866' name: John Doe created_at: '2026-08-14T09:14:38.107Z' updated_at: '2026-08-14T09:14:38.111Z' email: john+6@example.com email_validated: true language: nl time_zone: Europe/Amsterdam user_type: employee permissions: - time_entries IncludesInactiveUsersWhenIncludeInactiveIsTrue: summary: Includes inactive users when include inactive is true value: - id: '495429852342518886' name: Mo Neybird created_at: '2026-08-14T09:12:27.477Z' updated_at: '2026-08-14T09:12:27.715Z' email: info@moneybird.nl email_validated: true language: nl time_zone: Europe/Amsterdam user_type: owner permissions: - sales_invoices - documents - estimates - bank - settings - ownership - time_entries - id: '495429989362042788' name: A. User. created_at: '2026-08-14T09:14:38.152Z' updated_at: '2026-08-14T09:14:38.161Z' IncludesAccountsWhenIncludeAccountantsIsTrue: summary: Includes accounts when include accountants is true value: - id: '495429852342518886' name: Mo Neybird created_at: '2026-08-14T09:12:27.477Z' updated_at: '2026-08-14T09:12:27.715Z' email: info@moneybird.nl email_validated: true language: nl time_zone: Europe/Amsterdam user_type: owner permissions: - sales_invoices - documents - estimates - bank - settings - ownership - time_entries - id: '495429989412374438' name: A. Accountant. created_at: '2026-08-14T09:14:38.200Z' updated_at: '2026-08-14T09:14:38.204Z' email: john+6@example.com email_validated: true language: nl time_zone: Europe/Amsterdam user_type: accountant permissions: - sales_invoices - documents - estimates - bank - settings - time_entries IncludesApiUsersWhenIncludeApiUsersIsTrue: summary: Includes api users when include api users is true value: - id: '495429852342518886' name: Mo Neybird created_at: '2026-08-14T09:12:27.477Z' updated_at: '2026-08-14T09:12:27.715Z' email: info@moneybird.nl email_validated: true language: nl time_zone: Europe/Amsterdam user_type: owner permissions: - sales_invoices - documents - estimates - bank - settings - ownership - time_entries - id: 1 name: Edwin Vlieg created_at: '2026-08-14T09:14:38.243Z' updated_at: '2026-08-14T09:14:38.247Z' email: example+1@dev.null.moneybird.net email_validated: true language: nl time_zone: Europe/Amsterdam user_type: api_user permissions: - time_entries '429': description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later examples: Returns429WhenExceedingTheRateLimit: summary: Returns 429 when exceeding the rate limit value: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 operationId: get_administration_id_users /{administration_id}/verifications{format}: get: summary: Retrieve verifications description: |- Retrieve all the verifications within an administration. Returns all verified e-mail addresses and bank account numbers, as well as the verified chamber of commerce number and tax number. ### Required scope(s) `settings` tags: - Verifications security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' responses: '200': description: A list of verifications content: application/json: schema: $ref: '#/components/schemas/verification_response' examples: IfBankAccountNumberVerificationsAreStillPending: summary: If bank account number verifications are still pending value: emails: - validated1@dev.null.moneybird.net - validated2@dev.null.moneybird.net chamber_of_commerce_number: '12345678' tax_number: NL852924574B01 IfEmailVerificationsAreStillPending: summary: If email verifications are still pending value: bank_account_numbers: - NL42TEST0000000002 chamber_of_commerce_number: '12345678' tax_number: NL852924574B01 IfTaxNumberVerificationIsStillPending: summary: If tax number verification is still pending value: emails: - validated1@dev.null.moneybird.net - validated2@dev.null.moneybird.net bank_account_numbers: - NL42TEST0000000002 chamber_of_commerce_number: '12345678' IfNoVerificationsArePresent: summary: If no verifications are present value: {} IfChamberOfCommerceNumberVerificationIsStillPending: summary: If chamber of commerce number verification is still pending value: emails: - validated1@dev.null.moneybird.net - validated2@dev.null.moneybird.net bank_account_numbers: - NL42TEST0000000002 ReturnsAllVerificationsOfAnAdministration: summary: Returns all verifications of an administration value: emails: - validated1@dev.null.moneybird.net - validated2@dev.null.moneybird.net bank_account_numbers: - NL42TEST0000000002 chamber_of_commerce_number: '12345678' tax_number: NL852924574B01 operationId: get_administration_id_verifications /{administration_id}/webhooks/{id}/activate{format}: patch: summary: Activate a webhook description: |- Activates a previously deactivated webhook. After activation, the webhook will resume receiving event notifications. ### Required scope(s) `settings` tags: - Webhooks security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: Webhook activated content: application/json: schema: $ref: '#/components/schemas/webhook_response' examples: ActivatesAWebhook: summary: Activates a webhook value: id: '495429903674508640' administration_id: 123 url: http://example.com/create_webhook enabled_events: [] last_http_status: null last_http_body: null token: 1nTAoTYEQrL4daiUV3e6dUqN deactivated_at: null '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404WhenTheWebhookCannotBeFound: summary: Returns a 404 when the webhook cannot be found value: error: 'Record not found for model name: Webhook' operationId: patch_administration_id_webhooks_id_activate /{administration_id}/webhooks/{id}/deactivate{format}: patch: summary: Deactivate a webhook description: |- Deactivates a webhook. A deactivated webhook will not receive new event notifications, but existing retries will still be processed. The webhook can be reactivated at any time. ### Required scope(s) `settings` tags: - Webhooks security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: Webhook deactivated content: application/json: schema: $ref: '#/components/schemas/webhook_response' examples: DeactivatesAWebhook: summary: Deactivates a webhook value: id: '495429903774123373' administration_id: 123 url: http://example.com/create_webhook enabled_events: [] last_http_status: null last_http_body: null token: orYFCAstPV2doWF2jDV9DTTU deactivated_at: '2026-08-14T09:13:16.542Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA404WhenTheWebhookCannotBeFound: summary: Returns a 404 when the webhook cannot be found value: error: 'Record not found for model name: Webhook' operationId: patch_administration_id_webhooks_id_deactivate /{administration_id}/webhooks/{id}{format}: delete: summary: Delete a webhook description: |- Remove a registered webhook. ### Required scope(s) `settings` tags: - Webhooks security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Webhook deleted '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_webhooks_id /{administration_id}/webhooks{format}: get: summary: List all webhooks description: |- List all registered webhooks for the administration. ### Required scope(s) `settings` tags: - Webhooks security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' responses: '200': description: A list of webhooks content: application/json: schema: type: array items: $ref: '#/components/schemas/webhook_response' examples: ReturnsAllWebhooksOfAnAdministration: summary: Returns all webhooks of an administration value: - id: '495429903811872113' administration_id: 123 url: http://example.com/create_webhook enabled_events: [] last_http_status: null last_http_body: null token: yexbvBNTmkx9ppUj8WfniLxY deactivated_at: null operationId: get_administration_id_webhooks post: summary: Create a webhook description: |- Creates a new webhook. The provided URL should respond with a 200 HTTP status. After creation, the URL will receive notifications when events on documents in the administration occur. It is also possible to subscribe to certain events by adding an array with events you would like to receive notifications from. For a full list of available events and event groups, see the [webhook events documentation](https://developer.moneybird.com/webhooks/events).

We strongly recommend that you use a secure HTTPS endpoint for receiving payload from Moneybird.
If you use unencrypted HTTP, anyone on the network may be able to listen in on sensitive information like contacts and invoices.

### Required scope(s) `settings` tags: - Webhooks security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: url: type: string description: The HTTPS endpoint URL that will receive webhook notifications. Must respond with HTTP 200 on creation. enabled_events: type: array description: List of events to subscribe to. See [webhook events](https://developer.moneybird.com/webhooks/events) for all available events and event groups. items: type: - string required: - url examples: CreatesAWebhook: summary: Creates a webhook value: url: http://www.mocky.io/v2/5185415ba171ea3a00704eed CreatesAWebhookThatIsSubscribedToEnabledEvents: summary: Creates a webhook that is subscribed to enabled events value: url: http://www.mocky.io/v2/5185415ba171ea3a00704eed enabled_events: - contact_created responses: '201': description: Webhook created content: application/json: schema: $ref: '#/components/schemas/webhook_response' examples: CreatesAWebhook: summary: Creates a webhook value: id: '495429903939798397' administration_id: 123 url: http://www.mocky.io/v2/5185415ba171ea3a00704eed enabled_events: [] last_http_status: null last_http_body: null token: aiXiuNshe5RKpMTJwk6bnfiS secret: 6e3106a453b2460aa2ceadc9943eb3d55dbb1e0f64ba17f6452b7f586f32f0ad deactivated_at: null CreatesAWebhookThatIsSubscribedToEnabledEvents: summary: Creates a webhook that is subscribed to enabled events value: id: '495429903983838595' administration_id: 123 url: http://www.mocky.io/v2/5185415ba171ea3a00704eed enabled_events: - contact_created last_http_status: null last_http_body: null token: 6NzYJtZ4x5QNWCn5UcB65gMv secret: 779fecf094b6c81fcd3c2ade87b40517a0da22339856213a0855ec56f2cfd72f deactivated_at: null '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenFieldsAreNotProvided: summary: Returns an error when fields are not provided value: error: Url is required symbolic: url: required ReturnsAnErrorWhenEventsIsProvided: summary: Returns an error when events is provided value: error: '''events'' has been removed from webhooks, use ''enabled_events''' symbolic: events: removed operationId: post_administration_id_webhooks /{administration_id}/workflows/{id}{format}: get: summary: Get a workflow by id description: |- Returns all information about a workflow. ### Required scope(s) `settings` tags: - Workflows security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '200': description: A workflow content: application/json: schema: $ref: '#/components/schemas/workflow_response' examples: ReturnsAWorkflowWithSteps: summary: Returns a workflow with steps value: id: '495429853366977679' administration_id: 123 type: InvoiceWorkflow name: Standaard default: true currency: EUR language: nl active: true prices_are_incl_tax: false payment_methods: [] collection_method: null number_of_collections: 0 show_qr_code: true created_at: '2026-08-14T09:12:28.454Z' updated_at: '2026-08-14T09:12:28.454Z' steps: - id: '495429853375366288' administration_id: 123 step_order: 0 due_interval: 14 reminder_delay: 0 reminder_text: null reminder_auto_send: false action: null created_at: '2026-08-14T09:12:28.464Z' updated_at: '2026-08-14T09:12:28.464Z' - id: '495429853377463441' administration_id: 123 step_order: 1 due_interval: 10 reminder_delay: 0 reminder_text: |- Geachte {recipient.name}, Uit onze administratie blijkt dat u de onderstaande facturen nog niet voldaan heeft. We willen u erop wijzen dat de betaaltermijn van deze facturen verstreken is en verzoeken u vriendelijk doch dringend om de betaling zo spoedig mogelijk te voldoen. {reminders_table} Mochten de betalingen en deze herinnering elkaar kruisen, dan kunt u deze herinnering als niet verzonden beschouwen. Via deze link kunt u naar het overzicht van uw {recipient.show_open_invoices_online_url}. Met vriendelijke groet, {company.company_name} reminder_auto_send: false action: null created_at: '2026-08-14T09:12:28.467Z' updated_at: '2026-08-14T09:12:28.467Z' - id: '495429853383754898' administration_id: 123 step_order: 2 due_interval: 5 reminder_delay: 0 reminder_text: |- Geachte {recipient.name}, Ondanks een eerdere herinnering blijkt uit onze administratie dat u de onderstaande facturen nog niet voldaan heeft. We willen u er op wijzen dat de betaaltermijn van deze facturen verstreken is en verzoeken u vriendelijk doch dringend om de betaling zo spoedig mogelijk te voldoen. {reminders_table} Mochten de betalingen en deze herinnering elkaar kruisen, dan kunt u deze herinnering als niet verzonden beschouwen. Wanneer betaling uitblijft, zullen wij de vordering uit handen moeten geven aan een incassobureau en de wettelijke incassokosten in rekening brengen. Via deze link kunt u naar het overzicht van uw {recipient.show_open_invoices_online_url}. Met vriendelijke groet, {company.company_name} reminder_auto_send: false action: null created_at: '2026-08-14T09:12:28.468Z' updated_at: '2026-08-14T09:12:28.468Z' - id: '495429853385852051' administration_id: 123 step_order: 3 due_interval: 5 reminder_delay: 0 reminder_text: |- Geachte {recipient.name}, Ondanks eerdere herinneringen blijkt uit onze administratie dat u de onderstaande facturen nog niet voldaan heeft. Dit is de derde herinnering voor het voldoen van de vordering, voordat de vordering uit handen gegeven zal worden aan een incassobureau. {reminders_table} Wij verzoeken u om de betalingen binnen 5 dagen te voldoen. Wanneer betaling uitblijft, zullen wij de vordering uit handen geven aan een incassobureau en brengen we de wettelijke incassokosten in rekening. Via deze link kunt u naar het overzicht van uw {recipient.show_open_invoices_online_url}. Met vriendelijke groet, {company.company_name} reminder_auto_send: false action: null created_at: '2026-08-14T09:12:28.475Z' updated_at: '2026-08-14T09:12:28.475Z' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenWorkflowDoesNotExist: summary: Returns 404 when workflow does not exist value: error: 'Record not found for model name: Workflow' operationId: get_administration_id_workflows_id /{administration_id}/workflows{format}: get: summary: Retrieve available workflows description: |- Returns a list of all the workflows of an administration. ### Required scope(s) `settings` tags: - Workflows security: - bearerAuth: - settings parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' responses: '200': description: A list of workflows content: application/json: schema: type: array items: $ref: '#/components/schemas/workflow_response' examples: ReturnsAllWorkflowsOfAnAdministration: summary: Returns all workflows of an administration value: - id: '495429853572498581' administration_id: 123 type: EstimateWorkflow name: Standaard default: true currency: EUR language: nl active: true prices_are_incl_tax: false payment_methods: [] collection_method: null number_of_collections: 0 show_qr_code: true created_at: '2026-08-14T09:12:28.651Z' updated_at: '2026-08-14T09:12:28.651Z' steps: - id: '495429853575644310' administration_id: 123 step_order: 0 due_interval: 14 reminder_delay: 0 reminder_text: null reminder_auto_send: false action: null created_at: '2026-08-14T09:12:28.656Z' updated_at: '2026-08-14T09:12:28.656Z' - id: '495429853366977679' administration_id: 123 type: InvoiceWorkflow name: Standaard default: true currency: EUR language: nl active: true prices_are_incl_tax: false payment_methods: [] collection_method: null number_of_collections: 0 show_qr_code: true created_at: '2026-08-14T09:12:28.454Z' updated_at: '2026-08-14T09:12:28.454Z' steps: - id: '495429853375366288' administration_id: 123 step_order: 0 due_interval: 14 reminder_delay: 0 reminder_text: null reminder_auto_send: false action: null created_at: '2026-08-14T09:12:28.464Z' updated_at: '2026-08-14T09:12:28.464Z' - id: '495429853377463441' administration_id: 123 step_order: 1 due_interval: 10 reminder_delay: 0 reminder_text: |- Geachte {recipient.name}, Uit onze administratie blijkt dat u de onderstaande facturen nog niet voldaan heeft. We willen u erop wijzen dat de betaaltermijn van deze facturen verstreken is en verzoeken u vriendelijk doch dringend om de betaling zo spoedig mogelijk te voldoen. {reminders_table} Mochten de betalingen en deze herinnering elkaar kruisen, dan kunt u deze herinnering als niet verzonden beschouwen. Via deze link kunt u naar het overzicht van uw {recipient.show_open_invoices_online_url}. Met vriendelijke groet, {company.company_name} reminder_auto_send: false action: null created_at: '2026-08-14T09:12:28.467Z' updated_at: '2026-08-14T09:12:28.467Z' - id: '495429853383754898' administration_id: 123 step_order: 2 due_interval: 5 reminder_delay: 0 reminder_text: |- Geachte {recipient.name}, Ondanks een eerdere herinnering blijkt uit onze administratie dat u de onderstaande facturen nog niet voldaan heeft. We willen u er op wijzen dat de betaaltermijn van deze facturen verstreken is en verzoeken u vriendelijk doch dringend om de betaling zo spoedig mogelijk te voldoen. {reminders_table} Mochten de betalingen en deze herinnering elkaar kruisen, dan kunt u deze herinnering als niet verzonden beschouwen. Wanneer betaling uitblijft, zullen wij de vordering uit handen moeten geven aan een incassobureau en de wettelijke incassokosten in rekening brengen. Via deze link kunt u naar het overzicht van uw {recipient.show_open_invoices_online_url}. Met vriendelijke groet, {company.company_name} reminder_auto_send: false action: null created_at: '2026-08-14T09:12:28.468Z' updated_at: '2026-08-14T09:12:28.468Z' - id: '495429853385852051' administration_id: 123 step_order: 3 due_interval: 5 reminder_delay: 0 reminder_text: |- Geachte {recipient.name}, Ondanks eerdere herinneringen blijkt uit onze administratie dat u de onderstaande facturen nog niet voldaan heeft. Dit is de derde herinnering voor het voldoen van de vordering, voordat de vordering uit handen gegeven zal worden aan een incassobureau. {reminders_table} Wij verzoeken u om de betalingen binnen 5 dagen te voldoen. Wanneer betaling uitblijft, zullen wij de vordering uit handen geven aan een incassobureau en brengen we de wettelijke incassokosten in rekening. Via deze link kunt u naar het overzicht van uw {recipient.show_open_invoices_online_url}. Met vriendelijke groet, {company.company_name} reminder_auto_send: false action: null created_at: '2026-08-14T09:12:28.475Z' updated_at: '2026-08-14T09:12:28.475Z' operationId: get_administration_id_workflows components: headers: link: description: Pagination links (next, prev) schema: type: string x-total-count: description: Total number of entries in the collection schema: type: integer parameters: administration_id: in: path name: administration_id required: true schema: $ref: '#/components/schemas/administration_id' description: The unique identifier of the administration format: in: path name: format required: true schema: type: string pattern: ^(.(json|xml))?$ default: .json description: The format in which the response is given, can be empty to use the default format page: name: page in: query required: false schema: type: - integer - string per_page: name: per_page in: query required: false schema: type: - integer - string pattern: ^\d+$ minimum: 1 maximum: 100 period: name: period in: query required: false description: | The period can be a date range or one of the presets. Date ranges must consist of whole months (start on 1st, end on last day of month). **Date range formats:** - `YYYYMMDD..YYYYMMDD` (e.g., `20250101..20250131`) - `YYYYMM..YYYYMM` (e.g., `202501..202501`) - `YYYYMM` (e.g., `202501`) **Preset options:** - `this_month` - Current month (default if not specified) - `prev_month` - Previous month - `next_month` - Next month - `this_quarter` - Current quarter - `prev_quarter` - Previous quarter - `next_quarter` - Next quarter - `this_year` - Current year - `prev_year` - Previous year - `next_year` - Next year **Maximum period: 12 months.** schema: type: string pattern: ^\d{6,8}(..\d{6,8})?|this_month|prev_month|next_month|this_quarter|prev_quarter|next_quarter|this_year|prev_year|next_year$ example: 20250101..20250131 default: this_month period_month: name: period in: query required: false description: | The period, given as a single whole month (start on the 1st, end on the last day of the month) or one of the month presets. **Date range formats:** - `YYYYMM` (e.g., `202501`) - `YYYYMM..YYYYMM` with the same month on both sides (e.g., `202501..202501`) - `YYYYMMDD..YYYYMMDD` spanning exactly one whole month (e.g., `20250101..20250131`) **Preset options:** - `this_month` - Current month (default if not specified) - `prev_month` - Previous month - `next_month` - Next month **Maximum period: 1 month.** Quarter and year presets (such as `this_quarter` or `this_year`) are not accepted by this endpoint. schema: type: string pattern: ^\d{6,8}(..\d{6,8})?|this_month|prev_month|next_month$ example: '202501' default: this_month period_until: name: period_until in: query required: false description: | A period until which a report should be generated. **Date range formats:** - `YYYYMM` (e.g., `202501`) **Preset options:** - `this_month` - Current month (default if not specified) - `prev_month` - Previous month - `this_quarter` - Current quarter - `prev_quarter` - Previous quarter - `this_year` - Current year - `prev_year` - Previous year schema: type: string pattern: ^\d{6,8}|this_month|prev_month|this_quarter|prev_quarter|this_year|prev_year$ example: '202501' default: this_month requestBodies: payment_request: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: payment: type: object unevaluatedProperties: false properties: payment_date: type: string description: The date on which the payment was made. price: $ref: '#/components/schemas/number' description: The amount paid in the document's currency. Both a decimal and a string '10,95' are accepted. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. price_base: $ref: '#/components/schemas/number' description: Amount paid expressed in the base currency of the administration. Required when the document uses a different currency than the administration's base currency. Should be a number -1,000,000,000 <= *n* <= 1,000,000,000. financial_account_id: $ref: '#/components/schemas/identifier' description: The ID of the financial account (bank account or cash register) associated with this payment. Required for `private_payment` and `cash_payment` actions. Should be a valid financial account id. financial_mutation_id: $ref: '#/components/schemas/identifier' description: The ID of the bank transaction to link this payment to. Required for `bank_transfer` actions. Should be a valid financial mutation id. transaction_identifier: type: string description: An external transaction reference, e.g. a bank transaction ID or PSP reference. Used to match the payment with financial mutations. manual_payment_action: type: string description: Can be `private_payment` (needs financial_account_id), `payment_without_proof`, `cash_payment` (needs financial_account_id), `rounding_error`, `bank_transfer` (needs financial_mutation_id), `balance_settlement` (needs ledger_account_id) or `invoices_settlement` (needs invoice_id). ledger_account_id: $ref: '#/components/schemas/identifier' description: The ID of the ledger account to book this payment to. Required for `balance_settlement` actions. Should be a valid ledger account id. invoice_id: $ref: '#/components/schemas/identifier' description: The ID of the document to settle this payment against. Required for `invoices_settlement` actions. Should be a valid document id (sales invoice, purchase invoice, receipt, etc.). required: - payment_date - price required: [] responses: 200_synchronization_response: description: IDs and versions of records content: application/json: schema: type: array items: type: object unevaluatedProperties: false properties: id: type: - integer - string version: type: - integer - string 204_no_content: description: No content 302_found: description: Found content: text/plain: schema: type: string 400_bad_request: description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' 401_unauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/symbolic_error' 402_payment_required: description: Payment required content: application/json: schema: $ref: '#/components/schemas/symbolic_error' 403_forbidden: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/symbolic_error' 404_not_found: description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' 422_unprocessable_entity: description: Unprocessable entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/symbolic_error' - $ref: '#/components/schemas/non_symbolic_error' 429_too_many_requests: description: Too many requests - rate limit exceeded content: application/json: schema: type: string example: Retry later headers: RateLimit-Limit: description: The rate limit ceiling for that given request schema: type: integer example: 150 RateLimit-Remaining: description: The number of requests left for the time window schema: type: integer example: 149 RateLimit-Reset: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 Retry-After: description: The time at which the current rate limit window resets in UTC epoch seconds schema: type: integer example: 1609459200 4XX_open_error: description: Error code content: application/json: schema: type: integer status_code: description: Status code content: application/json: schema: type: integer schemas: administration_id: allOf: - $ref: '#/components/schemas/identifier' description: A unique record identifier of an administration example: '123' administration_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/administration_id' name: type: string example: Moneybird language: type: string enum: - nl - nl-be - en example: nl description: The ISO 639-1 language code used in the administration currency: type: string description: The ISO 4217 currency code example: EUR country: type: string description: The ISO 3166-1 alpha-2 code the administration country example: NL time_zone: type: string description: The time zone of the administration example: Europe/Amsterdam access: type: string enum: - accountant_company - user description: The type of acess the user has to this administration example: user suspended: type: boolean period_locked_until: type: - string - 'null' format: date period_start_date: type: string format: date description: Start of the year in which the administration recorded its first bookkeeping data, based on journal entries. example: '2024-01-01' aging_report_item: type: object description: Aging report data item properties: contact_id: $ref: '#/components/schemas/identifier_nullable' amount: type: string aging_buckets: type: array items: type: object properties: name: type: string description: The aging bucket name, e.g. '< 30 days', '30-60 days', '60+ days' amount: type: string asset_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier_nullable' ledger_account_id: $ref: '#/components/schemas/identifier_nullable' name: type: string purchase_date: type: string format: date purchase_value: $ref: '#/components/schemas/number' calculated_purchase_value: $ref: '#/components/schemas/number' description: Purchase value reduced by any reinvestment reserve purchase applied to the asset. current_value: $ref: '#/components/schemas/number' value_change_plan: type: - object - 'null' unevaluatedProperties: false properties: lifespan_in_years: type: number residual_value: $ref: '#/components/schemas/number' active: type: boolean monthly_depreciation: $ref: '#/components/schemas/number' disposal: oneOf: - type: 'null' - $ref: '#/components/schemas/disposal_response' value_changes: type: array items: $ref: '#/components/schemas/value_change_response' sources: type: array items: $ref: '#/components/schemas/source_response' reinvestment_reserve_purchase: oneOf: - type: 'null' - $ref: '#/components/schemas/reinvestment_reserve_purchase_response' attachment_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' attachable_id: $ref: '#/components/schemas/identifier' attachable_type: type: string enum: - SalesInvoice - RecurringSalesInvoice - Document - FinancialStatement - Workflow - Estimate - ExternalSalesInvoice filename: type: string content_type: type: string size: type: integer rotation: type: - integer - 'null' created_at: type: - string - 'null' format: date-time updated_at: type: - string - 'null' format: date-time balance_sheet_ledger_account: type: array description: A list of ledger accounts with their value and child accounts items: type: object properties: ledger_account_id: type: string value: type: string children: type: array items: type: object properties: ledger_account_id: type: string value: type: string base_contact_response: type: object properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' company_name: {} firstname: type: - string - 'null' lastname: type: - string - 'null' address1: type: - string - 'null' address2: type: - string - 'null' zipcode: type: - string - 'null' city: type: - string - 'null' country: type: string phone: type: - string - 'null' delivery_method: type: - string - 'null' enum: - Email - Post - Manual - Simplerinvoicing - Peppol - null customer_id: type: string description: Will be assigned automatically if empty tax_number: type: - string - 'null' chamber_of_commerce: type: - string - 'null' bank_account: type: - string - 'null' description: The SEPA IBAN of the contact, can be empty if no SEPA IBAN is set is_trusted: type: boolean default: default max_transfer_amount: type: - number - 'null' attention: type: - string - 'null' email: type: - string - 'null' email_ubl: type: boolean send_invoices_to_attention: type: - string - 'null' send_invoices_to_email: type: - string - 'null' send_estimates_to_attention: type: - string - 'null' send_estimates_to_email: type: - string - 'null' direct_debit: type: boolean sepa_active: type: - boolean - 'null' sepa_iban: type: - string - 'null' sepa_iban_account_name: type: - string - 'null' sepa_bic: type: - string - 'null' sepa_mandate_id: type: - string - 'null' sepa_mandate_date: type: - string - 'null' format: date sepa_sequence_type: type: string enum: - RCUR - FRST - OOFF - FNAL credit_card_number: type: - string - 'null' credit_card_reference: type: - string - 'null' credit_card_type: type: - string - 'null' enum: - mastercard - visa - null tax_number_validated_at: type: - string - 'null' format: date-time tax_number_valid: type: - boolean - 'null' invoice_workflow_id: $ref: '#/components/schemas/identifier_nullable' estimate_workflow_id: $ref: '#/components/schemas/identifier_nullable' si_identifier: type: - string - 'null' si_identifier_type: type: - string - 'null' moneybird_payments_mandate: type: boolean description: Whether the contact has a valid Moneybird Payments mandate created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' version: type: integer example: 1716801778 sales_invoices_url: type: string format: uri pattern: ^https:\/\/moneybird\.\w{3,9}\/\d+\/sales_invoices\/[a-f0-9]{64}\/all$ example: https://moneybird.com/123/sales_invoices/4f0af91e456aa9c5b11ccfd6572da4f56cc8e45a701690c9279c9e4cec7b68f1/all notes: type: array items: $ref: '#/components/schemas/note_response' custom_fields: type: array items: $ref: '#/components/schemas/custom_field_value_response' contact_people: type: array items: $ref: '#/components/schemas/contact_person_response' archived: type: boolean base_user_response: type: object properties: id: $ref: '#/components/schemas/identifier' name: type: string created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' contact_person_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier_nullable' contact_id: $ref: '#/components/schemas/identifier_nullable' administration_id: $ref: '#/components/schemas/administration_id' firstname: type: - string - 'null' lastname: type: - string - 'null' phone: type: - string - 'null' email: type: - string - 'null' department: type: - string - 'null' created_at: type: - string - 'null' format: date-time updated_at: type: - string - 'null' format: date-time version: type: integer contact_report_item: type: object description: Contact report data item properties: contact_id: $ref: '#/components/schemas/identifier_nullable' amount: type: string required: - contact_id - amount contact_response: unevaluatedProperties: false allOf: - $ref: '#/components/schemas/base_contact_response' - type: object properties: events: type: array items: $ref: '#/components/schemas/event_response' creditors_report_item: type: object description: Creditors report data item properties: contact_id: $ref: '#/components/schemas/identifier_nullable' amount: type: string required: - contact_id - amount currency: type: string description: ISO 4217 currency code example: EUR custom_field_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier_nullable' administration_id: oneOf: - $ref: '#/components/schemas/administration_id' - type: 'null' name: type: string source: type: - string - 'null' enum: - sales_invoice - estimate - contact - identity - null custom_field_value_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' name: type: string value: type: string custom_fields_attributes: oneOf: - type: object additionalProperties: type: object unevaluatedProperties: false properties: id: type: - integer - string description: The ID of the custom field to set a value for. Retrieve available custom fields via the custom fields endpoint. value: type: string description: The value to assign to the custom field. The expected format depends on the custom field's type (e.g. text or dropdown). required: - id - value - type: array items: type: object properties: id: type: - integer - string description: The ID of the custom field to set a value for. Retrieve available custom fields via the custom fields endpoint. value: type: string description: The value to assign to the custom field. The expected format depends on the custom field's type (e.g. text or dropdown). debtors_report_item: type: object description: Debtors report data item properties: contact_id: $ref: '#/components/schemas/identifier_nullable' amount: type: string required: - contact_id - amount detail_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' tax_rate_id: $ref: '#/components/schemas/identifier' ledger_account_id: $ref: '#/components/schemas/identifier' project_id: $ref: '#/components/schemas/identifier_nullable' product_id: $ref: '#/components/schemas/identifier_nullable' amount: type: - string - 'null' amount_decimal: type: - string - 'null' description: type: string price: type: string pattern: ^-?\d+\.\d{1,2}$ examples: - '123.45' - '-500.0' - '0.0' period: type: - string - 'null' pattern: ^\d{6,8}..\d{6,8}$ example: 20250501..20250531 row_order: type: integer total_price_excl_tax_with_discount: $ref: '#/components/schemas/number' total_price_excl_tax_with_discount_base: $ref: '#/components/schemas/number' tax_report_reference: type: array items: type: - string - 'null' mandatory_tax_text: type: - string - 'null' created_at: type: - string - 'null' format: date-time updated_at: type: - string - 'null' format: date-time is_optional: type: boolean is_selected: type: boolean details_attributes: oneOf: - type: object additionalProperties: type: object unevaluatedProperties: false properties: id: type: - integer - string description: The ID of an existing detail to update. Required when updating or removing an existing detail; omit when creating a new one. description: type: string description: A free-text description for this detail, e.g. the name of the product or service delivered. period: type: string description: 'String with a date range: `20140101..20141231`, presets are also allowed: `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`. Used to indicate the period the detail applies to. Revenue or expenses are deferred over this period in the profit and loss report.' price: $ref: '#/components/schemas/number' description: The unit price for this detail. Both a decimal and a string '10,95' are accepted. amount: type: - integer - string description: The quantity for this detail, e.g. `1`, `5` or `0.5`. Defaults to 1 if not provided. tax_rate_id: type: - integer - string description: The ID of the tax rate to apply to this detail. Should be a valid tax rate id. If not provided, the administration's default tax rate is used. ledger_account_id: type: - integer - string description: The ID of the ledger account (category) to book this detail to. Should be a valid ledger account id. project_id: type: - integer - string description: The ID of the project to associate with this detail. Should be a valid project id. Used to track revenue and expenses per project. product_id: type: - integer - string description: The ID of the product to use for this detail. When provided, the product's default price, tax rate, ledger account, description and period are applied as defaults. Explicitly provided values take precedence. Should be a valid product id. row_order: type: - integer - string description: The position of this detail in the document, starting at 0. Used to control the display order of details. is_optional: type: - boolean - string description: Whether this detail is optional. Optional details are shown on estimates but not included in the total unless selected by the client. Only allowed on estimates. is_selected: type: - boolean - string description: Whether this optional detail has been selected by the client. Only relevant when `is_optional` is true. _destroy: type: - boolean - string description: Set to `true` to remove this detail from the document. Requires the `id` of the existing detail. automated_tax_enabled: type: - boolean - string description: Whether automatic tax calculation is enabled for this detail. When enabled, the tax rate is automatically determined based on the product's type and VAT rate type, combined with the contact's country, tax number and address. Requires a `product_id` with smart tax selection enabled (i.e. `product_type` and `vat_rate_type` configured on the product). required: [] - type: array items: type: object properties: id: type: - integer - string description: The ID of an existing detail to update. Required when updating or removing an existing detail; omit when creating a new one. description: type: string description: A free-text description for this detail, e.g. the name of the product or service delivered. period: type: string description: 'String with a date range: `20140101..20141231`, presets are also allowed: `this_month`, `prev_month`, `next_month`, `this_quarter`, `prev_quarter`, `next_quarter`, `this_year`, `prev_year`, `next_year`. Used to indicate the period the detail applies to. Revenue or expenses are deferred over this period in the profit and loss report.' price: $ref: '#/components/schemas/number' description: The unit price for this detail. Both a decimal and a string '10,95' are accepted. amount: type: - integer - string description: The quantity for this detail, e.g. `1`, `5` or `0.5`. Defaults to 1 if not provided. tax_rate_id: type: - integer - string description: The ID of the tax rate to apply to this detail. Should be a valid tax rate id. If not provided, the administration's default tax rate is used. ledger_account_id: type: - integer - string description: The ID of the ledger account (category) to book this detail to. Should be a valid ledger account id. project_id: type: - integer - string description: The ID of the project to associate with this detail. Should be a valid project id. Used to track revenue and expenses per project. product_id: type: - integer - string description: The ID of the product to use for this detail. When provided, the product's default price, tax rate, ledger account, description and period are applied as defaults. Explicitly provided values take precedence. Should be a valid product id. row_order: type: - integer - string description: The position of this detail in the document, starting at 0. Used to control the display order of details. is_optional: type: - boolean - string description: Whether this detail is optional. Optional details are shown on estimates but not included in the total unless selected by the client. Only allowed on estimates. is_selected: type: - boolean - string description: Whether this optional detail has been selected by the client. Only relevant when `is_optional` is true. _destroy: type: - boolean - string description: Set to `true` to remove this detail from the document. Requires the `id` of the existing detail. automated_tax_enabled: type: - boolean - string description: Whether automatic tax calculation is enabled for this detail. When enabled, the tax rate is automatically determined based on the product's type and VAT rate type, combined with the contact's country, tax number and address. Requires a `product_id` with smart tax selection enabled (i.e. `product_type` and `vat_rate_type` configured on the product). disposal_response: type: object unevaluatedProperties: false properties: date: type: string format: date reason: type: string enum: - out_of_use - sold - private_withdrawal - divested externally_booked: type: boolean asset_id: $ref: '#/components/schemas/identifier' reinvestment_reserve_sale: oneOf: - type: 'null' - $ref: '#/components/schemas/reinvestment_reserve_sale_response' document_style_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' name: type: string identity_id: $ref: '#/components/schemas/identifier' default: type: boolean logo_hash: type: - string - 'null' logo_container_full_width: type: - boolean - 'null' default: false logo_display_width: type: - integer - 'null' default: 50 logo_position: type: string enum: - left - center - right background_hash: type: - string - 'null' paper_size: type: string enum: - A4 - letter address_position: type: string enum: - left - right font_size: type: integer font_family: type: string print_on_stationery: type: - boolean - 'null' default: false custom_css: type: - string - 'null' invoice_sender_address: type: array items: type: object additionalProperties: type: - string - boolean invoice_metadata_left: type: array items: type: object additionalProperties: type: - string - boolean invoice_metadata_right: type: array items: type: object additionalProperties: type: - string - boolean estimate_sender_address: type: array items: type: object additionalProperties: type: - string - boolean estimate_metadata_left: type: array items: type: object additionalProperties: type: - string - boolean estimate_metadata_right: type: array items: type: object additionalProperties: type: - string - boolean created_at: type: - string - 'null' format: date-time updated_at: type: - string - 'null' format: date-time download_response: type: object properties: id: $ref: '#/components/schemas/identifier' user_id: $ref: '#/components/schemas/identifier_nullable' description: The user who created the download download_type: type: string description: The type of download (e.g., export_contacts, export_sales_invoices, auditfile) filename: type: string content_type: type: string failed: type: boolean downloaded: type: boolean created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' estimate_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' contact_id: $ref: '#/components/schemas/identifier' contact: oneOf: - $ref: '#/components/schemas/simple_contact_response' - type: 'null' contact_person_id: $ref: '#/components/schemas/identifier_nullable' contact_person: oneOf: - $ref: '#/components/schemas/contact_person_response' - type: 'null' estimate_id: type: - string - 'null' estimate_sequence_id: type: - string - 'null' workflow_id: $ref: '#/components/schemas/identifier' document_style_id: $ref: '#/components/schemas/identifier' identity_id: $ref: '#/components/schemas/identifier' draft_id: type: - integer - 'null' state: type: string enum: - draft - open - late - accepted - rejected - billed - archived estimate_date: type: - string - 'null' format: date due_date: type: string format: date reference: type: - string - 'null' language: type: - string - 'null' currency: type: string exchange_rate: $ref: '#/components/schemas/number' discount: $ref: '#/components/schemas/number' original_estimate_id: $ref: '#/components/schemas/identifier_nullable' show_tax: type: boolean default: true sign_online: type: boolean default: true sent_at: type: - string - 'null' format: date accepted_at: type: - string - 'null' format: date rejected_at: type: - string - 'null' format: date archived_at: type: - string - 'null' format: date created_at: type: - string - 'null' format: date-time updated_at: type: - string - 'null' format: date-time public_view_code: type: - string - 'null' pattern: ^\d+$ public_view_code_expires_at: type: - string - 'null' format: date-time version: type: integer pre_text: type: - string - 'null' post_text: type: - string - 'null' details: type: array items: $ref: '#/components/schemas/detail_response' prices_are_incl_tax: type: boolean default: false total_price_excl_tax: $ref: '#/components/schemas/number' total_price_excl_tax_base: $ref: '#/components/schemas/number' total_price_incl_tax: $ref: '#/components/schemas/number' total_price_incl_tax_base: $ref: '#/components/schemas/number' total_discount: $ref: '#/components/schemas/number' url: type: string custom_fields: type: array items: $ref: '#/components/schemas/custom_field_value_response' notes: type: array items: $ref: '#/components/schemas/note_response' attachments: type: array items: $ref: '#/components/schemas/attachment_response' events: type: array items: $ref: '#/components/schemas/event_response' tax_totals: type: array items: $ref: '#/components/schemas/tax_subtotal_response' event_response: type: object unevaluatedProperties: false properties: administration_id: oneOf: - $ref: '#/components/schemas/administration_id' - type: 'null' user_id: $ref: '#/components/schemas/identifier' action: type: string link_entity_id: $ref: '#/components/schemas/identifier_nullable' link_entity_type: type: - string - 'null' data: type: object additionalProperties: true created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' extended_user_response: unevaluatedProperties: false allOf: - $ref: '#/components/schemas/base_user_response' - type: object properties: email: type: string email_validated: type: boolean language: type: string time_zone: type: string example: Europe/Amsterdam user_type: type: string enum: - end_user - api_user - system_user - deleted_end_user - deleted_api_user - owner - accountant - employee permissions: type: array items: type: string enum: - sales_invoices - documents - estimates - bank - settings - ownership - time_entries external_sales_invoice_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' contact_id: $ref: '#/components/schemas/identifier_nullable' contact: oneOf: - $ref: '#/components/schemas/simple_contact_response' - type: 'null' date: type: string format: date state: type: string enum: - new - open - late - paid - uncollectible - pending_payment due_date: type: - string - 'null' format: date reference: type: - string - 'null' entry_number: type: integer origin: type: - string - 'null' enum: - upload - endpoint - si - email - si_local - si_peppol - api - moneybird_bv - mollie - null source: type: - string - 'null' source_url: type: - string - 'null' currency: $ref: '#/components/schemas/currency' paid_at: type: - string - 'null' format: date created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' version: $ref: '#/components/schemas/version' details: type: array items: $ref: '#/components/schemas/detail_response' payments: type: array items: $ref: '#/components/schemas/payment_response' total_paid: type: string total_unpaid: type: string total_unpaid_base: type: string prices_are_incl_tax: type: boolean total_price_excl_tax: type: string total_price_excl_tax_base: type: string total_price_incl_tax: type: string total_price_incl_tax_base: type: string marked_dubious_on: type: - string - 'null' format: date marked_uncollectible_on: type: - string - 'null' format: date notes: type: array items: $ref: '#/components/schemas/note_response' attachments: type: array items: $ref: '#/components/schemas/attachment_response' events: type: array items: $ref: '#/components/schemas/event_response' tax_totals: type: array items: $ref: '#/components/schemas/tax_subtotal_response' financial_account_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' type: type: string name: type: string identifier: type: string currency: $ref: '#/components/schemas/currency' provider: type: - string - 'null' active: type: boolean default: true created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' financial_mutation_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' amount: type: string code: type: - string - 'null' date: type: string format: date message: type: - string - 'null' contra_account_name: type: - string - 'null' contra_account_number: type: string state: type: string enum: - unprocessed - processed default: unprocessed settlement_state: type: string enum: - authorised - cancelled - expired - settled - pending - refused - error - captured - failed - returned default: settled amount_open: type: string sepa_fields: type: - object - 'null' batch_reference: type: - string - 'null' financial_account_id: $ref: '#/components/schemas/identifier' currency: $ref: '#/components/schemas/currency' original_amount: type: - string - 'null' created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' version: $ref: '#/components/schemas/version' financial_statement_id: $ref: '#/components/schemas/identifier' processed_at: type: - string - 'null' format: date-time account_servicer_transaction_id: type: - string - 'null' payments: type: array items: $ref: '#/components/schemas/payment_response' ledger_account_bookings: type: array items: $ref: '#/components/schemas/ledger_account_booking_response' financial_statement_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' financial_account_id: $ref: '#/components/schemas/identifier' reference: type: string official_date: type: - string - 'null' format: date official_balance: type: - string - 'null' importer_service: type: - string - 'null' financial_mutations: type: array items: $ref: '#/components/schemas/financial_mutation_response' fiscal_allocation_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' ledger_account_id: $ref: '#/components/schemas/identifier' private_ledger_account_id: $ref: '#/components/schemas/identifier' percentage: $ref: '#/components/schemas/number' price: $ref: '#/components/schemas/number' price_base: $ref: '#/components/schemas/number' created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' fiscal_allocations_attributes: oneOf: - type: object additionalProperties: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' description: The ID of an existing fiscal allocation to update. Required when updating or removing an existing allocation; omit when creating a new one. ledger_account_id: $ref: '#/components/schemas/identifier' description: The ID of the ledger account (category) this allocation applies to. Must match a ledger account used in the document's details. private_ledger_account_id: $ref: '#/components/schemas/identifier' description: The ID of the private ledger account (equity account) to allocate the private portion to. percentage: $ref: '#/components/schemas/number' description: The percentage of expenses for the given ledger account that is allocated to private use. The total percentage across all allocations for the same ledger account on a document must not exceed 100. minimum: 0 maximum: 100 _destroy: type: - boolean - string description: Set to `true` to remove this fiscal allocation from the document. Requires the `id` of the existing allocation. required: [] - type: array items: type: object properties: id: $ref: '#/components/schemas/identifier' description: The ID of an existing fiscal allocation to update. Required when updating or removing an existing allocation; omit when creating a new one. ledger_account_id: $ref: '#/components/schemas/identifier' description: The ID of the ledger account (category) this allocation applies to. Must match a ledger account used in the document's details. private_ledger_account_id: $ref: '#/components/schemas/identifier' description: The ID of the private ledger account (equity account) to allocate the private portion to. percentage: $ref: '#/components/schemas/number' description: The percentage of expenses for the given ledger account that is allocated to private use. The total percentage across all allocations for the same ledger account on a document must not exceed 100. minimum: 0 maximum: 100 _destroy: type: - boolean - string description: Set to `true` to remove this fiscal allocation from the document. Requires the `id` of the existing allocation. general_document_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' contact_id: $ref: '#/components/schemas/identifier_nullable' contact: oneOf: - $ref: '#/components/schemas/simple_contact_response' - type: 'null' reference: type: - string - 'null' date: type: string format: date due_date: type: - string - 'null' format: date entry_number: type: - integer - 'null' state: type: string enum: - new - open - late - paid - saved - pending_payment exchange_rate: type: - string - 'null' created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' version: $ref: '#/components/schemas/version' notes: type: array items: $ref: '#/components/schemas/note_response' attachments: type: array items: $ref: '#/components/schemas/attachment_response' events: type: array items: $ref: '#/components/schemas/event_response' general_journal_document_entry_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' ledger_account_id: $ref: '#/components/schemas/identifier' project_id: $ref: '#/components/schemas/identifier_nullable' contact_id: $ref: '#/components/schemas/identifier_nullable' debit: type: string credit: type: string row_order: type: - integer - 'null' created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' description: type: - string - 'null' general_journal_document_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' reference: type: - string - 'null' date: type: string format: date journal_type: type: - string - 'null' enum: - fiscal_year_ending - null created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' version: $ref: '#/components/schemas/version' general_journal_document_entries: type: array items: $ref: '#/components/schemas/general_journal_document_entry_response' notes: type: array items: $ref: '#/components/schemas/note_response' attachments: type: array items: $ref: '#/components/schemas/attachment_response' events: type: array items: $ref: '#/components/schemas/event_response' identifier: type: - string - integer pattern: ^\d+$ description: A unique record identifier example: '458026356994737217' identifier_nullable: type: - string - integer - 'null' pattern: ^\d+$ description: A unique record identifier example: '458026356994737217' identity_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' company_name: type: - string - 'null' city: type: - string - 'null' country: type: - string - 'null' zipcode: type: - string - 'null' address1: type: - string - 'null' address2: type: - string - 'null' email: type: - string - 'null' phone: type: - string - 'null' bank_account_name: type: - string - 'null' bank_account_number: type: - string - 'null' bank_account_bic: type: - string - 'null' custom_fields: type: array items: $ref: '#/components/schemas/custom_field_value_response' updated_at: $ref: '#/components/schemas/timestamp' created_at: $ref: '#/components/schemas/timestamp' chamber_of_commerce: type: - string - 'null' tax_number: type: - string - 'null' ledger_account_booking_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' financial_mutation_id: $ref: '#/components/schemas/identifier' ledger_account_id: $ref: '#/components/schemas/identifier' project_id: $ref: '#/components/schemas/identifier_nullable' description: type: - string - 'null' price: type: string created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' ledger_account_data: type: object description: Data grouped by ledger account. Contains an array of ledger account entries with ledger_account_id and value. required: - ledger_accounts properties: ledger_accounts: type: array description: Array of ledger account entries with ledger_account_id and value. items: type: object required: - ledger_account_id - value properties: ledger_account_id: type: string description: The ID of the ledger account value: type: string description: The value for this ledger account ledger_account_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' name: type: string account_type: type: string enum: - non_current_assets - current_assets - equity - non_current_liabilities - current_liabilities - revenue - direct_costs - expenses - other_income_expenses - other - temporary - provisions account_id: type: - string - 'null' parent_id: $ref: '#/components/schemas/identifier_nullable' active: type: boolean created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' allowed_document_types: type: array items: type: string enum: - sales_invoice - purchase_invoice - general_journal_document - financial_mutation - payment taxonomy_item: $ref: '#/components/schemas/taxonomy_item_response' financial_account_id: $ref: '#/components/schemas/identifier_nullable' minimal_contact_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' firstname: type: - string - 'null' lastname: type: - string - 'null' company_name: type: - string - 'null' minimal_time_entry_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' contact_id: $ref: '#/components/schemas/identifier_nullable' project_id: $ref: '#/components/schemas/identifier_nullable' user_id: $ref: '#/components/schemas/identifier' started_at: $ref: '#/components/schemas/timestamp' ended_at: $ref: '#/components/schemas/timestamp' description: type: - string - 'null' paused_duration: type: string billable: type: boolean created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' non_symbolic_error: type: object properties: error: type: object additionalProperties: type: array items: type: - string - object note_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' entity_id: $ref: '#/components/schemas/identifier_nullable' entity_type: type: string user_id: $ref: '#/components/schemas/identifier' assignee_id: $ref: '#/components/schemas/identifier_nullable' todo: type: - boolean - string - 'null' default: false note: type: - string - 'null' completed_at: type: - string - 'null' format: date-time completed_by_id: $ref: '#/components/schemas/identifier_nullable' todo_type: type: - string - 'null' enum: - sales_invoice_due - purchase_invoice_due - general_document_reminder - general_document_due - new_document_awaiting_processing - new_financial_mutation_awaiting_processing - financial_mutations_not_updated - sales_invoice_payment_not_linked_to_financial_mutation - document_payment_not_linked_to_financial_mutation - sales_invoice_awaiting_payment_batch - export_sales_invoices_ready - export_documents_ready - export_contacts_ready - import_contacts_ready - recurring_sales_invoice_auto_send_failed - sales_invoice_scheduled_sending_failed - sales_invoice_reminder_sending_failed - sales_invoice_payment_email_missing_sender_email - sales_invoice_becoming_due - sales_invoice_collecting_failed - estimate_due - export_estimates_ready - sales_invoice_email_delivery_failed - sales_invoice_email_marked_as_spam - estimate_email_delivery_failed - estimate_email_marked_as_spam - purchase_invoice_invalid_ubl - sales_invoice_unprintable - estimate_unprintable - auditfile_ready - import_financial_statement_finished - recurring_sales_invoice_auto_send_skipped_import_wizard - ledger_account_report_export_ready - recurring_sales_invoice_failed_deleted_contact - recurring_sales_invoice_create_invoice_failed - sales_invoice_simplerinvoicing_delivery_failed_unroutable - purchase_invoice_received_simplerinvoicing - sales_invoice_simplerinvoicing_delivery_error - purchase_transaction_expired - sales_invoice_si_delivery_failed_contact_unreachable - sales_invoice_si_delivery_failed_deactivated - sales_invoice_si_delivery_failed_identity_unverified - sales_invoice_si_delivery_failed_length_exceeded - recurring_document_stopped_by_contact_delete - sales_invoice_email_previously_bounced - estimate_email_previously_bounced - email_domain_invalidated - external_sales_invoice_invalid_ubl - sales_invoice_email_invalid_address - estimate_email_invalid_address - gateway_connection_terminated - sales_invoice_email_payload_too_large - estimate_email_payload_too_large - ponto_organization_not_activated - ponto_financial_institution_deprecated - contact_email_delivery_failed - contact_email_marked_as_spam - contact_email_previously_bounced - contact_email_invalid_address - contact_email_payload_too_large - sales_invoice_scheduling_failed_due_to_payment_information - sales_invoice_scheduling_failed_due_to_delivery_information - sales_invoice_collecting_failed_missing_subscription - sales_invoice_collecting_failed_no_mandate - sales_invoice_si_delivery_failed_ubl_validation_failed - sales_invoice_email_sender_limit - estimate_email_sender_limit - contact_email_sender_limit - sales_invoice_email_blocked - estimate_email_blocked - contact_email_blocked - sales_invoice_email_invalid_attachment - estimate_email_invalid_attachment - contact_email_invalid_attachment - sales_invoice_collecting_failed_monthly_limit_exceeded - sales_invoice_collecting_failed_invalid_currency - mollie_credential_needs_reconnect - adyen_verification_error - contact_email_not_present - financial_mutation_failed - sales_invoice_si_delivery_failed_invalid_sender - sales_invoice_tax_number_invalid - payment_transaction_no_positive_payment - financial_mutation_payment_locked - sales_invoice_withdrawal_requested - null data: type: - object - 'null' created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' number: oneOf: - type: string pattern: ^-?[0-9]+[,\.]?[0-9]*$ example: '1.0' - type: number example: 1 - type: 'null' payment_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' invoice_type: type: string enum: - SalesInvoice - Document - ExternalSalesInvoice - VatDocument invoice_id: $ref: '#/components/schemas/identifier' financial_account_id: $ref: '#/components/schemas/identifier_nullable' user_id: $ref: '#/components/schemas/identifier' payment_transaction_id: $ref: '#/components/schemas/identifier_nullable' transaction_identifier: type: - string - 'null' price: $ref: '#/components/schemas/number' price_base: $ref: '#/components/schemas/number' payment_date: type: string format: date credit_invoice_id: $ref: '#/components/schemas/identifier_nullable' financial_mutation_id: $ref: '#/components/schemas/identifier_nullable' ledger_account_id: $ref: '#/components/schemas/identifier_nullable' linked_payment_id: $ref: '#/components/schemas/identifier_nullable' manual_payment_action: type: - string - 'null' created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' product_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' description: type: - string - 'null' title: type: - string - 'null' identifier: type: - string - 'null' price: type: string currency: type: string frequency: type: - integer - 'null' frequency_type: type: - string - 'null' enum: - day - week - month - quarter - year - null tax_rate_id: $ref: '#/components/schemas/identifier_nullable' ledger_account_id: $ref: '#/components/schemas/identifier' created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' project_report_item: type: object description: Project report data item properties: project_id: $ref: '#/components/schemas/identifier_nullable' amount: type: string required: - project_id - amount project_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' name: type: string state: type: string enum: - active - archived budget: type: - integer - 'null' purchase_invoice_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' contact_id: $ref: '#/components/schemas/identifier_nullable' contact: oneOf: - $ref: '#/components/schemas/simple_contact_response' - type: 'null' reference: type: - string - 'null' date: type: string format: date due_date: type: - string - 'null' format: date entry_number: type: - integer - 'null' state: type: string enum: - new - open - late - paid - saved - pending_payment currency: $ref: '#/components/schemas/currency' exchange_rate: type: - string - 'null' revenue_invoice: type: - boolean - 'null' prices_are_incl_tax: type: - boolean - 'null' origin: type: - string - 'null' enum: - upload - endpoint - si - email - si_local - si_peppol - api - moneybird_bv - mollie - null paid_at: type: - string - 'null' format: date tax_number: type: - string - 'null' total_price_excl_tax: type: - string - 'null' total_price_excl_tax_base: type: - string - 'null' total_price_incl_tax: type: - string - 'null' total_price_incl_tax_base: type: - string - 'null' created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' version: $ref: '#/components/schemas/version' details: type: array items: $ref: '#/components/schemas/detail_response' fiscal_allocations: type: array items: $ref: '#/components/schemas/fiscal_allocation_response' payments: type: array items: $ref: '#/components/schemas/payment_response' notes: type: array items: $ref: '#/components/schemas/note_response' attachments: type: array items: $ref: '#/components/schemas/attachment_response' events: type: array items: $ref: '#/components/schemas/event_response' purchase_transaction_batch_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' financial_account_id: $ref: '#/components/schemas/identifier' state: type: string enum: - exported - cancelled - open identifier: type: string created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' purchase_transaction_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' financial_account_id: $ref: '#/components/schemas/identifier' payment_instrument_id: $ref: '#/components/schemas/identifier_nullable' state: type: string enum: - open - cancelled - paid - pending_payment - error - awaiting_authorization - preparing sepa_iban: type: string sepa_iban_account_name: type: string sepa_bic: type: string source_sepa_iban: type: - string - 'null' source_sepa_iban_account_name: type: - string - 'null' date: type: - string - 'null' format: date description: type: string end_to_end_id: type: string contact: $ref: '#/components/schemas/simple_contact_response' amount: type: string created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' payable_type: type: - string - 'null' payable_id: $ref: '#/components/schemas/identifier_nullable' payment_method: type: - string - 'null' receipt_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' contact_id: $ref: '#/components/schemas/identifier_nullable' contact: oneOf: - $ref: '#/components/schemas/simple_contact_response' - type: 'null' reference: type: - string - 'null' date: type: string format: date due_date: type: - string - 'null' format: date entry_number: type: - integer - 'null' state: type: string enum: - new - open - late - paid - saved - pending_payment currency: type: - string - 'null' exchange_rate: $ref: '#/components/schemas/number' revenue_invoice: type: - boolean - 'null' prices_are_incl_tax: type: - boolean - 'null' origin: type: - string - 'null' enum: - upload - endpoint - si - email - si_local - si_peppol - api - moneybird_bv - mollie - null paid_at: type: - string - 'null' format: date tax_number: type: - string - 'null' total_price_excl_tax: type: - string - 'null' total_price_excl_tax_base: type: - string - 'null' total_price_incl_tax: type: - string - 'null' total_price_incl_tax_base: type: - string - 'null' created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' version: $ref: '#/components/schemas/version' details: type: array items: $ref: '#/components/schemas/detail_response' fiscal_allocations: type: array items: $ref: '#/components/schemas/fiscal_allocation_response' payments: type: array items: $ref: '#/components/schemas/payment_response' notes: type: array items: $ref: '#/components/schemas/note_response' attachments: type: array items: $ref: '#/components/schemas/attachment_response' events: type: array items: $ref: '#/components/schemas/event_response' recurring_contract_response: type: object unevaluatedProperties: false properties: type: type: - string - 'null' sepa_mandate: type: boolean bank: type: - string - 'null' iban: type: - string - 'null' bic: type: - string - 'null' iban_account_name: type: - string - 'null' card_expiry_month: type: - string - 'null' card_expiry_year: type: - string - 'null' card_final_digits: type: - string - 'null' created_at: $ref: '#/components/schemas/timestamp' recurring_sales_invoice_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' contact_id: $ref: '#/components/schemas/identifier' contact: $ref: '#/components/schemas/simple_contact_response' contact_person_id: $ref: '#/components/schemas/identifier_nullable' contact_person: oneOf: - $ref: '#/components/schemas/contact_person_response' - type: 'null' workflow_id: $ref: '#/components/schemas/identifier' start_date: type: string format: date invoice_date: type: string format: date last_date: type: - string - 'null' format: date active: type: - boolean - 'null' payment_conditions: type: - string - 'null' reference: type: - string - 'null' language: type: string currency: type: string discount: type: - string - 'null' first_due_interval: type: integer auto_send: type: - boolean - 'null' sending_scheduled_at: type: - string - 'null' format: date-time sending_scheduled_user_id: $ref: '#/components/schemas/identifier_nullable' frequency_type: type: string enum: - day - week - month - quarter - year frequency: type: integer created_at: type: - string - 'null' format: date-time updated_at: type: - string - 'null' format: date-time version: $ref: '#/components/schemas/version' prices_are_incl_tax: type: boolean total_price_excl_tax: type: string total_price_excl_tax_base: type: string total_price_incl_tax: type: string total_price_incl_tax_base: type: string details: type: array items: $ref: '#/components/schemas/detail_response' custom_fields: type: array items: $ref: '#/components/schemas/custom_field_value_response' notes: type: array items: $ref: '#/components/schemas/note_response' attachments: type: array items: $ref: '#/components/schemas/attachment_response' events: type: array items: $ref: '#/components/schemas/event_response' subscription: oneOf: - $ref: '#/components/schemas/subscription_response' - type: 'null' reinvestment_reserve_purchase_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' amount: $ref: '#/components/schemas/number' date: type: string format: date asset_id: $ref: '#/components/schemas/identifier' reinvestment_reserve_sale_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' amount: $ref: '#/components/schemas/number' date: type: string format: date disposal_id: $ref: '#/components/schemas/identifier' sales_invoice_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' contact_id: $ref: '#/components/schemas/identifier' contact: $ref: '#/components/schemas/simple_contact_response' contact_person_id: $ref: '#/components/schemas/identifier_nullable' contact_person: oneOf: - $ref: '#/components/schemas/contact_person_response' - type: 'null' invoice_id: type: - string - 'null' description: The invoice number. It is `null` while the invoice is a draft. recurring_sales_invoice_id: $ref: '#/components/schemas/identifier_nullable' subscription_id: $ref: '#/components/schemas/identifier_nullable' workflow_id: $ref: '#/components/schemas/identifier' document_style_id: $ref: '#/components/schemas/identifier' identity_id: $ref: '#/components/schemas/identifier' draft_id: type: - integer - 'null' description: Sequence number a draft is referred to by while it has no invoice number yet. state: type: string enum: - draft - scheduled - open - pending_payment - reminded - late - paid - uncollectible invoice_date: type: - string - 'null' format: date due_date: type: string format: date payment_conditions: type: - string - 'null' payment_reference: type: - string - 'null' short_payment_reference: type: - string - 'null' reference: type: - string - 'null' language: type: - string - 'null' currency: type: string discount: type: - string - 'null' original_sales_invoice_id: $ref: '#/components/schemas/identifier_nullable' paused: type: boolean paid_at: type: - string - 'null' format: date sent_at: type: - string - 'null' format: date created_at: type: string format: date-time updated_at: type: string format: date-time public_view_code: type: - string - 'null' public_view_code_expires_at: type: - string - 'null' format: date-time version: $ref: '#/components/schemas/version' details: type: array items: $ref: '#/components/schemas/detail_response' payments: type: array items: $ref: '#/components/schemas/payment_response' total_paid: type: string total_unpaid: type: string total_unpaid_base: type: string prices_are_incl_tax: type: boolean total_price_excl_tax: type: string total_price_excl_tax_base: type: string total_price_incl_tax: type: string total_price_incl_tax_base: type: string total_discount: type: string marked_dubious_on: type: - string - 'null' format: date marked_uncollectible_on: type: - string - 'null' format: date reminder_count: type: - integer - 'null' next_reminder: type: - string - 'null' format: date original_estimate_id: $ref: '#/components/schemas/identifier_nullable' url: type: string payment_url: type: string custom_fields: type: array items: $ref: '#/components/schemas/custom_field_value_response' notes: type: array items: $ref: '#/components/schemas/note_response' attachments: type: array items: $ref: '#/components/schemas/attachment_response' events: type: array items: $ref: '#/components/schemas/event_response' tax_totals: type: array items: $ref: '#/components/schemas/tax_subtotal_response' time_entries: type: array items: $ref: '#/components/schemas/minimal_time_entry_response' simple_contact_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' company_name: type: - string - 'null' firstname: type: - string - 'null' lastname: type: - string - 'null' address1: type: - string - 'null' address2: type: - string - 'null' zipcode: type: - string - 'null' city: type: - string - 'null' country: type: string phone: type: - string - 'null' delivery_method: type: - string - 'null' enum: - Email - Post - Manual - Simplerinvoicing - Peppol - null customer_id: type: string tax_number: type: - string - 'null' chamber_of_commerce: type: - string - 'null' bank_account: type: - string - 'null' is_trusted: type: boolean max_transfer_amount: type: - string - 'null' attention: type: - string - 'null' email: type: - string - 'null' email_ubl: type: boolean send_invoices_to_attention: type: - string - 'null' send_invoices_to_email: type: - string - 'null' send_estimates_to_attention: type: - string - 'null' send_estimates_to_email: type: - string - 'null' direct_debit: type: boolean sepa_active: type: - boolean - 'null' sepa_iban: type: - string - 'null' sepa_iban_account_name: type: - string - 'null' sepa_bic: type: - string - 'null' sepa_mandate_id: type: - string - 'null' sepa_mandate_date: type: - string - 'null' format: date sepa_sequence_type: type: string enum: - RCUR - FRST - OOFF - FNAL credit_card_number: type: - string - 'null' credit_card_reference: type: - string - 'null' credit_card_type: type: - string - 'null' enum: - mastercard - visa - null tax_number_validated_at: type: - string - 'null' format: date-time tax_number_valid: type: - boolean - 'null' invoice_workflow_id: $ref: '#/components/schemas/identifier_nullable' estimate_workflow_id: $ref: '#/components/schemas/identifier_nullable' si_identifier: type: - string - 'null' si_identifier_type: type: - string - 'null' moneybird_payments_mandate: type: - boolean - 'null' created_at: type: - string - 'null' format: date-time updated_at: type: - string - 'null' format: date-time version: $ref: '#/components/schemas/version' sales_invoices_url: type: string notes: type: array items: $ref: '#/components/schemas/note_response' custom_fields: type: array items: $ref: '#/components/schemas/custom_field_value_response' contact_people: type: array items: $ref: '#/components/schemas/contact_person_response' archived: type: boolean source_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' asset_id: $ref: '#/components/schemas/identifier' detail_id: $ref: '#/components/schemas/identifier' general_journal_document_entry_id: $ref: '#/components/schemas/identifier' subscription_additional_charge_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' contact_id: $ref: '#/components/schemas/identifier_nullable' subscription_id: $ref: '#/components/schemas/identifier_nullable' product_id: $ref: '#/components/schemas/identifier' detail_id: $ref: '#/components/schemas/identifier_nullable' amount: type: - string - 'null' price: type: string period: type: string pattern: ^[0-9]{6}..[0-9]{6}$ example: 202501..202506 description: type: string subscription_product_response: type: object unevaluatedProperties: false properties: start_date: type: string format: date end_date: type: - string - 'null' format: date product_id: $ref: '#/components/schemas/identifier' product: $ref: '#/components/schemas/product_response' amount: type: string discount: type: - string - 'null' subscription_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' start_date: type: string format: date end_date: type: - string - 'null' format: date frequency: type: - integer - 'null' frequency_type: type: - string - 'null' enum: - day - week - month - quarter - year - null reference: type: - string - 'null' cancelled_at: type: - string - 'null' format: date-time product_id: $ref: '#/components/schemas/identifier' product: $ref: '#/components/schemas/product_response' contact_id: $ref: '#/components/schemas/identifier' contact: $ref: '#/components/schemas/simple_contact_response' contact_person_id: $ref: '#/components/schemas/identifier_nullable' contact_person: oneOf: - $ref: '#/components/schemas/contact_person_response' - type: 'null' subscription_products: type: array items: $ref: '#/components/schemas/subscription_product_response' recurring_sales_invoice_id: $ref: '#/components/schemas/identifier_nullable' subscription_template_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' workflow_id: $ref: '#/components/schemas/identifier' document_style_id: $ref: '#/components/schemas/identifier' mergeable: type: boolean contact_can_update: type: boolean products: type: array items: $ref: '#/components/schemas/product_response' symbolic_error: type: object properties: error: type: - string symbolic: type: object additionalProperties: type: - string - object - array task_list_group_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' name: type: - string - 'null' row_order: type: integer report_type: type: - string - 'null' created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' tasks: type: array items: $ref: '#/components/schemas/task_list_task_response' task_list_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/identifier' name: type: string description: type: - string - 'null' deadline_on: type: - string - 'null' format: date period_begin: type: - string - 'null' format: date period_end: type: - string - 'null' format: date completed: type: boolean template_id: $ref: '#/components/schemas/identifier_nullable' total_tasks_count: type: integer completed_tasks_count: type: integer created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' groups: type: array items: $ref: '#/components/schemas/task_list_group_response' task_list_task_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/identifier' name: type: string description: type: - string - 'null' row_order: type: integer completed_at: type: - string - 'null' format: date-time report_type: type: - string - 'null' task_lists_group_id: $ref: '#/components/schemas/identifier' parent_task_id: $ref: '#/components/schemas/identifier_nullable' assignee_id: $ref: '#/components/schemas/identifier_nullable' created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' subtasks: type: array items: $ref: '#/components/schemas/task_list_task_response' notes: type: array items: $ref: '#/components/schemas/note_response' events: type: array items: $ref: '#/components/schemas/event_response' task_list_template_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/identifier' name: type: string description: type: - string - 'null' period: type: - string - 'null' description: ISO 8601 duration string (e.g. "P1M" for one month, "P3M" for one quarter, "P1Y" for one year) deadline_after: type: - string - 'null' description: ISO 8601 duration string representing the deadline offset from the period end created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' groups: type: array items: $ref: '#/components/schemas/task_list_group_response' tax_rate_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' name: type: string percentage: oneOf: - $ref: '#/components/schemas/number' - type: 'null' tax_rate_type: type: string enum: - sales_invoice - purchase_invoice - general_journal_document show_tax: type: - boolean - 'null' active: type: - boolean - 'null' country: type: - string - 'null' created_at: type: - string - 'null' format: date-time updated_at: type: - string - 'null' format: date-time tax_subtotal_response: type: object unevaluatedProperties: false properties: tax_rate_id: $ref: '#/components/schemas/identifier' taxable_amount: $ref: '#/components/schemas/number' taxable_amount_base: $ref: '#/components/schemas/number' tax_amount: $ref: '#/components/schemas/number' tax_amount_base: $ref: '#/components/schemas/number' taxonomy_item_response: type: object unevaluatedProperties: false properties: taxonomy_version: type: string code: type: string name: type: string name_english: type: - string - 'null' reference: type: - string - 'null' time_entry_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' contact_id: $ref: '#/components/schemas/identifier_nullable' project_id: $ref: '#/components/schemas/identifier_nullable' sales_invoice_id: $ref: '#/components/schemas/identifier_nullable' user_id: $ref: '#/components/schemas/identifier' started_at: $ref: '#/components/schemas/timestamp' ended_at: oneOf: - $ref: '#/components/schemas/timestamp' - type: 'null' description: type: string paused_duration: type: integer billable: type: - boolean - 'null' created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' contact: oneOf: - $ref: '#/components/schemas/minimal_contact_response' - type: 'null' user: $ref: '#/components/schemas/user_response' project: oneOf: - $ref: '#/components/schemas/project_response' - type: 'null' sales_invoice: oneOf: - $ref: '#/components/schemas/sales_invoice_response' - type: 'null' events: type: array items: $ref: '#/components/schemas/event_response' notes: type: array items: $ref: '#/components/schemas/note_response' timestamp: type: string format: date-time typeless_document_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' contact_id: $ref: '#/components/schemas/identifier_nullable' contact: oneOf: - $ref: '#/components/schemas/simple_contact_response' - type: 'null' reference: type: - string - 'null' date: type: string format: date state: type: string enum: - new - open - late - paid - saved - pending_payment origin: type: - string - 'null' enum: - upload - endpoint - si - email - si_local - si_peppol - api - moneybird_bv - mollie - null created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' version: $ref: '#/components/schemas/version' attachments: type: array items: $ref: '#/components/schemas/attachment_response' events: type: array items: $ref: '#/components/schemas/event_response' user_response: $ref: '#/components/schemas/base_user_response' value_change_response: type: object unevaluatedProperties: false properties: type: type: string enum: - divestment - full_depreciation - manual - arbitrary - linear date: type: string format: date amount: $ref: '#/components/schemas/number' description: type: - 'null' - string externally_booked: type: boolean asset_id: $ref: '#/components/schemas/identifier' verification_response: type: object unevaluatedProperties: false properties: emails: type: array items: type: string bank_account_numbers: type: array items: type: string chamber_of_commerce_number: type: string tax_number: type: string verifications_response: $ref: '#/components/schemas/verification_response' version: type: integer webhook_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' url: type: string enabled_events: type: array items: type: string description: List of events this webhook is subscribed to. See [webhook events](https://developer.moneybird.com/webhooks/events) for all available events and event groups. last_http_status: type: - integer - string - 'null' description: HTTP status code of the request last received back from the webhook last_http_body: type: - string - 'null' description: Body of the request last received back from the webhook token: type: string secret: type: string description: The webhook's secret, used to generate webhook signatures. Only returned at creation. deactivated_at: oneOf: - $ref: '#/components/schemas/timestamp' - type: 'null' description: Timestamp when the webhook was deactivated. Null if the webhook is active. workflow_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' type: type: string name: type: string default: type: boolean currency: type: string language: type: string active: type: boolean prices_are_incl_tax: type: boolean payment_methods: type: - array - 'null' items: type: string collection_method: type: - string - 'null' number_of_collections: type: integer show_qr_code: type: boolean created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' steps: type: array items: $ref: '#/components/schemas/workflow_step_response' workflow_step_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' step_order: type: integer due_interval: type: integer reminder_delay: type: integer reminder_text: type: - string - 'null' reminder_auto_send: type: boolean action: type: - string - 'null' enum: - suspend_moneybird_account - reactivate_moneybird_account - warn_moneybird_account - cancel_subscription - null created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' securitySchemes: bearerAuth: type: http scheme: bearer