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-20260108-683cbfbf17 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: 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. - 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 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: ReturnAListOfAdministrationsThatUserHasAccessTo: summary: Return a list of administrations that user has access to value: - id: 1767872419803269 name: Administratie language: nl currency: EUR country: NL time_zone: Europe/Amsterdam access: user suspended: false period_locked_until: null - id: 123 name: Parkietje B.V. language: nl currency: EUR country: NL time_zone: Europe/Amsterdam access: user suspended: false period_locked_until: null ReturnsAccessTypeUserWhenHavingDirectAccessToTheAdministration: summary: Returns access type user when having direct access to the administration value: - id: '176787242052031611' name: Parkietje B.V. language: nl currency: EUR country: NL time_zone: Europe/Amsterdam access: user suspended: false period_locked_until: null ValidatesThatAUserHasAccessToMultipleAdministrationsViaDifferentWays: summary: Validates that a user has access to multiple administrations via different ways value: - id: '176787242032376900' name: Administratie language: nl currency: EUR country: NL time_zone: Europe/Amsterdam access: accountant_company suspended: false period_locked_until: null - id: 123 name: Parkietje B.V. language: nl currency: EUR country: NL time_zone: Europe/Amsterdam access: user suspended: false period_locked_until: null 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. tags: - Assets 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-01-08' 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-01-08' reason: out_of_use externally_booked: false asset_id: '475689086019961972' '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}/sources/{detail_id}{format}: delete: summary: Delete a source description: Deletes a source from an asset. Does not delete the detail or the asset tags: - Assets parameters: - $ref: '#/components/parameters/administration_id' - name: id in: path required: true schema: $ref: '#/components/schemas/identifier' - name: detail_id in: path required: true schema: $ref: '#/components/schemas/identifier' - $ref: '#/components/parameters/format' responses: '204': description: Source deleted '404': $ref: '#/components/responses/404_not_found' operationId: delete_administration_id_assets_id_sources_detail_id /{administration_id}/assets/{id}/sources{format}: post: summary: Add a source to an asset description: |- Adds a detail as a source to an asset. The detail must have the same ledger account as the asset. tags: - Assets 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: detail_id: $ref: '#/components/schemas/identifier' required: - detail_id examples: CreatesANewSource: summary: Creates a new source value: detail_id: 475689076771522400 responses: '201': description: A detail that is added as a source to an asset content: application/json: schema: $ref: '#/components/schemas/source_response' examples: CreatesANewSource: summary: Creates a new source value: id: '475689076788299638' asset_id: '475689076476872520' detail_id: '475689076771522421' '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 '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: detail: - The ledger account of the detail must be equal to the ledger account of the asset details: detail: - 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. tags: - Assets 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-01-08' 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-01-08' amount: '-10.0' description: some description externally_booked: true asset_id: '475689082691782312' '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. tags: - Assets 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-01-08' 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-01-08' amount: '-12145.67' description: null externally_booked: false asset_id: '475689078506914901' '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_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. tags: - Assets 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-01-08' 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-01-08' amount: '-12145.67' description: some description externally_booked: false asset_id: '475689079643571436' '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_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. tags: - Assets 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-01-08' 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-01-08' amount: '-10.0' description: some description externally_booked: true asset_id: '475689074563221043' '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. tags: - Assets 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: ReturnsA422IfTheAssetHasNoValueChangePlan: summary: Returns a 422 if the asset has no value change plan value: error: Asset has no value change plan 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 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. tags: - Assets 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: '475689081360090601' ledger_account_id: '475689081354847720' name: Asset 1 purchase_date: '2025-08-01' 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: '2025-09-01' amount: '-50.0' description: Value change 1 externally_booked: false asset_id: '475689081360090601' - type: arbitrary date: '2025-10-01' amount: '-50.0' description: Value change 2 externally_booked: false asset_id: '475689081360090601' - type: arbitrary date: '2025-11-01' amount: '-50.0' description: Value change 3 externally_booked: false asset_id: '475689081360090601' - type: arbitrary date: '2025-12-01' amount: '-50.0' description: Value change 4 externally_booked: false asset_id: '475689081360090601' sources: [] ReturnsTheAssetWithADisposal: summary: Returns the asset with a disposal value: id: '475689081654740501' ledger_account_id: '475689081649497620' name: Asset 1 purchase_date: '2020-01-08' 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-01-08' reason: out_of_use externally_booked: false asset_id: '475689081654740501' value_changes: - type: manual date: '2026-01-08' amount: '-12345.67' description: Depreciation externally_booked: false asset_id: '475689081654740501' sources: [] '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. tags: - Assets 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: 475689081242650050 purchase_date: '2026-01-08' 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: '475689080925980077' ledger_account_id: '475689080920737196' name: New Name purchase_date: '2025-08-01' 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: '2025-09-01' amount: '-50.0' description: Value change 1 externally_booked: false asset_id: '475689080925980077' - type: arbitrary date: '2025-10-01' amount: '-50.0' description: Value change 2 externally_booked: false asset_id: '475689080925980077' - type: arbitrary date: '2025-11-01' amount: '-50.0' description: Value change 3 externally_booked: false asset_id: '475689080925980077' - type: arbitrary date: '2025-12-01' amount: '-50.0' description: Value change 4 externally_booked: false asset_id: '475689080925980077' sources: [] AllowsUpdatingEveryAttributeOfAPlannedAsset: summary: Allows updating every attribute of a planned asset value: id: '475689081252087259' ledger_account_id: '475689081242650073' name: New Name purchase_date: '2026-01-08' 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: [] '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. tags: - Assets 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. tags: - Assets 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: '475689084085340020' - name: active in: query required: false schema: type: - boolean - string default: true description: Whether to include only active assets examples: ReturnsAPaginatedListOfAssets: summary: Returns a paginated list of 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: ReturnsAListOfAssetsFilteredByLedgerAccount: summary: Returns a list of assets filtered by ledger account value: - id: '475689084091631477' ledger_account_id: '475689084085340020' name: Asset 3 purchase_date: '2025-08-01' 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: '2025-09-01' amount: '-50.0' description: Value change 1 externally_booked: false asset_id: '475689084091631477' - type: arbitrary date: '2025-10-01' amount: '-50.0' description: Value change 2 externally_booked: false asset_id: '475689084091631477' - type: arbitrary date: '2025-11-01' amount: '-50.0' description: Value change 3 externally_booked: false asset_id: '475689084091631477' - type: arbitrary date: '2025-12-01' amount: '-50.0' description: Value change 4 externally_booked: false asset_id: '475689084091631477' sources: [] ReturnsAPaginatedListOfAssets: summary: Returns a paginated list of assets value: - id: '475689084642133963' ledger_account_id: '475689084637939658' name: Asset 2 purchase_date: '2020-01-08' 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-01-08' reason: out_of_use externally_booked: false asset_id: '475689084642133963' value_changes: - type: manual date: '2026-01-08' amount: '-12345.67' description: Depreciation externally_booked: false asset_id: '475689084642133963' sources: [] ReturnsAListOfAllAssets: summary: Returns a list of all assets value: - id: '475689084879112166' ledger_account_id: '475689084873869285' name: Asset 1 purchase_date: '2025-08-01' 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: '2025-09-01' amount: '-50.0' description: Value change 1 externally_booked: false asset_id: '475689084879112166' - type: arbitrary date: '2025-10-01' amount: '-50.0' description: Value change 2 externally_booked: false asset_id: '475689084879112166' - type: arbitrary date: '2025-11-01' amount: '-50.0' description: Value change 3 externally_booked: false asset_id: '475689084879112166' - type: arbitrary date: '2025-12-01' amount: '-50.0' description: Value change 4 externally_booked: false asset_id: '475689084879112166' sources: [] - id: '475689085189489682' ledger_account_id: '475689085183198225' name: Asset 2 purchase_date: '2020-01-08' 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-01-08' reason: out_of_use externally_booked: false asset_id: '475689085189489682' value_changes: - type: manual date: '2026-01-08' amount: '-12345.67' description: Depreciation externally_booked: false asset_id: '475689085189489682' sources: [] ReturnsAListOfActiveAssets: summary: Returns a list of active assets value: - id: '475689085476799533' ledger_account_id: '475689085470508076' name: Asset 1 purchase_date: '2025-08-01' 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: '2025-09-01' amount: '-50.0' description: Value change 1 externally_booked: false asset_id: '475689085476799533' - type: arbitrary date: '2025-10-01' amount: '-50.0' description: Value change 2 externally_booked: false asset_id: '475689085476799533' - type: arbitrary date: '2025-11-01' amount: '-50.0' description: Value change 3 externally_booked: false asset_id: '475689085476799533' - type: arbitrary date: '2025-12-01' amount: '-50.0' description: Value change 4 externally_booked: false asset_id: '475689085476799533' sources: [] operationId: get_administration_id_assets post: summary: Create a new asset description: Creates a new asset. tags: - Assets 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: 475689078393668700 purchase_date: '2026-01-08' 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: '475689078405203022' ledger_account_id: '475689078393668685' name: Test Asset purchase_date: '2026-01-08' 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: [] '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsA400IfTheRequestWhenParametersAreMissing: summary: Returns a 400 if the request when parameters are missing value: error: asset[name] is missing 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 '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 tags: - Contacts 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: '475689027310192221' 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 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-01-08T11:40:29.662Z' updated_at: '2026-01-08T11:40:29.679Z' version: 1767872429 sales_invoices_url: https://moneybird.dev/123/sales_invoices/5b07f76cb1b2a7824d792a0d693192192ddddb78d5dc314de79f2fbc87e09822/all notes: [] custom_fields: [] contact_people: - id: '475689027314386527' contact_id: '475689027310192221' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-01-08T11:40:29.666Z' updated_at: '2026-01-08T11:40:29.666Z' version: 1767872429 archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:29.673Z' updated_at: '2026-01-08T11:40:29.673Z' '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. The `filter` argument allows you to filter the list of contacts. Filters are a combination of keys and values, separated by a comma: `first_name:henk,last_name:jansen`. The available options for filtering are: | **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` | | - | - | - | - | tags: - Contacts parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string examples: AllowsFilteringByFirstname: summary: Allows filtering by firstname value: first_name:piet ReturnsOnlyContactsUpdatedAfterGivenDatetime: summary: Returns only contacts updated after given datetime value: updated_after:2026-01-08 11:40:31 UTC ReturnsAllContactsCreatedAfterGivenDatetime: summary: Returns all contacts created after given datetime value: created_after:2026-01-07 11:40:27 UTC - 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: '475689024319653832' 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-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 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-01-08T11:40:26.810Z' updated_at: '2026-01-08T11:40:26.813Z' version: 1767872426 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: '475689024431851485' 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 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-01-08T11:40:26.918Z' updated_at: '2026-01-08T11:41:31.961Z' version: 1767872491 sales_invoices_url: https://moneybird.dev/123/sales_invoices/336244ab75181847a78f5559fa89a6133991368d4e980a9dde5114293045388c/all notes: [] custom_fields: [] contact_people: - id: '475689024436045791' contact_id: '475689024431851485' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-01-08T11:40:26.921Z' updated_at: '2026-01-08T11:40:26.921Z' version: 1767872426 archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:26.927Z' updated_at: '2026-01-08T11:40:26.927Z' ReturnsAllContactsCreatedAfterGivenDatetime: summary: Returns all contacts created after given datetime value: - id: '475689024551389180' 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: '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 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-01-08T11:40:27.031Z' updated_at: '2026-01-08T11:40:27.031Z' version: 1767872427 sales_invoices_url: https://moneybird.dev/123/sales_invoices/1b893f905bc578cd5f84a9e95e816740c27445c7c8fdeaa219d8df2a777100dd/all notes: [] custom_fields: [] contact_people: [] archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:27.034Z' updated_at: '2026-01-08T11:40:27.034Z' - id: '475689024512591855' 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 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-01-08T11:40:26.994Z' updated_at: '2026-01-08T11:40:27.008Z' version: 1767872427 sales_invoices_url: https://moneybird.dev/123/sales_invoices/850750267a4daba05eb21726cad8416df390a37d5f71e4d08672edb1fea48f91/all notes: [] custom_fields: [] contact_people: - id: '475689024515737585' contact_id: '475689024512591855' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-01-08T11:40:26.998Z' updated_at: '2026-01-08T11:40:26.998Z' version: 1767872426 archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:27.003Z' updated_at: '2026-01-08T11:40:27.003Z' - id: '475689024534611958' 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 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-01-08T11:40:27.015Z' updated_at: '2026-01-08T11:40:27.015Z' version: 1767872427 sales_invoices_url: https://moneybird.dev/123/sales_invoices/6112f0aa53821f82fe31298c863f76a33454a11b23341a84f82619a41252547e/all notes: [] custom_fields: [] contact_people: - id: '475689024537757688' contact_id: '475689024534611958' administration_id: 123 firstname: John lastname: Doe phone: null email: null department: null created_at: '2026-01-08T11:40:27.019Z' updated_at: '2026-01-08T11:40:27.019Z' version: 1767872427 archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:27.023Z' updated_at: '2026-01-08T11:40:27.023Z' 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. tags: - Contacts parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false 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: '475689026107475303' version: 1767872428 ReturnAListOfIdSAndVersionIdS: summary: Return a list of id's and version id's value: - id: '475689026178778475' version: 1767872428 - id: '475689026207090034' version: 1767872428 operationId: get_administration_id_contacts_synchronization post: summary: Fetch contacts with given ids 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. tags: - Contacts 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: - 475689029767005300 - 475689029797414000 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: '475689029767005285' 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 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-01-08T11:40:32.005Z' updated_at: '2026-01-08T11:40:32.005Z' version: 1767872432 sales_invoices_url: https://moneybird.dev/123/sales_invoices/ae140bbf451ff7730ec324b1a7de2072c7bf6a8d0eeba29591b0050860cdfabe/all notes: [] custom_fields: [] contact_people: - id: '475689029770151015' contact_id: '475689029767005285' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-01-08T11:40:32.008Z' updated_at: '2026-01-08T11:40:32.008Z' version: 1767872432 archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:32.014Z' updated_at: '2026-01-08T11:40:32.014Z' - id: '475689029797413998' 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: '5' 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 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-01-08T11:40:32.034Z' updated_at: '2026-01-08T11:40:32.034Z' version: 1767872432 sales_invoices_url: https://moneybird.dev/123/sales_invoices/401b4ab545cc9927eb589a9b34ced91d51518f9aba8d73dec5c2769ee59a02cb/all notes: [] custom_fields: [] contact_people: - id: '475689029800559728' contact_id: '475689029797413998' administration_id: 123 firstname: Mark lastname: van Vliet phone: null email: null department: null created_at: '2026-01-08T11:40:32.038Z' updated_at: '2026-01-08T11:40:32.038Z' version: 1767872432 archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:32.043Z' updated_at: '2026-01-08T11:40:32.043Z' '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. tags: - Contacts 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: '475689028467820369' contact_id: '475689028463626063' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-01-08T11:40:30.766Z' updated_at: '2026-01-08T11:40:30.766Z' version: 1767872430 '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. tags: - Contacts 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: '475689028593649517' contact_id: '475689028590503787' administration_id: 123 firstname: John lastname: Doe phone: null email: null department: null created_at: '2026-01-08T11:40:30.887Z' updated_at: '2026-01-08T11:40:30.921Z' version: 1767872430 '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. tags: - Contacts 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`. tags: - Contacts 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: '475689025853719849' contact_id: '475689025809679644' administration_id: 123 firstname: John lastname: Doe phone: null email: null department: null created_at: '2026-01-08T11:40:28.273Z' updated_at: '2026-01-08T11:40:28.273Z' version: 1767872428 CreateANewContactPersonWithAllParams: summary: Create a new contact person with all params value: id: '475689025921877306' contact_id: '475689025879934253' administration_id: 123 firstname: John lastname: Doe phone: '123456789' email: johndoe@moneybird.com department: Sales created_at: '2026-01-08T11:40:28.338Z' updated_at: '2026-01-08T11:40:28.338Z' version: 1767872428 '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. tags: - Contacts 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: 475689024772637760 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/zICBpl9yYWlsc4KkZGF0YdlBMTc2Nzg3MjI5MTQ1MDUgNDc1Njg5MDI0NjAwNjcxMjMyIDQ3NTY4ODg4MzA1NzU5MTQwMgogICAgICBhZHllbiCjZXhwxwsHzmlyDKvOCPphuAA--6b4be65400ab12ea56bd2d31b9a4349c8b65db51 RequestsANewMoneybirdPaymentsMandateUrlWithACustomWorkflowId: summary: Requests a new moneybird payments mandate url with a custom workflow id value: url: https://moneybird.dev/123/mandate_requests/zICBpl9yYWlsc4KkZGF0YdlTMTc2Nzg3MjI5MTQ1MDUgNDc1Njg5MDI0Njk1MDQzMDkyIDQ3NTY4ODg4MzA1NzU5MTQwMgogICAgICBhZHllbiA0NzU2ODkwMjQ3NzI2Mzc3MzOjZXhwxwsHzmlyDKvOD6BEJgA--492f50bed7feb23b4a1b1814b4156b7b7b707a55 '403': description: Error code content: application/json: schema: type: integer examples: DoesNotAllowAccessIfMoneybirdPaymentsIsDisabledForTheAdministration: summary: Does not allow access if moneybird payments is disabled for the administration value: 403 ReturnsA403StatusWhenAWrongContactIdIsProvided: summary: Returns a 403 status when a wrong contact id is provided value: 403 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. tags: - Contacts 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: 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' 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' '403': description: Error code content: application/json: schema: type: integer examples: DoesNotAllowAccessIfMoneybirdPaymentsIsDisabledForTheAdministration: summary: Does not allow access if moneybird payments is disabled for the administration value: 403 '404': description: Error code content: application/json: schema: type: integer examples: DoesReturnNotFoundWhenThereIsNoMoneybirdPaymentsMandateFound: summary: Does return not found when there is no moneybird payments mandate found value: 404 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. tags: - Contacts 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: 475689025479378100 RequestsANewMoneybirdPaymentsMandate: summary: Requests a new moneybird payments mandate value: {} 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. responses: '204': description: Moneybird Payments mandate requested '403': description: Error code content: application/json: schema: type: integer examples: DoesNotAllowAccessIfMoneybirdPaymentsIsDisabledForTheAdministration: summary: Does not allow access if moneybird payments is disabled for the administration value: 403 ReturnsA403StatusWhenAWrongContactIdIsProvided: summary: Returns a 403 status when a wrong contact id is provided value: 403 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. tags: - Contacts 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': description: Error code content: application/json: schema: type: integer examples: DoesNotAllowAccessIfMoneybirdPaymentsIsDisabledForTheAdministration: summary: Does not allow access if moneybird payments is disabled for the administration value: 403 ReturnsA403StatusWhenAWrongContactIdIsProvided: summary: Returns a 403 status when a wrong contact id is provided value: 403 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. tags: - Contacts 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. tags: - Contacts 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: 475689029958894700 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '475689029975671955' administration_id: 123 entity_id: '475689029920097413' entity_type: Contact user_id: 17678722914505 assignee_id: '475689029958894737' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-01-08T11:40:32.205Z' updated_at: '2026-01-08T11:40:32.205Z' '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. tags: - Contacts 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: 475689026448262600 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: '475689026469234085' administration_id: 123 contact_id: '475689026401076631' subscription_id: null product_id: '475689026448262563' 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. tags: - Contacts 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: '475689026899150342' administration_id: 123 contact_id: '475689026859304441' subscription_id: null product_id: '475689026898101765' detail_id: null amount: 1 x price: '100.0' period: 202106..202106 description: Transaction Costs - id: '475689026983036441' administration_id: 123 contact_id: '475689026859304441' subscription_id: null product_id: '475689026904393223' detail_id: '475689026978842136' 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. tags: - Contacts 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. tags: - Contacts 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: ReturnAContact: summary: Return a contact value: id: '475689024049121162' 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 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-01-08T11:40:26.553Z' updated_at: '2026-01-08T11:40:26.569Z' version: 1767872426 sales_invoices_url: https://moneybird.dev/123/sales_invoices/50ba991268c67712d5ddae788249b2f7dda861606e400ef033fa064cd96b68f6/all notes: [] custom_fields: [] contact_people: - id: '475689024054364044' contact_id: '475689024049121162' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-01-08T11:40:26.557Z' updated_at: '2026-01-08T11:40:26.557Z' version: 1767872426 archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:26.563Z' updated_at: '2026-01-08T11:40:26.563Z' ReturnsSepaIbanAsBankAccount: summary: Returns sepa iban as bank account value: id: '475689024121472920' 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 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-01-08T11:40:26.621Z' updated_at: '2026-01-08T11:40:26.654Z' version: 1767872426 sales_invoices_url: https://moneybird.dev/123/sales_invoices/292acb9a1bdde13963b071ed945ce73b2bd7781f345d6e82fab0b3cc8f62a00d/all notes: [] custom_fields: [] contact_people: - id: '475689024124618650' contact_id: '475689024121472920' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-01-08T11:40:26.624Z' updated_at: '2026-01-08T11:40:26.624Z' version: 1767872426 archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:26.630Z' updated_at: '2026-01-08T11:40:26.630Z' '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. tags: - Contacts 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 address2: type: string zipcode: type: string city: type: string country: type: string description: ISO two-character country code, e.g. NL or DE. phone: type: string delivery_method: type: string description: Can be `Email`, `Simplerinvoicing`, `Peppol`, `Manual` or `Post`. email_ubl: type: - boolean - string customer_id: type: string description: Will be assigned automatically if empty. Should be unique for the administration. tax_number: type: string 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 bank_account: type: string send_invoices_to_attention: type: string 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 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 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 direct_debit: type: - boolean - string custom_fields_attributes: $ref: '#/components/schemas/custom_fields_attributes' required: [] required: - contact examples: 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 UpdateTheSepaSequenceType: summary: Update the sepa sequence type value: contact: sepa_sequence_type: FNAL UpdateAContact: summary: Update a contact value: contact: company_name: Test B.V. UpdateAContactThatHasSepaActivated: summary: Update a contact that has sepa activated value: contact: company_name: Test B.V. responses: '200': description: Contact updated content: application/json: schema: $ref: '#/components/schemas/contact_response' examples: UpdatesAContactWithGivenSiIdentifier: summary: Updates a contact with given si identifier value: id: '475689027747448502' 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 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-01-08T11:40:30.079Z' updated_at: '2026-01-08T11:40:30.122Z' version: 1767872430 sales_invoices_url: https://moneybird.dev/123/sales_invoices/f6e2c9c1bf5350d067f76ec5132852aee4274c461579fc904ab50783d05bf923/all notes: [] custom_fields: [] contact_people: - id: '475689027750594232' contact_id: '475689027747448502' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-01-08T11:40:30.083Z' updated_at: '2026-01-08T11:40:30.083Z' version: 1767872430 - id: '475689027800925893' contact_id: '475689027747448502' administration_id: 123 firstname: null lastname: Appleseed phone: null email: null department: null created_at: '2026-01-08T11:40:30.131Z' updated_at: '2026-01-08T11:40:30.131Z' version: 1767872430 archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:30.089Z' updated_at: '2026-01-08T11:40:30.089Z' - administration_id: 123 user_id: 17678722914505 action: contact_changed link_entity_id: null link_entity_type: null data: changes: si_identifier: - '' - '1234567' created_at: '2026-01-08T11:40:30.125Z' updated_at: '2026-01-08T11:40:30.125Z' CreatesAContactPersonWhenCompanyNameFirstnameAndLastnameExistTogether: summary: Creates a contact person when company name, firstname and lastname exist together value: id: '475689027872229078' 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 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-01-08T11:40:30.199Z' updated_at: '2026-01-08T11:40:30.208Z' version: 1767872430 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: - id: '475689027891103450' contact_id: '475689027872229078' administration_id: 123 firstname: Money lastname: Bird phone: null email: null department: null created_at: '2026-01-08T11:40:30.216Z' updated_at: '2026-01-08T11:40:30.216Z' version: 1767872430 archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_changed link_entity_id: null link_entity_type: null data: changes: firstname: - null - Money lastname: - null - Bird created_at: '2026-01-08T11:40:30.211Z' updated_at: '2026-01-08T11:40:30.211Z' UpdateTheSepaSequenceType: summary: Update the sepa sequence type value: id: '475689027947726565' 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 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-01-08T11:40:30.270Z' updated_at: '2026-01-08T11:40:30.290Z' version: 1767872430 sales_invoices_url: https://moneybird.dev/123/sales_invoices/e0ff3efe67d14b3b70491b2c510869c95397da9720c9c05a44c7226c1c6185bc/all notes: [] custom_fields: [] contact_people: - id: '475689027950872295' contact_id: '475689027947726565' administration_id: 123 firstname: John lastname: Doe phone: null email: null department: null created_at: '2026-01-08T11:40:30.274Z' updated_at: '2026-01-08T11:40:30.274Z' version: 1767872430 archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:30.278Z' updated_at: '2026-01-08T11:40:30.278Z' - administration_id: 123 user_id: 17678722914505 action: contact_changed link_entity_id: null link_entity_type: null data: changes: sepa_sequence_type: - RCUR - FNAL created_at: '2026-01-08T11:40:30.292Z' updated_at: '2026-01-08T11:40:30.292Z' UpdateAContact: summary: Update a contact value: id: '475689028010641134' 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 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-01-08T11:40:30.331Z' updated_at: '2026-01-08T11:40:30.376Z' version: 1767872430 sales_invoices_url: https://moneybird.dev/123/sales_invoices/69d2945d4403187dfe6cea88bc0935effeef74c40030f437c231ff51964cefb7/all notes: [] custom_fields: [] contact_people: - id: '475689028014835440' contact_id: '475689028010641134' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-01-08T11:40:30.334Z' updated_at: '2026-01-08T11:40:30.334Z' version: 1767872430 - id: '475689028070409981' contact_id: '475689028010641134' administration_id: 123 firstname: null lastname: Appleseed phone: null email: null department: null created_at: '2026-01-08T11:40:30.388Z' updated_at: '2026-01-08T11:40:30.388Z' version: 1767872430 archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:30.340Z' updated_at: '2026-01-08T11:40:30.340Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:40:30.378Z' updated_at: '2026-01-08T11:40:30.378Z' UpdateAContactThatHasSepaActivated: summary: Update a contact that has sepa activated value: id: '475689028336748344' 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 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-01-08T11:40:30.641Z' updated_at: '2026-01-08T11:40:30.660Z' version: 1767872430 sales_invoices_url: https://moneybird.dev/123/sales_invoices/d459486a42067624b795084069b207aeb008f793b90d98d9713027b181201fb1/all notes: [] custom_fields: [] contact_people: - id: '475689028339894074' contact_id: '475689028336748344' administration_id: 123 firstname: John lastname: Doe phone: null email: null department: null created_at: '2026-01-08T11:40:30.645Z' updated_at: '2026-01-08T11:40:30.645Z' version: 1767872430 archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:30.649Z' updated_at: '2026-01-08T11:40:30.649Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:40:30.662Z' updated_at: '2026-01-08T11:40:30.662Z' '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. tags: - Contacts 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` tags: - Contacts 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 responses: '200': description: A list of contacts content: application/json: schema: type: array items: $ref: '#/components/schemas/contact_response' examples: ReturnAListOfContacts: summary: Return a list of contacts value: - id: '475689030114084019' 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: '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 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-01-08T11:40:32.336Z' updated_at: '2026-01-08T11:40:32.336Z' version: 1767872432 sales_invoices_url: https://moneybird.dev/123/sales_invoices/79f5b426f0be610c094d9e5b6f1b765a727c6569107b489e09381881cfed8719/all notes: [] custom_fields: [] contact_people: [] archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:32.339Z' updated_at: '2026-01-08T11:40:32.339Z' - id: '475689030073189542' 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 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-01-08T11:40:32.297Z' updated_at: '2026-01-08T11:40:32.311Z' version: 1767872432 sales_invoices_url: https://moneybird.dev/123/sales_invoices/1526cf6412fa35dbb3e493de31393fe4c1417c0bdcd3f34b68ecf3b322a551c8/all notes: [] custom_fields: [] contact_people: - id: '475689030076335272' contact_id: '475689030073189542' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-01-08T11:40:32.301Z' updated_at: '2026-01-08T11:40:32.301Z' version: 1767872432 - id: '475689030121424054' contact_id: '475689030073189542' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:40:32.344Z' updated_at: '2026-01-08T11:40:32.344Z' version: 1767872432 - id: '475689030127715513' contact_id: '475689030073189542' administration_id: 123 firstname: Foo lastname: Bar phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:40:32.350Z' updated_at: '2026-01-08T11:40:32.350Z' version: 1767872432 archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:32.307Z' updated_at: '2026-01-08T11:40:32.307Z' - id: '475689030096258221' 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 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-01-08T11:40:32.319Z' updated_at: '2026-01-08T11:40:32.319Z' version: 1767872432 sales_invoices_url: https://moneybird.dev/123/sales_invoices/81fa9a4cb84375a87128ecc181d57234adf16304bcdaace5d0f46f92c857ebbc/all notes: [] custom_fields: [] contact_people: - id: '475689030099403951' contact_id: '475689030096258221' administration_id: 123 firstname: John lastname: Doe phone: null email: null department: null created_at: '2026-01-08T11:40:32.322Z' updated_at: '2026-01-08T11:40:32.322Z' version: 1767872432 archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:32.328Z' updated_at: '2026-01-08T11:40:32.328Z' AllowsFilteringByNameInCombinationWithPagination: summary: Allows filtering by name in combination with pagination value: [] AllowsFilteringByName: summary: Allows filtering by name value: - id: '475689042495669460' 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 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-01-08T11:40:44.144Z' updated_at: '2026-01-08T11:40:44.268Z' version: 1767872444 sales_invoices_url: https://moneybird.dev/123/sales_invoices/d267177be7f54bc03861c3fd5e3da992238effad28a9898bedb05ac0acdd545b/all notes: [] custom_fields: [] contact_people: - id: '475689042499863766' contact_id: '475689042495669460' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-01-08T11:40:44.148Z' updated_at: '2026-01-08T11:40:44.148Z' version: 1767872444 - id: '475689042806047972' contact_id: '475689042495669460' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:40:44.440Z' updated_at: '2026-01-08T11:40:44.440Z' version: 1767872444 - id: '475689042813388007' contact_id: '475689042495669460' administration_id: 123 firstname: Foo lastname: Bar phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:40:44.447Z' updated_at: '2026-01-08T11:40:44.447Z' version: 1767872444 archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:44.261Z' updated_at: '2026-01-08T11:40:44.261Z' ReturnsPaginatedContactsOnPage1: summary: Returns paginated contacts on page 1 value: - id: '475689042998985999' 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: '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 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-01-08T11:40:44.624Z' updated_at: '2026-01-08T11:40:44.624Z' version: 1767872444 sales_invoices_url: https://moneybird.dev/123/sales_invoices/31f9be613873657b47549f90e241636c70d1c692fc8b332dec1549555c8ad8b3/all notes: [] custom_fields: [] contact_people: [] archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:44.627Z' updated_at: '2026-01-08T11:40:44.627Z' ReturnsEmptyListWhenNoMatchesWithFilter: summary: Returns empty list when no matches with filter value: [] ReturnsPaginatedContactsOnPage2: summary: Returns paginated contacts on page 2 value: - id: '475689049372230960' 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 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-01-08T11:40:50.701Z' updated_at: '2026-01-08T11:40:50.717Z' version: 1767872450 sales_invoices_url: https://moneybird.dev/123/sales_invoices/ce3bb2dad2a9fd39570498dac2661f65de1a2cd83f2b94ef7f3f86226c446b69/all notes: [] custom_fields: [] contact_people: - id: '475689049375376690' contact_id: '475689049372230960' administration_id: 123 firstname: John lastname: Appleseed phone: null email: null department: null created_at: '2026-01-08T11:40:50.706Z' updated_at: '2026-01-08T11:40:50.706Z' version: 1767872450 - id: '475689049422562624' contact_id: '475689049372230960' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:40:50.750Z' updated_at: '2026-01-08T11:40:50.750Z' version: 1767872450 - id: '475689049428854083' contact_id: '475689049372230960' administration_id: 123 firstname: Foo lastname: Bar phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:40:50.756Z' updated_at: '2026-01-08T11:40:50.756Z' version: 1767872450 archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:50.712Z' updated_at: '2026-01-08T11:40:50.712Z' '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. tags: - Contacts 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 address2: type: string zipcode: type: string city: type: string country: type: string description: ISO two-character country code, e.g. NL or DE. phone: type: string 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 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 bank_account: type: string send_invoices_to_attention: type: string 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 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 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 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 direct_debit: type: - boolean - string custom_fields_attributes: $ref: '#/components/schemas/custom_fields_attributes' contact_person: type: object unevaluatedProperties: false properties: firstname: type: string lastname: type: string 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: 475689029465015360 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: '475689029003642825' 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: '' 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-01-08T11:40:31.277Z' updated_at: '2026-01-08T11:40:31.277Z' version: 1767872431 sales_invoices_url: https://moneybird.dev/123/sales_invoices/c956bad1dc0d67c9d6c3067b7528e7aa941b7843a5df561350461f5f84525462/all notes: [] custom_fields: [] contact_people: [] archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:31.280Z' updated_at: '2026-01-08T11:40:31.280Z' CreateANewContact: summary: Create a new contact value: id: '475689029370643474' 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: '' 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-01-08T11:40:31.627Z' updated_at: '2026-01-08T11:40:31.627Z' version: 1767872431 sales_invoices_url: https://moneybird.dev/123/sales_invoices/86adfd2422ed46230ded42adb26f761453047d195c8ab6cb30ffb16441dc2d53/all notes: [] custom_fields: [] contact_people: [] archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:31.630Z' updated_at: '2026-01-08T11:40:31.630Z' AddingValuesForCustomFields: summary: Adding values for custom fields value: id: '475689029478646822' 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: '' 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-01-08T11:40:31.730Z' updated_at: '2026-01-08T11:40:31.730Z' version: 1767872431 sales_invoices_url: https://moneybird.dev/123/sales_invoices/287a323f84dfb76bdd07d1a2628b7862ed6581506ec8ffc1fb17f662cf698262/all notes: [] custom_fields: - id: '475689029465015332' name: Number value: Field value contact_people: [] archived: false events: - administration_id: 123 user_id: 17678722914505 action: contact_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:31.733Z' updated_at: '2026-01-08T11:40:31.733Z' CreateANewContactWithMandateDateInTimezoneGap: summary: Create a new contact with mandate date in timezone gap value: id: '475689029570921527' 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: '' 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/29890b2a7a11c0d5a0bcdd787e42098bcc548fae6620071e34dbe0e134abccd2/all notes: [] custom_fields: [] contact_people: [] archived: false events: - administration_id: 123 user_id: 17678722914505 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. tags: - Custom fields 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: '475689108745749648' administration_id: 123 name: custom_field_a5cdd4f2a4be3a305b3a 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. tags: - Customer contact portal 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 '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). tags: - Customer contact portal 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 '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' 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. tags: - Customer contact portal 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 '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' 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. tags: - Document styles 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: '475688883890160792' administration_id: 123 name: Standaard identity_id: '475688883057591402' 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-01-08T11:38:12.884Z' updated_at: '2026-01-08T11:38:12.907Z' 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. tags: - 'Documents: General documents' parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string description: 'String terms, example: key1:value1,key2:value2.' 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: '475688888785962401' version: 1767872297 - id: '475688888797496739' version: 1767872297 - id: '475688888806933925' version: 1767872297 RetrievesAllIdsForSynchronizationUsingAFilter: summary: Retrieves all ids for synchronization using a filter value: - id: '475688888928568760' version: 1767872297 - id: '475688888938005946' version: 1767872297 - id: '475688888948491708' version: 1767872297 operationId: get_administration_id_documents_general_documents_synchronization post: summary: Fetch general documents with given ids 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. tags: - 'Documents: General 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: - 475688888629724540 - 475688888638113150 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: '475688888629724556' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-01-08' due_date: null entry_number: 3 state: saved exchange_rate: '1.0' created_at: '2026-01-08T11:38:17.406Z' updated_at: '2026-01-08T11:38:17.406Z' version: 1767872297 notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:17.409Z' updated_at: '2026-01-08T11:38:17.409Z' - id: '475688888638113166' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-01-08' due_date: null entry_number: 4 state: saved exchange_rate: '1.0' created_at: '2026-01-08T11:38:17.415Z' updated_at: '2026-01-08T11:38:17.415Z' version: 1767872297 notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:17.417Z' updated_at: '2026-01-08T11:38:17.417Z' 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. tags: - 'Documents: General 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. tags: - 'Documents: General 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: 475688891786987260 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '475688891838367471' administration_id: 123 entity_id: '475688891768112875' entity_type: Document user_id: 17678722914505 assignee_id: '475688891786987245' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-01-08T11:38:20.466Z' updated_at: '2026-01-08T11:38:20.466Z' '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. tags: - 'Documents: General 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. tags: - 'Documents: General 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. tags: - 'Documents: General 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. tags: - 'Documents: General 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: '475688887490970878' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-01-08' due_date: null entry_number: 2 state: saved exchange_rate: '1.0' created_at: '2026-01-08T11:38:16.320Z' updated_at: '2026-01-08T11:38:16.320Z' version: 1767872296 notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:16.323Z' updated_at: '2026-01-08T11:38:16.323Z' '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. tags: - 'Documents: General 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. tags: - 'Documents: General 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 description: '**Required**.' due_date: type: string reminder_date: type: string contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. reminder: type: object unevaluatedProperties: false properties: date: type: string 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: '475688892510504782' administration_id: 123 contact_id: null contact: null reference: updated reference date: '2026-01-08' due_date: null entry_number: 2 state: saved exchange_rate: '1.0' created_at: '2026-01-08T11:38:21.106Z' updated_at: '2026-01-08T11:38:21.131Z' version: 1767872301 notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:21.109Z' updated_at: '2026-01-08T11:38:21.109Z' - administration_id: 123 user_id: 17678722914505 action: document_updated link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:21.134Z' updated_at: '2026-01-08T11:38:21.134Z' '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. The `filter` argument allows you to filter on the list of documents. Filters are a combination of keys and values, separated by a comma: `key:value,key2:value2`. The most common filter method will be `period`: `period:this_month`. Filtering works the same as in the web application, for more advanced examples, change the filtering in the web application and learn from the resulting URI. tags: - 'Documents: General documents' parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string description: 'String terms, example: `key1:value1,key2:value2`.' - 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 documents content: application/json: schema: type: array items: $ref: '#/components/schemas/general_document_response' examples: ReturnsAListOfGeneralDocuments: summary: Returns a list of general documents value: - id: '475688891148404365' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-01-08' due_date: null entry_number: 5 state: saved exchange_rate: '1.0' created_at: '2026-01-08T11:38:19.809Z' updated_at: '2026-01-08T11:38:19.809Z' version: 1767872299 notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:19.811Z' updated_at: '2026-01-08T11:38:19.811Z' - id: '475688891138967179' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-01-08' due_date: null entry_number: 4 state: saved exchange_rate: '1.0' created_at: '2026-01-08T11:38:19.799Z' updated_at: '2026-01-08T11:38:19.799Z' version: 1767872299 notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:19.802Z' updated_at: '2026-01-08T11:38:19.802Z' - id: '475688891128481417' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-01-08' due_date: null entry_number: 3 state: saved exchange_rate: '1.0' created_at: '2026-01-08T11:38:19.790Z' updated_at: '2026-01-08T11:38:19.790Z' version: 1767872299 notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:19.792Z' updated_at: '2026-01-08T11:38:19.792Z' - id: '475688891117995655' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-01-08' due_date: null entry_number: 2 state: saved exchange_rate: '1.0' created_at: '2026-01-08T11:38:19.779Z' updated_at: '2026-01-08T11:38:19.779Z' version: 1767872299 notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:19.783Z' updated_at: '2026-01-08T11:38:19.783Z' ReturnsPaginatedGeneralDocumentsOnPage1: summary: Returns paginated general documents on page 1 value: - id: '475688891331905190' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-01-08' due_date: null entry_number: 5 state: saved exchange_rate: '1.0' created_at: '2026-01-08T11:38:19.984Z' updated_at: '2026-01-08T11:38:19.984Z' version: 1767872299 notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:19.986Z' updated_at: '2026-01-08T11:38:19.986Z' ReturnsPaginatedGeneralDocumentsOnPage2: summary: Returns paginated general documents on page 2 value: - id: '475688891497580221' administration_id: 123 contact_id: null contact: null reference: Contract date: '2026-01-08' due_date: null entry_number: 4 state: saved exchange_rate: '1.0' created_at: '2026-01-08T11:38:20.142Z' updated_at: '2026-01-08T11:38:20.142Z' version: 1767872300 notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:20.144Z' updated_at: '2026-01-08T11:38:20.144Z' '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. tags: - 'Documents: General 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 description: '**Required**.' due_date: type: string reminder_date: type: string contact_id: $ref: '#/components/schemas/identifier' description: Should be a valid contact id. reminder: type: object unevaluatedProperties: false properties: date: type: string message: type: string required: - date required: [] required: [] examples: CreatesTheGeneralDocument: summary: Creates the general document value: general_document: reference: foobar contact_id: 475688888161011000 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: '475688888249091428' administration_id: 123 contact_id: '475688888161011027' contact: id: '475688888161011027' 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 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-01-08T11:38:16.959Z' updated_at: '2026-01-08T11:38:16.959Z' version: 1767872296 sales_invoices_url: https://moneybird.dev/123/sales_invoices/bb1f22e839cde6e6a0b532a655b37825e4b5961305dffca10e5781576828cd33/all notes: [] custom_fields: [] contact_people: [] archived: false reference: foobar date: '2026-01-08' due_date: null entry_number: 3 state: saved exchange_rate: '1.0' created_at: '2026-01-08T11:38:17.043Z' updated_at: '2026-01-08T11:38:17.043Z' version: 1767872297 notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:17.047Z' updated_at: '2026-01-08T11:38:17.047Z' '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. tags: - 'Documents: General journal documents' parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string description: 'String terms, example: key1:value1,key2:value2.' 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: RetrievesAllIdsForSynchronizationUsingAFilter: summary: Retrieves all ids for synchronization using a filter value: - id: '475689069104334117' version: 1767872469 - id: '475689069144180024' version: 1767872469 - id: '475689069184025931' version: 1767872469 RetrievesAllIdsForSynchronization: summary: Retrieves all ids for synchronization value: - id: '475689069301466481' version: 1767872469 - id: '475689069341312388' version: 1767872469 - id: '475689069381158295' version: 1767872469 operationId: get_administration_id_documents_general_journal_documents_synchronization post: summary: Fetch general journal documents with given ids 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. tags: - 'Documents: General journal 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: - 475689069577242050 - 475689069621282300 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: '475689069577242064' administration_id: 123 reference: Deprecations date: '2026-01-08' journal_type: null created_at: '2026-01-08T11:41:09.971Z' updated_at: '2026-01-08T11:41:09.971Z' version: 1767872469 general_journal_document_entries: - id: '475689069579339217' administration_id: 123 ledger_account_id: '475689069549979087' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-01-08T11:41:09.973Z' updated_at: '2026-01-08T11:41:09.973Z' description: First - id: '475689069579339218' administration_id: 123 ledger_account_id: '475689069549979087' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-01-08T11:41:09.974Z' updated_at: '2026-01-08T11:41:09.974Z' description: Second - id: '475689069580387795' administration_id: 123 ledger_account_id: '475689069549979087' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-01-08T11:41:09.975Z' updated_at: '2026-01-08T11:41:09.975Z' description: Third - id: '475689069581436372' administration_id: 123 ledger_account_id: '475689069549979087' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-01-08T11:41:09.976Z' updated_at: '2026-01-08T11:41:09.976Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:09.978Z' updated_at: '2026-01-08T11:41:09.978Z' - id: '475689069621282275' administration_id: 123 reference: Deprecations date: '2026-01-08' journal_type: null created_at: '2026-01-08T11:41:10.013Z' updated_at: '2026-01-08T11:41:10.013Z' version: 1767872470 general_journal_document_entries: - id: '475689069622330852' administration_id: 123 ledger_account_id: '475689069597165026' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-01-08T11:41:10.015Z' updated_at: '2026-01-08T11:41:10.015Z' description: First - id: '475689069623379429' administration_id: 123 ledger_account_id: '475689069597165026' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-01-08T11:41:10.016Z' updated_at: '2026-01-08T11:41:10.016Z' description: Second - id: '475689069624428006' administration_id: 123 ledger_account_id: '475689069597165026' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-01-08T11:41:10.017Z' updated_at: '2026-01-08T11:41:10.017Z' description: Third - id: '475689069625476583' administration_id: 123 ledger_account_id: '475689069597165026' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-01-08T11:41:10.017Z' updated_at: '2026-01-08T11:41:10.017Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:10.019Z' updated_at: '2026-01-08T11:41:10.019Z' 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. tags: - 'Documents: General journal 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. tags: - 'Documents: General journal 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: 475689071397569540 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '475689071416443922' administration_id: 123 entity_id: '475689071376599038' entity_type: Document user_id: 17678722914505 assignee_id: '475689071397569552' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-01-08T11:41:11.725Z' updated_at: '2026-01-08T11:41:11.725Z' '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. tags: - 'Documents: General journal 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. tags: - 'Documents: General journal 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. tags: - 'Documents: General journal 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. tags: - 'Documents: General journal 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: '475689070986528652' administration_id: 123 reference: Deprecations date: '2026-01-08' journal_type: null created_at: '2026-01-08T11:41:11.315Z' updated_at: '2026-01-08T11:41:11.315Z' version: 1767872471 general_journal_document_entries: - id: '475689070987577229' administration_id: 123 ledger_account_id: '475689070963459979' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-01-08T11:41:11.317Z' updated_at: '2026-01-08T11:41:11.317Z' description: First - id: '475689070988625806' administration_id: 123 ledger_account_id: '475689070963459979' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-01-08T11:41:11.318Z' updated_at: '2026-01-08T11:41:11.318Z' description: Second - id: '475689070989674383' administration_id: 123 ledger_account_id: '475689070963459979' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-01-08T11:41:11.319Z' updated_at: '2026-01-08T11:41:11.319Z' description: Third - id: '475689070990722960' administration_id: 123 ledger_account_id: '475689070963459979' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-01-08T11:41:11.320Z' updated_at: '2026-01-08T11:41:11.320Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:11.322Z' updated_at: '2026-01-08T11:41:11.322Z' '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. tags: - 'Documents: General journal 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. tags: - 'Documents: General journal 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 origin: type: string description: Can be `api`, `upload`, `endpoint`, `si`, `si_local`, `si_peppol`, `email`, `moneybird_bv` or `mollie`. 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: '475689070026032725' administration_id: 123 reference: updated reference date: '2026-01-08' journal_type: null created_at: '2026-01-08T11:41:10.400Z' updated_at: '2026-01-08T11:41:10.438Z' version: 1767872470 general_journal_document_entries: - id: '475689070028129878' administration_id: 123 ledger_account_id: '475689069999818324' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-01-08T11:41:10.401Z' updated_at: '2026-01-08T11:41:10.401Z' description: First - id: '475689070029178455' administration_id: 123 ledger_account_id: '475689069999818324' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-01-08T11:41:10.403Z' updated_at: '2026-01-08T11:41:10.403Z' description: Second - id: '475689070030227032' administration_id: 123 ledger_account_id: '475689069999818324' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-01-08T11:41:10.403Z' updated_at: '2026-01-08T11:41:10.403Z' description: Third - id: '475689070031275609' administration_id: 123 ledger_account_id: '475689069999818324' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-01-08T11:41:10.404Z' updated_at: '2026-01-08T11:41:10.404Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:10.407Z' updated_at: '2026-01-08T11:41:10.407Z' - administration_id: 123 user_id: 17678722914505 action: document_updated link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:10.440Z' updated_at: '2026-01-08T11:41:10.440Z' '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 `filter` argument allows you to filter on the list of documents. Filters are a combination of keys and values, separated by a comma: `key:value,key2:value2`. The most common filter method will be `period`: `period:this_month`. Filtering works the same as in the web application, for more advanced examples, change the filtering in the web application and learn from the resulting URI. tags: - 'Documents: General journal documents' parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string description: 'String terms, example: `key1:value1,key2:value2`.' - 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: ReturnsAListOfGeneralJournalDocuments: summary: Returns a list of general journal documents value: - id: '475689067622696766' administration_id: 123 reference: Deprecations date: '2026-01-08' journal_type: null created_at: '2026-01-08T11:41:08.107Z' updated_at: '2026-01-08T11:41:08.107Z' version: 1767872468 general_journal_document_entries: - id: '475689067623745343' administration_id: 123 ledger_account_id: '475689067598579517' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-01-08T11:41:08.109Z' updated_at: '2026-01-08T11:41:08.109Z' description: First - id: '475689067624793920' administration_id: 123 ledger_account_id: '475689067598579517' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-01-08T11:41:08.110Z' updated_at: '2026-01-08T11:41:08.110Z' description: Second - id: '475689067625842497' administration_id: 123 ledger_account_id: '475689067598579517' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-01-08T11:41:08.111Z' updated_at: '2026-01-08T11:41:08.111Z' description: Third - id: '475689067626891074' administration_id: 123 ledger_account_id: '475689067598579517' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-01-08T11:41:08.112Z' updated_at: '2026-01-08T11:41:08.112Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:08.114Z' updated_at: '2026-01-08T11:41:08.114Z' - id: '475689067578656555' administration_id: 123 reference: Deprecations date: '2026-01-08' journal_type: null created_at: '2026-01-08T11:41:08.066Z' updated_at: '2026-01-08T11:41:08.066Z' version: 1767872468 general_journal_document_entries: - id: '475689067580753708' administration_id: 123 ledger_account_id: '475689067556636458' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-01-08T11:41:08.067Z' updated_at: '2026-01-08T11:41:08.067Z' description: First - id: '475689067581802285' administration_id: 123 ledger_account_id: '475689067556636458' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-01-08T11:41:08.068Z' updated_at: '2026-01-08T11:41:08.068Z' description: Second - id: '475689067582850862' administration_id: 123 ledger_account_id: '475689067556636458' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-01-08T11:41:08.069Z' updated_at: '2026-01-08T11:41:08.069Z' description: Third - id: '475689067583899439' administration_id: 123 ledger_account_id: '475689067556636458' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-01-08T11:41:08.070Z' updated_at: '2026-01-08T11:41:08.070Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:08.073Z' updated_at: '2026-01-08T11:41:08.073Z' - id: '475689067537762072' administration_id: 123 reference: Deprecations date: '2026-01-08' journal_type: null created_at: '2026-01-08T11:41:08.027Z' updated_at: '2026-01-08T11:41:08.027Z' version: 1767872468 general_journal_document_entries: - id: '475689067539859225' administration_id: 123 ledger_account_id: '475689067516790551' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-01-08T11:41:08.028Z' updated_at: '2026-01-08T11:41:08.028Z' description: First - id: '475689067540907802' administration_id: 123 ledger_account_id: '475689067516790551' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-01-08T11:41:08.029Z' updated_at: '2026-01-08T11:41:08.029Z' description: Second - id: '475689067540907803' administration_id: 123 ledger_account_id: '475689067516790551' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-01-08T11:41:08.030Z' updated_at: '2026-01-08T11:41:08.030Z' description: Third - id: '475689067541956380' administration_id: 123 ledger_account_id: '475689067516790551' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-01-08T11:41:08.031Z' updated_at: '2026-01-08T11:41:08.031Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:08.033Z' updated_at: '2026-01-08T11:41:08.033Z' - id: '475689067498964741' administration_id: 123 reference: Deprecations date: '2026-01-08' journal_type: null created_at: '2026-01-08T11:41:07.989Z' updated_at: '2026-01-08T11:41:07.989Z' version: 1767872467 general_journal_document_entries: - id: '475689067500013318' administration_id: 123 ledger_account_id: '475689067476944644' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-01-08T11:41:07.991Z' updated_at: '2026-01-08T11:41:07.991Z' description: First - id: '475689067501061895' administration_id: 123 ledger_account_id: '475689067476944644' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-01-08T11:41:07.992Z' updated_at: '2026-01-08T11:41:07.992Z' description: Second - id: '475689067502110472' administration_id: 123 ledger_account_id: '475689067476944644' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-01-08T11:41:07.993Z' updated_at: '2026-01-08T11:41:07.993Z' description: Third - id: '475689067503159049' administration_id: 123 ledger_account_id: '475689067476944644' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-01-08T11:41:07.994Z' updated_at: '2026-01-08T11:41:07.994Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:07.996Z' updated_at: '2026-01-08T11:41:07.996Z' ReturnsPaginatedGeneralJournalDocumentsOnPage2: summary: Returns paginated general journal documents on page 2 value: - id: '475689067858626442' administration_id: 123 reference: Deprecations date: '2026-01-08' journal_type: null created_at: '2026-01-08T11:41:08.332Z' updated_at: '2026-01-08T11:41:08.332Z' version: 1767872468 general_journal_document_entries: - id: '475689067859675019' administration_id: 123 ledger_account_id: '475689067833460617' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-01-08T11:41:08.334Z' updated_at: '2026-01-08T11:41:08.334Z' description: First - id: '475689067860723596' administration_id: 123 ledger_account_id: '475689067833460617' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-01-08T11:41:08.335Z' updated_at: '2026-01-08T11:41:08.335Z' description: Second - id: '475689067861772173' administration_id: 123 ledger_account_id: '475689067833460617' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-01-08T11:41:08.336Z' updated_at: '2026-01-08T11:41:08.336Z' description: Third - id: '475689067862820750' administration_id: 123 ledger_account_id: '475689067833460617' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-01-08T11:41:08.337Z' updated_at: '2026-01-08T11:41:08.337Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:08.339Z' updated_at: '2026-01-08T11:41:08.339Z' ReturnsPaginatedGeneralJournalDocumentsOnPage1: summary: Returns paginated general journal documents on page 1 value: - id: '475689068430099547' administration_id: 123 reference: Deprecations date: '2026-01-08' journal_type: null created_at: '2026-01-08T11:41:08.877Z' updated_at: '2026-01-08T11:41:08.877Z' version: 1767872468 general_journal_document_entries: - id: '475689068431148124' administration_id: 123 ledger_account_id: '475689068404933722' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: 1 created_at: '2026-01-08T11:41:08.879Z' updated_at: '2026-01-08T11:41:08.879Z' description: First - id: '475689068432196701' administration_id: 123 ledger_account_id: '475689068404933722' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: 2 created_at: '2026-01-08T11:41:08.880Z' updated_at: '2026-01-08T11:41:08.880Z' description: Second - id: '475689068433245278' administration_id: 123 ledger_account_id: '475689068404933722' project_id: null contact_id: null debit: '50.0' credit: '0.0' row_order: 3 created_at: '2026-01-08T11:41:08.881Z' updated_at: '2026-01-08T11:41:08.881Z' description: Third - id: '475689068434293855' administration_id: 123 ledger_account_id: '475689068404933722' project_id: null contact_id: null debit: '0.0' credit: '50.0' row_order: 4 created_at: '2026-01-08T11:41:08.882Z' updated_at: '2026-01-08T11:41:08.882Z' description: Fourth notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:08.884Z' updated_at: '2026-01-08T11:41:08.884Z' '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. tags: - 'Documents: General journal 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 origin: type: string description: Can be `api`, `upload`, `endpoint`, `si`, `si_local`, `si_peppol`, `email`, `moneybird_bv` or `mollie`. 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: 475689068669175000 debit: 100 credit: 0 '1': ledger_account_id: 475689068719506600 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: '475689068745721019' administration_id: 123 reference: foobar date: '2026-01-08' journal_type: null created_at: '2026-01-08T11:41:09.178Z' updated_at: '2026-01-08T11:41:09.178Z' version: 1767872469 general_journal_document_entries: - id: '475689068747818172' administration_id: 123 ledger_account_id: '475689068669174948' project_id: null contact_id: null debit: '100.0' credit: '0.0' row_order: null created_at: '2026-01-08T11:41:09.180Z' updated_at: '2026-01-08T11:41:09.180Z' description: null - id: '475689068748866749' administration_id: 123 ledger_account_id: '475689068719506617' project_id: null contact_id: null debit: '0.0' credit: '100.0' row_order: null created_at: '2026-01-08T11:41:09.181Z' updated_at: '2026-01-08T11:41:09.181Z' description: null notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:09.183Z' updated_at: '2026-01-08T11:41:09.183Z' '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. tags: - 'Documents: Purchase invoices' parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string description: 'String terms, example: key1:value1,key2:value2.' 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: RetrievesAllIdsForSynchronizationUsingAFilter: summary: Retrieves all ids for synchronization using a filter value: - id: '475688988669118177' version: 1767872392 - id: '475688988744615673' version: 1767872392 - id: '475688988784461573' version: 1767872392 RetrievesAllIdsForSynchronization: summary: Retrieves all ids for synchronization value: - id: '475688988868347670' version: 1767872393 - id: '475688988940699438' version: 1767872393 - id: '475688988983691066' version: 1767872393 operationId: get_administration_id_documents_purchase_invoices_synchronization post: summary: Fetch purchase invoices with given ids 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. tags: - 'Documents: Purchase 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: RetrievesDocumentsForGivenIds: summary: Retrieves documents for given ids value: ids: - 475688988526511800 - 475688988565309100 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: '475688988526511812' administration_id: 123 contact_id: '475688988422702761' contact: id: '475688988422702761' 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 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-01-08T11:39:52.576Z' updated_at: '2026-01-08T11:39:52.576Z' version: 1767872392 sales_invoices_url: https://moneybird.dev/123/sales_invoices/57bfa117add5a8c0c30e76c0057b92956bd23f579e1975a6aedfa20daee9fb9c/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-01-08' due_date: '2026-01-22' 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: '' 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-01-08T11:39:52.675Z' updated_at: '2026-01-08T11:39:52.678Z' version: 1767872392 details: - id: '475688988528608965' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:52.677Z' updated_at: '2026-01-08T11:39:52.677Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:52.680Z' updated_at: '2026-01-08T11:39:52.680Z' - id: '475688988565309136' administration_id: 123 contact_id: '475688988422702761' contact: id: '475688988422702761' 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 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-01-08T11:39:52.576Z' updated_at: '2026-01-08T11:39:52.576Z' version: 1767872392 sales_invoices_url: https://moneybird.dev/123/sales_invoices/57bfa117add5a8c0c30e76c0057b92956bd23f579e1975a6aedfa20daee9fb9c/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-01-08' due_date: '2026-01-22' 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: '' 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-01-08T11:39:52.713Z' updated_at: '2026-01-08T11:39:52.716Z' version: 1767872392 details: - id: '475688988567406289' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:52.714Z' updated_at: '2026-01-08T11:39:52.714Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:52.717Z' updated_at: '2026-01-08T11:39:52.717Z' 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. tags: - 'Documents: Purchase invoices' 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. tags: - 'Documents: Purchase invoices' 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. tags: - 'Documents: Purchase 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_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. tags: - 'Documents: Purchase invoices' 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. tags: - 'Documents: Purchase 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: CreateAPayment: summary: Create a payment value: payment: payment_date: '2026-01-08T11:39:52.312Z' 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: '475688988159510123' administration_id: 123 invoice_type: Document invoice_id: '475688988096595539' financial_account_id: null user_id: 17678722914505 payment_transaction_id: null transaction_identifier: null price: '363.0' price_base: '363.0' payment_date: '2026-01-08' credit_invoice_id: null financial_mutation_id: null ledger_account_id: '475688883267306625' linked_payment_id: null manual_payment_action: null created_at: '2026-01-08T11:39:52.325Z' updated_at: '2026-01-08T11:39:52.325Z' '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`. deprecated: true x-sunset: '2026-12-31' tags: - 'Documents: Purchase 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: CreateAPayment: summary: Create a payment value: payment: payment_date: '2026-01-08T11:39:53.244Z' 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. tags: - 'Documents: Purchase 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 purchase invoice content: application/json: schema: $ref: '#/components/schemas/purchase_invoice_response' examples: ReturnsTheWantedPurchaseInvoice: summary: Returns the wanted purchase invoice value: id: '475688992153536091' administration_id: 123 contact_id: '475688992118933080' contact: id: '475688992118933080' 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 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-01-08T11:39:56.101Z' updated_at: '2026-01-08T11:39:56.101Z' version: 1767872396 sales_invoices_url: https://moneybird.dev/123/sales_invoices/cfc143a009474998c421d3ba87b6c1811d3dff26be826fe410041178c7522d10/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-01-08' due_date: '2026-01-22' 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: '' 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-01-08T11:39:56.134Z' updated_at: '2026-01-08T11:39:56.138Z' version: 1767872396 details: - id: '475688992155633244' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:56.137Z' updated_at: '2026-01-08T11:39:56.137Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:56.140Z' updated_at: '2026-01-08T11:39:56.140Z' '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. tags: - 'Documents: Purchase 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: 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. tags: - 'Documents: Purchase 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: purchase_invoice: type: object unevaluatedProperties: false properties: contact_id: $ref: '#/components/schemas/identifier' description: '**Required**. Should be a valid contact id.' reference: type: string description: '**Required**.' date: type: string description: '**Required**.' due_date: type: string currency: type: string description: ISO three-character currency code, e.g. EUR or USD. prices_are_incl_tax: type: - boolean - string revenue_invoice: type: - boolean - string details_attributes: $ref: '#/components/schemas/details_attributes' required: [] required: [] examples: UpdatesInvoiceDetails: summary: Updates invoice details value: purchase_invoice: details_attributes: '0': description: New detail price: 99 amount: 1 tax_rate_id: 475688883332318340 ledger_account_id: 475688883240043650 '1': id: 475688989436676030 _destroy: true UpdatesThePurchaseInvoice: summary: Updates the purchase invoice value: purchase_invoice: reference: updated reference responses: '200': description: Purchase invoice updated content: application/json: schema: $ref: '#/components/schemas/purchase_invoice_response' examples: UpdatesInvoiceDetails: summary: Updates invoice details value: id: '475688989435627428' administration_id: 123 contact_id: '475688989405218721' contact: id: '475688989405218721' 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 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-01-08T11:39:53.514Z' updated_at: '2026-01-08T11:39:53.514Z' version: 1767872393 sales_invoices_url: https://moneybird.dev/123/sales_invoices/4ecd87a05d6a9d9ed421dbcf9b798537c2e42651eeffd465b85e13bc15e0bb5c/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-01-08' due_date: '2026-01-22' 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: '' 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-01-08T11:39:53.542Z' updated_at: '2026-01-08T11:39:53.625Z' version: 1767872393 details: - id: '475688989520562108' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:53.624Z' updated_at: '2026-01-08T11:39:53.624Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:53.547Z' updated_at: '2026-01-08T11:39:53.547Z' - administration_id: 123 user_id: 17678722914505 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: '475688883332318348' report_reference: NL/5b payable: false debit: '63.0' credit: 0 - - tax_rate_id: '475688883332318348' report_reference: NL/5b payable: false debit: '20.79' credit: 0 updated_at: - '2026-01-08T12:39:53.545+01:00' - '2026-01-08T12:39:53.618+01:00' created_at: '2026-01-08T11:39:53.626Z' updated_at: '2026-01-08T11:39:53.626Z' UpdatesThePurchaseInvoice: summary: Updates the purchase invoice value: id: '475688989922165804' administration_id: 123 contact_id: '475688989891757097' contact: id: '475688989891757097' 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 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-01-08T11:39:53.977Z' updated_at: '2026-01-08T11:39:53.977Z' version: 1767872393 sales_invoices_url: https://moneybird.dev/123/sales_invoices/1a9a291853b0304960c9b644c90d8ccf768f025656d255da88d1bdfef54cacc2/all notes: [] custom_fields: [] contact_people: [] archived: false reference: updated reference date: '2026-01-08' due_date: '2026-01-22' 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: '' 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-01-08T11:39:54.006Z' updated_at: '2026-01-08T11:39:54.071Z' version: 1767872394 details: - id: '475688989923214381' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:54.008Z' updated_at: '2026-01-08T11:39:54.008Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:54.010Z' updated_at: '2026-01-08T11:39:54.010Z' - administration_id: 123 user_id: 17678722914505 action: document_updated link_entity_id: null link_entity_type: null data: changes: reference: - 2013-01234 - updated reference updated_at: - '2026-01-08T12:39:54.009+01:00' - '2026-01-08T12:39:54.071+01:00' created_at: '2026-01-08T11:39:54.074Z' updated_at: '2026-01-08T11:39:54.074Z' '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. tags: - 'Documents: Purchase invoices' 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. tags: - 'Documents: Purchase invoices' 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: 475688991942772300 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '475688991961646647' administration_id: 123 entity_id: '475688991888246301' entity_type: Document user_id: 17678722914505 assignee_id: '475688991942772277' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-01-08T11:39:55.951Z' updated_at: '2026-01-08T11:39:55.951Z' '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. The `filter` argument allows you to filter on the list of documents. Filters are a combination of keys and values, separated by a comma: `key:value,key2:value2`. The most common filter method will be `period`: `period:this_month`. Filtering works the same as in the web application, for more advanced examples, change the filtering in the web application and learn from the resulting URI. tags: - 'Documents: Purchase invoices' parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string description: 'String terms, example: `key1:value1,key2:value2`.' - 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 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: '475688990513562829' administration_id: 123 contact_id: '475688990267147418' contact: id: '475688990267147418' 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 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-01-08T11:39:54.335Z' updated_at: '2026-01-08T11:39:54.335Z' version: 1767872394 sales_invoices_url: https://moneybird.dev/123/sales_invoices/30b1cf4c24250a6d41d0811a11a82bed826f1a2858d0f6a1632987b136bead08/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-01-08' due_date: '2026-01-22' 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: '' 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-01-08T11:39:54.570Z' updated_at: '2026-01-08T11:39:54.574Z' version: 1767872394 details: - id: '475688990515659982' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:54.572Z' updated_at: '2026-01-08T11:39:54.572Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:54.575Z' updated_at: '2026-01-08T11:39:54.575Z' ReturnsAListOfPurchaseInvoices: summary: Returns a list of purchase invoices value: - id: '475688990802969870' administration_id: 123 contact_id: '475688990599546075' contact: id: '475688990599546075' 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 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-01-08T11:39:54.653Z' updated_at: '2026-01-08T11:39:54.653Z' version: 1767872394 sales_invoices_url: https://moneybird.dev/123/sales_invoices/4f6c7df774c3b6997f1263102bc7455eaebac5d3c7a1f385a600147cb88054d6/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-01-08' due_date: '2026-01-22' 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: '' 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-01-08T11:39:54.845Z' updated_at: '2026-01-08T11:39:54.850Z' version: 1767872394 details: - id: '475688990805067023' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:54.848Z' updated_at: '2026-01-08T11:39:54.848Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:54.851Z' updated_at: '2026-01-08T11:39:54.851Z' - id: '475688990759978242' administration_id: 123 contact_id: '475688990599546075' contact: id: '475688990599546075' 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 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-01-08T11:39:54.653Z' updated_at: '2026-01-08T11:39:54.653Z' version: 1767872394 sales_invoices_url: https://moneybird.dev/123/sales_invoices/4f6c7df774c3b6997f1263102bc7455eaebac5d3c7a1f385a600147cb88054d6/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-01-08' due_date: '2026-01-22' 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: '' 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-01-08T11:39:54.806Z' updated_at: '2026-01-08T11:39:54.809Z' version: 1767872394 details: - id: '475688990762075395' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:54.808Z' updated_at: '2026-01-08T11:39:54.808Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:54.811Z' updated_at: '2026-01-08T11:39:54.811Z' - id: '475688990716986614' administration_id: 123 contact_id: '475688990599546075' contact: id: '475688990599546075' 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 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-01-08T11:39:54.653Z' updated_at: '2026-01-08T11:39:54.653Z' version: 1767872394 sales_invoices_url: https://moneybird.dev/123/sales_invoices/4f6c7df774c3b6997f1263102bc7455eaebac5d3c7a1f385a600147cb88054d6/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-01-08' due_date: '2026-01-22' 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: '' 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-01-08T11:39:54.764Z' updated_at: '2026-01-08T11:39:54.769Z' version: 1767872394 details: - id: '475688990720132343' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:54.767Z' updated_at: '2026-01-08T11:39:54.767Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:54.770Z' updated_at: '2026-01-08T11:39:54.770Z' - id: '475688990636246238' administration_id: 123 contact_id: '475688990599546075' contact: id: '475688990599546075' 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 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-01-08T11:39:54.653Z' updated_at: '2026-01-08T11:39:54.653Z' version: 1767872394 sales_invoices_url: https://moneybird.dev/123/sales_invoices/4f6c7df774c3b6997f1263102bc7455eaebac5d3c7a1f385a600147cb88054d6/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-01-08' due_date: '2026-01-22' 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: '' 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-01-08T11:39:54.687Z' updated_at: '2026-01-08T11:39:54.691Z' version: 1767872394 details: - id: '475688990638343391' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:54.689Z' updated_at: '2026-01-08T11:39:54.689Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:54.693Z' updated_at: '2026-01-08T11:39:54.693Z' ReturnsPaginatedPurchaseInvoicesOnPage2: summary: Returns paginated purchase invoices on page 2 value: - id: '475688991029462339' administration_id: 123 contact_id: '475688990883710236' contact: id: '475688990883710236' 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 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-01-08T11:39:54.923Z' updated_at: '2026-01-08T11:39:54.923Z' version: 1767872394 sales_invoices_url: https://moneybird.dev/123/sales_invoices/84a1e6d92bc2f594b7fa8c113faf7be5aca0a461fd6534f2ace95bae7687e43a/all notes: [] custom_fields: [] contact_people: [] archived: false reference: 2013-01234 date: '2026-01-08' due_date: '2026-01-22' 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: '' 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-01-08T11:39:55.062Z' updated_at: '2026-01-08T11:39:55.065Z' version: 1767872395 details: - id: '475688991030510916' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:55.064Z' updated_at: '2026-01-08T11:39:55.064Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:55.066Z' updated_at: '2026-01-08T11:39:55.066Z' '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. tags: - 'Documents: Purchase invoices' 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: '**Required**. Should be a valid contact id.' reference: type: string description: '**Required**.' date: type: string description: '**Required**.' due_date: type: string currency: type: string description: ISO three-character currency code, e.g. EUR or USD. prices_are_incl_tax: type: - boolean - string revenue_invoice: type: - boolean - string details_attributes: $ref: '#/components/schemas/details_attributes' required: [] required: [] examples: CreatesThePurchaseInvoice: summary: Creates the purchase invoice value: purchase_invoice: reference: foobar contact_id: 475688985275925570 details_attributes: '0': description: Lunch price: 20 tax_rate_id: 475688883332318340 ledger_account_id: 475688883240043650 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: '475688985386026100' administration_id: 123 contact_id: '475688985275925593' contact: id: '475688985275925593' 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 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-01-08T11:39:49.575Z' updated_at: '2026-01-08T11:39:49.575Z' version: 1767872389 sales_invoices_url: https://moneybird.dev/123/sales_invoices/9346dfe93cc3105caf2f855b2f23e4a816284da16f227b54543c8da134b2cb83/all notes: [] custom_fields: [] contact_people: [] archived: false reference: foobar date: '2026-01-08' 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: '' 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-01-08T11:39:49.680Z' updated_at: '2026-01-08T11:39:49.683Z' version: 1767872389 details: - id: '475688985387074677' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:49.682Z' updated_at: '2026-01-08T11:39:49.682Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:49.685Z' updated_at: '2026-01-08T11:39:49.685Z' '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. tags: - 'Documents: Receipts' parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string description: 'String terms, example: key1:value1,key2:value2.' 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: '475688974022608751' version: 1767872378 - id: '475688974096009095' version: 1767872378 - id: '475688974128514963' version: 1767872378 RetrievesAllIdsForSynchronizationUsingAFilter: summary: Retrieves all ids for synchronization using a filter value: - id: '475688974195623844' version: 1767872379 - id: '475688974265878460' version: 1767872379 - id: '475688974299432904' version: 1767872379 operationId: get_administration_id_documents_receipts_synchronization post: summary: Fetch receipts with given ids 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. tags: - 'Documents: Receipts' 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: - 475688973897828160 - 475688973929285440 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: '475688973897828178' administration_id: 123 contact_id: '475688973800310583' contact: id: '475688973800310583' 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 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-01-08T11:39:38.631Z' updated_at: '2026-01-08T11:39:38.631Z' version: 1767872378 sales_invoices_url: https://moneybird.dev/123/sales_invoices/905a251e397fbe07d6815bf13fae0e703d563224cbc792401461b355ef8d3b8c/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-01-08' 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: '' 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-01-08T11:39:38.724Z' updated_at: '2026-01-08T11:39:38.728Z' version: 1767872378 details: - id: '475688973899925331' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:38.726Z' updated_at: '2026-01-08T11:39:38.726Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:38.729Z' updated_at: '2026-01-08T11:39:38.729Z' - id: '475688973929285470' administration_id: 123 contact_id: '475688973800310583' contact: id: '475688973800310583' 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 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-01-08T11:39:38.631Z' updated_at: '2026-01-08T11:39:38.631Z' version: 1767872378 sales_invoices_url: https://moneybird.dev/123/sales_invoices/905a251e397fbe07d6815bf13fae0e703d563224cbc792401461b355ef8d3b8c/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-01-08' 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: '' 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-01-08T11:39:38.755Z' updated_at: '2026-01-08T11:39:38.758Z' version: 1767872378 details: - id: '475688973931382623' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:38.756Z' updated_at: '2026-01-08T11:39:38.756Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:38.759Z' updated_at: '2026-01-08T11:39:38.759Z' 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. tags: - 'Documents: Receipts' 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. tags: - 'Documents: Receipts' 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. tags: - 'Documents: Receipts' 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. tags: - 'Documents: Receipts' 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. tags: - 'Documents: Receipts' 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-01-08T11:39:40.061Z' 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: '475688975315502311' administration_id: 123 invoice_type: Document invoice_id: '475688975244199119' financial_account_id: null user_id: 17678722914505 payment_transaction_id: null transaction_identifier: null price: '300.0' price_base: '300.0' payment_date: '2026-01-08' credit_invoice_id: null financial_mutation_id: null ledger_account_id: '475688883267306625' linked_payment_id: null manual_payment_action: null created_at: '2026-01-08T11:39:40.076Z' updated_at: '2026-01-08T11:39:40.076Z' '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`. deprecated: true x-sunset: '2026-12-31' tags: - 'Documents: Receipts' 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-01-08T11:39:43.832Z' 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. tags: - 'Documents: Receipts' 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: '475688978968741841' administration_id: 123 contact_id: '475688978944624590' contact: id: '475688978944624590' 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 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-01-08T11:39:43.537Z' updated_at: '2026-01-08T11:39:43.537Z' version: 1767872383 sales_invoices_url: https://moneybird.dev/123/sales_invoices/f7e9ed8536eee3e62c5ad9947a87359258f1761441ff29ed278e09e7a65186ff/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-01-08' 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: '' 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-01-08T11:39:43.560Z' updated_at: '2026-01-08T11:39:43.563Z' version: 1767872383 details: - id: '475688978969790418' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:43.561Z' updated_at: '2026-01-08T11:39:43.561Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:43.564Z' updated_at: '2026-01-08T11:39:43.564Z' '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. tags: - 'Documents: Receipts' 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. tags: - 'Documents: Receipts' 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: '**Required**. Should be a valid contact id.' reference: type: string description: '**Required**.' date: type: string description: '**Required**.' currency: type: string description: ISO three-character currency code, e.g. EUR or USD. prices_are_incl_tax: type: - boolean - string origin: type: string description: Can be `api`, `upload`, `endpoint`, `si`, `si_local`, `si_peppol`, `email`, `moneybird_bv` or `mollie`. details_attributes: $ref: '#/components/schemas/details_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: UpdatesTheReceipt: summary: Updates the receipt value: receipt: reference: updated reference UpdatesTheReceiptDetails: summary: Updates the receipt details value: receipt: details_attributes: '0': id: 475688974866711700 description: updated description price: 20 responses: '200': description: Receipt updated content: application/json: schema: $ref: '#/components/schemas/receipt_response' examples: UpdatesTheReceipt: summary: Updates the receipt value: id: '475688974604567576' administration_id: 123 contact_id: '475688974580450325' contact: id: '475688974580450325' 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 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-01-08T11:39:39.375Z' updated_at: '2026-01-08T11:39:39.375Z' version: 1767872379 sales_invoices_url: https://moneybird.dev/123/sales_invoices/cd42969a092c4682437850b0efe92163c76c0a7d7beea15766846e5fbce0d84c/all notes: [] custom_fields: [] contact_people: [] archived: false reference: updated reference date: '2026-01-08' 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: '' 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-01-08T11:39:39.398Z' updated_at: '2026-01-08T11:39:39.467Z' version: 1767872379 details: - id: '475688974605616153' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:39.400Z' updated_at: '2026-01-08T11:39:39.400Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:39.402Z' updated_at: '2026-01-08T11:39:39.402Z' - administration_id: 123 user_id: 17678722914505 action: document_updated link_entity_id: null link_entity_type: null data: changes: reference: - Lunch supermarket - updated reference updated_at: - '2026-01-08T12:39:39.401+01:00' - '2026-01-08T12:39:39.467+01:00' created_at: '2026-01-08T11:39:39.470Z' updated_at: '2026-01-08T11:39:39.470Z' UpdatesTheReceiptDetails: summary: Updates the receipt details value: id: '475688974864614501' administration_id: 123 contact_id: '475688974839448674' contact: id: '475688974839448674' 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 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-01-08T11:39:39.623Z' updated_at: '2026-01-08T11:39:39.623Z' version: 1767872379 sales_invoices_url: https://moneybird.dev/123/sales_invoices/fa55061b7cc7953b42096bc2763347bb6f5c48991f73d23ac51b18d06d9348df/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-01-08' 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: '' 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-01-08T11:39:39.647Z' updated_at: '2026-01-08T11:39:39.724Z' version: 1767872379 details: - id: '475688974866711654' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:39.648Z' updated_at: '2026-01-08T11:39:39.723Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:39.651Z' updated_at: '2026-01-08T11:39:39.651Z' - administration_id: 123 user_id: 17678722914505 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: '475688883332318348' report_reference: NL/5b payable: false debit: '52.07' credit: 0 - - tax_rate_id: '475688883332318348' report_reference: NL/5b payable: false debit: '3.47' credit: 0 updated_at: - '2026-01-08T12:39:39.650+01:00' - '2026-01-08T12:39:39.721+01:00' created_at: '2026-01-08T11:39:39.725Z' updated_at: '2026-01-08T11:39:39.725Z' '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. tags: - 'Documents: Receipts' 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. tags: - 'Documents: Receipts' 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: 475688978898487230 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '475688978915264458' administration_id: 123 entity_id: '475688978841864112' entity_type: Document user_id: 17678722914505 assignee_id: '475688978898487240' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-01-08T11:39:43.509Z' updated_at: '2026-01-08T11:39:43.509Z' '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. The `filter` argument allows you to filter on the list of documents. Filters are a combination of keys and values, separated by a comma: `key:value,key2:value2`. The most common filter method will be `period`: `period:this_month`. Filtering works the same as in the web application, for more advanced examples, change the filtering in the web application and learn from the resulting URI. tags: - 'Documents: Receipts' parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string description: 'String terms, example: `key1:value1,key2:value2`.' - 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 receipts content: application/json: schema: type: array items: $ref: '#/components/schemas/receipt_response' examples: ReturnsPaginatedReceiptsOnPage2: summary: Returns paginated receipts on page 2 value: - id: '475688972653168121' administration_id: 123 contact_id: '475688972497978834' contact: id: '475688972497978834' 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 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-01-08T11:39:37.389Z' updated_at: '2026-01-08T11:39:37.389Z' version: 1767872377 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0240bda4c78b2974aa1071b9b9320f65114f467b5a110aea0e0d63eb636c746f/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-01-08' 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: '' 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-01-08T11:39:37.538Z' updated_at: '2026-01-08T11:39:37.541Z' version: 1767872377 details: - id: '475688972655265274' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:37.539Z' updated_at: '2026-01-08T11:39:37.539Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:37.542Z' updated_at: '2026-01-08T11:39:37.542Z' ReturnsPaginatedReceiptsOnPage1: summary: Returns paginated receipts on page 1 value: - id: '475688973120833159' administration_id: 123 contact_id: '475688972964595284' contact: id: '475688972964595284' 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 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-01-08T11:39:37.834Z' updated_at: '2026-01-08T11:39:37.834Z' version: 1767872377 sales_invoices_url: https://moneybird.dev/123/sales_invoices/c129304bc00e4f5905a8babbeee8c3e7c924833146ce2e0b107ace4e49ba9ef1/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-01-08' 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: '' 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-01-08T11:39:37.984Z' updated_at: '2026-01-08T11:39:37.987Z' version: 1767872377 details: - id: '475688973122930312' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:37.985Z' updated_at: '2026-01-08T11:39:37.985Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:37.988Z' updated_at: '2026-01-08T11:39:37.988Z' ReturnsAListOfReceipts: summary: Returns a list of receipts value: - id: '475688973359908552' administration_id: 123 contact_id: '475688973197379221' contact: id: '475688973197379221' 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 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-01-08T11:39:38.056Z' updated_at: '2026-01-08T11:39:38.056Z' version: 1767872378 sales_invoices_url: https://moneybird.dev/123/sales_invoices/8294acceeb27f1c37c291d4fda9ecd8b2c19d6b2c1029296622b5fc5944f5425/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-01-08' 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: '' 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-01-08T11:39:38.211Z' updated_at: '2026-01-08T11:39:38.214Z' version: 1767872378 details: - id: '475688973360957129' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:38.213Z' updated_at: '2026-01-08T11:39:38.213Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:38.216Z' updated_at: '2026-01-08T11:39:38.216Z' - id: '475688973327402684' administration_id: 123 contact_id: '475688973197379221' contact: id: '475688973197379221' 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 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-01-08T11:39:38.056Z' updated_at: '2026-01-08T11:39:38.056Z' version: 1767872378 sales_invoices_url: https://moneybird.dev/123/sales_invoices/8294acceeb27f1c37c291d4fda9ecd8b2c19d6b2c1029296622b5fc5944f5425/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-01-08' 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: '' 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-01-08T11:39:38.180Z' updated_at: '2026-01-08T11:39:38.183Z' version: 1767872378 details: - id: '475688973328451261' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:38.182Z' updated_at: '2026-01-08T11:39:38.182Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:38.184Z' updated_at: '2026-01-08T11:39:38.184Z' - id: '475688973293848240' administration_id: 123 contact_id: '475688973197379221' contact: id: '475688973197379221' 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 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-01-08T11:39:38.056Z' updated_at: '2026-01-08T11:39:38.056Z' version: 1767872378 sales_invoices_url: https://moneybird.dev/123/sales_invoices/8294acceeb27f1c37c291d4fda9ecd8b2c19d6b2c1029296622b5fc5944f5425/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-01-08' 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: '' 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-01-08T11:39:38.148Z' updated_at: '2026-01-08T11:39:38.152Z' version: 1767872378 details: - id: '475688973295945393' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:38.150Z' updated_at: '2026-01-08T11:39:38.150Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:38.153Z' updated_at: '2026-01-08T11:39:38.153Z' - id: '475688973223593624' administration_id: 123 contact_id: '475688973197379221' contact: id: '475688973197379221' 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 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-01-08T11:39:38.056Z' updated_at: '2026-01-08T11:39:38.056Z' version: 1767872378 sales_invoices_url: https://moneybird.dev/123/sales_invoices/8294acceeb27f1c37c291d4fda9ecd8b2c19d6b2c1029296622b5fc5944f5425/all notes: [] custom_fields: [] contact_people: [] archived: false reference: Lunch supermarket date: '2026-01-08' 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: '' 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-01-08T11:39:38.081Z' updated_at: '2026-01-08T11:39:38.085Z' version: 1767872378 details: - id: '475688973225690777' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:38.083Z' updated_at: '2026-01-08T11:39:38.083Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:38.086Z' updated_at: '2026-01-08T11:39:38.086Z' '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. tags: - 'Documents: Receipts' 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: '**Required**. Should be a valid contact id.' reference: type: string description: '**Required**.' date: type: string description: '**Required**.' currency: type: string description: ISO three-character currency code, e.g. EUR or USD. prices_are_incl_tax: type: - boolean - string origin: type: string description: Can be `api`, `upload`, `endpoint`, `si`, `si_local`, `si_peppol`, `email`, `moneybird_bv` or `mollie`. details_attributes: $ref: '#/components/schemas/details_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: CreatesTheReceipt: summary: Creates the receipt value: receipt: reference: foobar contact_id: 475688975991834000 details_attributes: '0': description: Lunch price: 20 tax_rate_id: 475688883332318340 ledger_account_id: 475688883240043650 responses: '201': description: Receipt created content: application/json: schema: $ref: '#/components/schemas/receipt_response' examples: CreatesTheReceipt: summary: Creates the receipt value: id: '475688976090400151' administration_id: 123 contact_id: '475688975991833980' contact: id: '475688975991833980' 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 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-01-08T11:39:40.721Z' updated_at: '2026-01-08T11:39:40.721Z' version: 1767872380 sales_invoices_url: https://moneybird.dev/123/sales_invoices/c500cfc25e15417fc9cf22cd7d5766a7eb4a198ed64470595c291cd52e1df95f/all notes: [] custom_fields: [] contact_people: [] archived: false reference: foobar date: '2026-01-08' 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: '' 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-01-08T11:39:40.815Z' updated_at: '2026-01-08T11:39:40.818Z' version: 1767872380 details: - id: '475688976092497304' administration_id: 123 tax_rate_id: '475688883332318348' ledger_account_id: '475688883240043640' 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-01-08T11:39:40.817Z' updated_at: '2026-01-08T11:39:40.817Z' payments: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:40.820Z' updated_at: '2026-01-08T11:39:40.820Z' '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. tags: - 'Documents: Typeless documents' parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string description: 'String terms, example: key1:value1,key2:value2.' 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: '475689071792882801' version: 1767872472 - id: '475689071802319987' version: 1767872472 - id: '475689071811757173' version: 1767872472 operationId: get_administration_id_documents_typeless_documents_synchronization post: summary: Fetch typeless documents with given ids 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. tags: - 'Documents: Typeless 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: - 475689071901934700 - 475689071910323300 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: '475689071901934730' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-01-08' state: new origin: null created_at: '2026-01-08T11:41:12.188Z' updated_at: '2026-01-08T11:41:12.188Z' version: 1767872472 attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:12.191Z' updated_at: '2026-01-08T11:41:12.191Z' - id: '475689071910323340' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-01-08' state: new origin: null created_at: '2026-01-08T11:41:12.197Z' updated_at: '2026-01-08T11:41:12.197Z' version: 1767872472 attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:12.199Z' updated_at: '2026-01-08T11:41:12.199Z' 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. tags: - 'Documents: Typeless 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. tags: - 'Documents: Typeless 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. tags: - 'Documents: Typeless 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. tags: - 'Documents: Typeless 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: '475689071708996702' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-01-08' state: new origin: null created_at: '2026-01-08T11:41:12.005Z' updated_at: '2026-01-08T11:41:12.005Z' version: 1767872472 attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:12.007Z' updated_at: '2026-01-08T11:41:12.007Z' '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. tags: - 'Documents: Typeless 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. The `filter` argument allows you to filter on the list of documents. Filters are a combination of keys and values, separated by a comma: `key:value,key2:value2`. The most common filter method will be `period`: `period:this_month`. Filtering works the same as in the web application, for more advanced examples, change the filtering in the web application and learn from the resulting URI. tags: - 'Documents: Typeless documents' parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string description: 'String terms, example: `key1:value1,key2:value2`.' - 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 typeless documents content: application/json: schema: type: array items: $ref: '#/components/schemas/typeless_document_response' examples: ReturnsAListOfTypelessDocuments: summary: Returns a list of typeless documents value: - id: '475689072262644959' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-01-08' state: new origin: null created_at: '2026-01-08T11:41:12.533Z' updated_at: '2026-01-08T11:41:12.533Z' version: 1767872472 attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:12.535Z' updated_at: '2026-01-08T11:41:12.535Z' - id: '475689072254256349' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-01-08' state: new origin: null created_at: '2026-01-08T11:41:12.525Z' updated_at: '2026-01-08T11:41:12.525Z' version: 1767872472 attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:12.527Z' updated_at: '2026-01-08T11:41:12.527Z' - id: '475689072245867739' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-01-08' state: new origin: null created_at: '2026-01-08T11:41:12.516Z' updated_at: '2026-01-08T11:41:12.516Z' version: 1767872472 attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:12.519Z' updated_at: '2026-01-08T11:41:12.519Z' - id: '475689072236430553' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-01-08' state: new origin: null created_at: '2026-01-08T11:41:12.508Z' updated_at: '2026-01-08T11:41:12.508Z' version: 1767872472 attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:12.510Z' updated_at: '2026-01-08T11:41:12.510Z' ReturnsPaginatedTypelessDocumentsOnPage2: summary: Returns paginated typeless documents on page 2 value: - id: '475689072471311631' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-01-08' state: new origin: null created_at: '2026-01-08T11:41:12.731Z' updated_at: '2026-01-08T11:41:12.731Z' version: 1767872472 attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:12.734Z' updated_at: '2026-01-08T11:41:12.734Z' ReturnsPaginatedTypelessDocumentsOnPage1: summary: Returns paginated typeless documents on page 1 value: - id: '475689072667395370' administration_id: 123 contact_id: null contact: null reference: '20130456' date: '2026-01-08' state: new origin: null created_at: '2026-01-08T11:41:12.918Z' updated_at: '2026-01-08T11:41:12.918Z' version: 1767872472 attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:12.920Z' updated_at: '2026-01-08T11:41:12.920Z' '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. tags: - 'Documents: Typeless 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 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: 475689072972531100 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: '475689073038591352' administration_id: 123 contact_id: '475689072972531047' contact: id: '475689072972531047' 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 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-01-08T11:41:13.210Z' updated_at: '2026-01-08T11:41:13.210Z' version: 1767872473 sales_invoices_url: https://moneybird.dev/123/sales_invoices/d852d83b31fe43dd33ccd9579fe121466314b01a8b446b5875d59dc1779b21a0/all notes: [] custom_fields: [] contact_people: [] archived: false reference: foobar date: '2026-01-08' state: new origin: api created_at: '2026-01-08T11:41:13.273Z' updated_at: '2026-01-08T11:41:13.273Z' version: 1767872473 attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: document_saved link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:41:13.275Z' updated_at: '2026-01-08T11:41:13.275Z' '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 user must have the appropriate permissions to access the download based on its 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 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 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: ReturnsDownloadsByDownloadedStatus: summary: Returns downloads by downloaded status value: - id: '475688899747775834' user_id: null download_type: export_sales_invoices filename: Unknown content_type: application/octet-stream failed: false downloaded: true created_at: '2026-01-08T11:38:28.009Z' updated_at: '2026-01-08T11:38:28.009Z' ReturnsAllDownloadsOfAnAdministration: summary: Returns all downloads of an administration value: - id: '475688899826419038' user_id: null download_type: export_documents filename: Unknown content_type: application/octet-stream failed: true downloaded: false created_at: '2026-01-08T11:38:28.085Z' updated_at: '2026-01-08T11:38:28.085Z' - id: '475688899824321885' user_id: null download_type: export_sales_invoices filename: Unknown content_type: application/octet-stream failed: false downloaded: true created_at: '2026-01-08T11:38:28.082Z' updated_at: '2026-01-08T11:38:28.082Z' - id: '475688899821176156' user_id: null download_type: export_contacts filename: Unknown content_type: application/octet-stream failed: false downloaded: false created_at: '2026-01-08T11:38:28.078Z' updated_at: '2026-01-08T11:38:28.078Z' ReturnsDownloadsByDownloadType: summary: Returns downloads by download type value: - id: '475688899918693727' user_id: null download_type: export_contacts filename: Unknown content_type: application/octet-stream failed: false downloaded: false created_at: '2026-01-08T11:38:28.172Z' updated_at: '2026-01-08T11:38:28.172Z' ReturnsDownloadsByFailedStatus: summary: Returns downloads by failed status value: - id: '475688899999434084' user_id: null download_type: export_documents filename: Unknown content_type: application/octet-stream failed: true downloaded: false created_at: '2026-01-08T11:38:28.249Z' updated_at: '2026-01-08T11:38:28.249Z' ReturnsPaginatedDownloads: summary: Returns paginated downloads value: - id: '475688900176643433' user_id: null download_type: export_sales_invoices filename: Unknown content_type: application/octet-stream failed: false downloaded: true created_at: '2026-01-08T11:38:28.418Z' updated_at: '2026-01-08T11:38:28.418Z' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenDownloadTypeIsInvalid: summary: Returns an error when download type is invalid value: error: download_type does not have a valid value ReturnsAnErrorWhenPerPageExceedsLimit: summary: Returns an error when per page exceeds limit value: error: per_page 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 tags: - 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: '475688910766212997' administration_id: 123 contact_id: '475688910719027071' contact: id: '475688910719027071' 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 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-01-08T11:38:38.472Z' updated_at: '2026-01-08T11:38:38.472Z' version: 1767872318 sales_invoices_url: https://moneybird.dev/123/sales_invoices/64c629edd29d7f01bdd78cc5c6876615dcfce97dd3f716f8ede358f12ce84568/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '475688910732658562' contact_person: id: null contact_id: '475688910719027071' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:38:38.485Z' updated_at: '2026-01-08T11:38:38.485Z' version: 1767872318 estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:38.518Z' updated_at: '2026-01-08T11:38:38.576Z' public_view_code: '523178' public_view_code_expires_at: '2026-04-08T11:38:38.549Z' version: 1767872318 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688910769358726' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:38.520Z' updated_at: '2026-01-08T11:38:38.575Z' 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/64c629edd29d7f01bdd78cc5c6876615dcfce97dd3f716f8ede358f12ce84568/82dc50152316b0447ec5d616fd4207316ee01cbcc52205968767397cdcb7b9b4/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:38.526Z' updated_at: '2026-01-08T11:38:38.526Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:38.583Z' updated_at: '2026-01-08T11:38:38.583Z' tax_totals: - tax_rate_id: '475688883320784009' 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. tags: - Estimates parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string examples: RetrievesTheIdsForSynchronizationFilteredOnState: summary: Retrieves the ids for synchronization filtered on state 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: '475688900635919738' version: 1767872308 - id: '475688900499604853' version: 1767872308 RetrievesTheIdsForSynchronizationFilteredOnState: summary: Retrieves the ids for synchronization filtered on state value: - id: '475688900794254725' version: 1767872309 operationId: get_administration_id_estimates_synchronization post: summary: Fetch estimates with given ids 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. tags: - 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: - 475688906306619000 - 475688906399942300 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: '475688906306618988' administration_id: 123 contact_id: '475688906260481638' contact: id: '475688906260481638' 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 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-01-08T11:38:34.220Z' updated_at: '2026-01-08T11:38:34.220Z' version: 1767872314 sales_invoices_url: https://moneybird.dev/123/sales_invoices/e299dfae05e2c30b4014352582247b88e99ac12412a37418b314df785b012681/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '475688906274113129' contact_person: id: null contact_id: '475688906260481638' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:38:34.233Z' updated_at: '2026-01-08T11:38:34.233Z' version: 1767872314 estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:34.264Z' updated_at: '2026-01-08T11:38:34.314Z' public_view_code: '116354' public_view_code_expires_at: '2026-04-08T11:38:34.290Z' version: 1767872314 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688906308716141' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:34.266Z' updated_at: '2026-01-08T11:38:34.312Z' 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/e299dfae05e2c30b4014352582247b88e99ac12412a37418b314df785b012681/6102a6176ea4fe464f50bd2cbaba9706101ce6bee2ccc85b69ebaa54044917f8/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:34.271Z' updated_at: '2026-01-08T11:38:34.271Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:34.324Z' updated_at: '2026-01-08T11:38:34.324Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '475688906399942257' administration_id: 123 contact_id: '475688906260481638' contact: id: '475688906260481638' 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 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-01-08T11:38:34.220Z' updated_at: '2026-01-08T11:38:34.220Z' version: 1767872314 sales_invoices_url: https://moneybird.dev/123/sales_invoices/e299dfae05e2c30b4014352582247b88e99ac12412a37418b314df785b012681/all notes: [] custom_fields: [] contact_people: - id: '475688906274113129' contact_id: '475688906260481638' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:38:34.233Z' updated_at: '2026-01-08T11:38:34.233Z' version: 1767872314 archived: false contact_person_id: null contact_person: null estimate_id: null estimate_sequence_id: null workflow_id: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: 2 state: draft estimate_date: null due_date: '2026-01-22' 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-01-08T11:38:34.353Z' updated_at: '2026-01-08T11:38:34.357Z' public_view_code: null public_view_code_expires_at: null version: 1767872314 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688906402039410' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:34.355Z' updated_at: '2026-01-08T11:38:34.355Z' 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/e299dfae05e2c30b4014352582247b88e99ac12412a37418b314df785b012681/fecd9c18b431b1837ef4b913c3584dc97eb7e30864657b2c146da080a1e25525/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:34.359Z' updated_at: '2026-01-08T11:38:34.359Z' tax_totals: - tax_rate_id: '475688883320784009' 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. tags: - 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. tags: - 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. tags: - 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. tags: - 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: 475688907030136450 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreatesANote: summary: Creates a note value: id: '475688907051108000' administration_id: 123 entity_id: '475688906955687577' entity_type: Estimate user_id: 17678722914505 assignee_id: '475688907030136478' todo: true note: A pending TODO completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-01-08T11:38:34.974Z' updated_at: '2026-01-08T11:38:34.974Z' '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. tags: - 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. tags: - 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: '475688909455492916' administration_id: 123 contact_id: '475688909146162979' contact: id: '475688909146162979' 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 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-01-08T11:38:36.972Z' updated_at: '2026-01-08T11:38:36.972Z' version: 1767872316 sales_invoices_url: https://moneybird.dev/123/sales_invoices/1234d8e5b6d1e9e618a40aca68c2556e9eddf7f6838b70ff6c976a75829bcc7f/all notes: [] custom_fields: [] contact_people: - id: '475688909160843046' contact_id: '475688909146162979' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:38:36.986Z' updated_at: '2026-01-08T11:38:36.986Z' version: 1767872316 archived: false contact_person_id: null contact_person: null invoice_id: null recurring_sales_invoice_id: null subscription_id: null workflow_id: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: 1 state: draft invoice_date: null due_date: '2026-01-22' 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-01-08T11:38:37.267Z' updated_at: '2026-01-08T11:38:37.272Z' public_view_code: null public_view_code_expires_at: null version: 1767872317 details: - id: '475688909458638645' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:37.270Z' updated_at: '2026-01-08T11:38:37.270Z' 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: '475688909295060782' url: http://moneybird.dev/123/external/1234d8e5b6d1e9e618a40aca68c2556e9eddf7f6838b70ff6c976a75829bcc7f/69d8b61ab7b1568f1f41eed1c25d5047498c8fa30ce82717fd66badfb2c15c79/sales_invoice payment_url: http://moneybird.dev/123/external/1234d8e5b6d1e9e618a40aca68c2556e9eddf7f6838b70ff6c976a75829bcc7f/69d8b61ab7b1568f1f41eed1c25d5047498c8fa30ce82717fd66badfb2c15c79/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created_based_on_estimate link_entity_id: null link_entity_type: null data: original_estimate: 2026-0002 created_at: '2026-01-08T11:38:37.275Z' updated_at: '2026-01-08T11:38:37.275Z' tax_totals: - tax_rate_id: '475688883320784009' 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: '475688910296450920' administration_id: 123 contact_id: '475688910011238231' contact: id: '475688910011238231' 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 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-01-08T11:38:37.797Z' updated_at: '2026-01-08T11:38:37.797Z' version: 1767872317 sales_invoices_url: https://moneybird.dev/123/sales_invoices/9bac6c2abf061814aee970b052e8a3de61ce8bb0c9b7ad6a91aeeb0766805fdf/all notes: [] custom_fields: [] contact_people: - id: '475688910025918298' contact_id: '475688910011238231' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:38:37.811Z' updated_at: '2026-01-08T11:38:37.811Z' version: 1767872317 archived: false contact_person_id: null contact_person: null invoice_id: null recurring_sales_invoice_id: null subscription_id: null workflow_id: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: 1 state: draft invoice_date: null due_date: '2026-01-22' 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-01-08T11:38:38.068Z' updated_at: '2026-01-08T11:38:38.073Z' public_view_code: null public_view_code_expires_at: null version: 1767872318 details: - id: '475688910298548073' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:38.071Z' updated_at: '2026-01-08T11:38:38.071Z' 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: '475688910161184610' url: http://moneybird.dev/123/external/9bac6c2abf061814aee970b052e8a3de61ce8bb0c9b7ad6a91aeeb0766805fdf/b6be3178242d0b44fa4dae1fabcee7add4b5f50a59b97cf2932eafe769ec487a/sales_invoice payment_url: http://moneybird.dev/123/external/9bac6c2abf061814aee970b052e8a3de61ce8bb0c9b7ad6a91aeeb0766805fdf/b6be3178242d0b44fa4dae1fabcee7add4b5f50a59b97cf2932eafe769ec487a/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created_based_on_estimate link_entity_id: null link_entity_type: null data: original_estimate: 2026-0002 created_at: '2026-01-08T11:38:38.076Z' updated_at: '2026-01-08T11:38:38.076Z' tax_totals: - tax_rate_id: '475688883320784009' 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. tags: - 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: '475688902463587790' administration_id: 123 contact_id: '475688902306301379' contact: id: '475688902306301379' 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 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-01-08T11:38:30.449Z' updated_at: '2026-01-08T11:38:30.449Z' version: 1767872310 sales_invoices_url: https://moneybird.dev/123/sales_invoices/ff5467f410eb21762b1627600812c0440666e3dcef09ca7bc74ed5094955e88f/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: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: accepted estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: '2026-01-08' rejected_at: null archived_at: null created_at: '2026-01-08T11:38:30.599Z' updated_at: '2026-01-08T11:38:30.683Z' public_view_code: '398679' public_view_code_expires_at: '2026-04-08T11:38:30.628Z' version: 1767872310 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688902465684943' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:30.601Z' updated_at: '2026-01-08T11:38:30.653Z' 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/ff5467f410eb21762b1627600812c0440666e3dcef09ca7bc74ed5094955e88f/f008c61158e65edd119bc4a0a0e02f0fb84c971c30e8bb5c94e9a2268b99daca/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:30.605Z' updated_at: '2026-01-08T11:38:30.605Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:30.661Z' updated_at: '2026-01-08T11:38:30.661Z' - administration_id: 123 user_id: 17678722914505 action: estimate_mark_accepted link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:30.686Z' updated_at: '2026-01-08T11:38:30.686Z' tax_totals: - tax_rate_id: '475688883320784009' 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: 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 Returns400IfTheStateChangeIsInvalid: summary: Returns 400 if the state change is invalid value: error: State isn't an option symbolic: state: 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 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. tags: - 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/b98e89811b589f91a1280d58dad34a627d2365e1229c3231a17047a4a5915d31/9f46ba29cf5f7a8f68529818e59c6ceceb4be252c03ec843fe51af5a01b6642f/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. tags: - 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 description: Can be `Email`, `Post` or `Manual`. Can be `Email`, `Simplerinvoicing`, `Peppol`, `Manual` or `Post`. email_address: type: string email_message: type: string sign_online: type: - boolean - string required: [] sender: type: - boolean - string signature_output: type: string audit_trail: type: string ip_address: type: string required: [] examples: SendsViaEmailIfContactHasDeliveryMethodSimplerinvoicing: summary: Sends via email if contact has delivery method simplerinvoicing value: {} 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: {} responses: '200': description: Estimate updated content: application/json: schema: $ref: '#/components/schemas/estimate_response' examples: SendsViaEmailIfContactHasDeliveryMethodSimplerinvoicing: summary: Sends via email if contact has delivery method simplerinvoicing value: id: '475688905247557168' administration_id: 123 contact_id: '475688905212954157' contact: id: '475688905212954157' administration_id: 123 company_name: Foobar Holding B.V. firstname: '' lastname: '' address1: Hoofdstraat 12 address2: '' zipcode: 1234AB city: Amsterdam country: NL phone: '' delivery_method: Simplerinvoicing 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 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: '12345678' si_identifier_type: NL:KVK moneybird_payments_mandate: false created_at: '2026-01-08T11:38:33.221Z' updated_at: '2026-01-08T11:38:33.272Z' version: 1767872313 sales_invoices_url: https://moneybird.dev/123/sales_invoices/a82e899c2f673f0737499a793b2aa28275f10760df1dfca54fdab5c67c03a783/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: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:33.254Z' updated_at: '2026-01-08T11:38:33.333Z' public_view_code: '484049' public_view_code_expires_at: '2026-04-08T10:38:33.305Z' version: 1767872313 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688905249654321' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:33.257Z' updated_at: '2026-01-08T11:38:33.331Z' 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/a82e899c2f673f0737499a793b2aa28275f10760df1dfca54fdab5c67c03a783/2afd0c25c21d65ee25460ec34465157dad5a2a4d1cda89803724407346878222/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:33.261Z' updated_at: '2026-01-08T11:38:33.261Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:33.340Z' updated_at: '2026-01-08T11:38:33.340Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' SendsAnEstimateWithAlternativeInformation: summary: Sends an estimate with alternative information value: id: '475688905715222092' administration_id: 123 contact_id: '475688905678521929' contact: id: '475688905678521929' 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 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-01-08T11:38:33.665Z' updated_at: '2026-01-08T11:38:33.665Z' version: 1767872313 sales_invoices_url: https://moneybird.dev/123/sales_invoices/06a454f647b28d789c315d1c6f207be149b217a832e47e00aae84cd7ab7f1566/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: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:33.700Z' updated_at: '2026-01-08T11:38:33.766Z' public_view_code: '963974' public_view_code_expires_at: '2026-04-08T10:38:33.741Z' version: 1767872313 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688905717319245' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:33.702Z' updated_at: '2026-01-08T11:38:33.764Z' 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/06a454f647b28d789c315d1c6f207be149b217a832e47e00aae84cd7ab7f1566/dc44efd19cc423d85524d12ff5a1210af0ba1a84ab1a3dc0b206f75c0fb57614/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:33.707Z' updated_at: '2026-01-08T11:38:33.707Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:33.772Z' updated_at: '2026-01-08T11:38:33.772Z' tax_totals: - tax_rate_id: '475688883320784009' 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: '475688906096903775' administration_id: 123 contact_id: '475688906059155036' contact: id: '475688906059155036' 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 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-01-08T11:38:34.028Z' updated_at: '2026-01-08T11:38:34.028Z' version: 1767872314 sales_invoices_url: https://moneybird.dev/123/sales_invoices/3326e75a2a0d5b550d3daff34e33658677ca96dc4256ccb9e8c6304a2fd4a771/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: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:34.064Z' updated_at: '2026-01-08T11:38:34.137Z' public_view_code: '755946' public_view_code_expires_at: '2026-04-08T10:38:34.110Z' version: 1767872314 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688906100049504' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:34.067Z' updated_at: '2026-01-08T11:38:34.136Z' 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/3326e75a2a0d5b550d3daff34e33658677ca96dc4256ccb9e8c6304a2fd4a771/11143015b05730a7a75b1ab84e7ef5ece8ab21173556d01b40cd129dd338d91a/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:34.072Z' updated_at: '2026-01-08T11:38:34.072Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:34.145Z' updated_at: '2026-01-08T11:38:34.145Z' tax_totals: - tax_rate_id: '475688883320784009' 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: 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 ReturnsErrorWhenSendingInvalidEstimateWithoutDetails: summary: Returns error when sending invalid estimate without details value: error: details cannot be empty symbolic: estimate: details_cannot_be_empty '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: 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 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 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. tags: - 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: '475688903196542466' administration_id: 123 contact_id: '475688903153550844' contact: id: '475688903153550844' 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 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-01-08T11:38:31.257Z' updated_at: '2026-01-08T11:38:31.257Z' version: 1767872311 sales_invoices_url: https://moneybird.dev/123/sales_invoices/f597cdec63dedee2783976446abe22881d452bee5f1ac2dcc566113cb1ce593d/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '475688903166133759' contact_person: id: null contact_id: '475688903153550844' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:38:31.270Z' updated_at: '2026-01-08T11:38:31.270Z' version: 1767872311 estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:31.299Z' updated_at: '2026-01-08T11:38:31.349Z' public_view_code: '781839' public_view_code_expires_at: '2026-04-08T11:38:31.325Z' version: 1767872311 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688903198639619' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:31.301Z' updated_at: '2026-01-08T11:38:31.348Z' 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/f597cdec63dedee2783976446abe22881d452bee5f1ac2dcc566113cb1ce593d/5bef8496af53806cd968dc397dc482b38d33cacf990d359cbee4bdd33e66f75f/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:31.305Z' updated_at: '2026-01-08T11:38:31.305Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:31.357Z' updated_at: '2026-01-08T11:38:31.357Z' tax_totals: - tax_rate_id: '475688883320784009' 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. tags: - 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 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 estimate_date: type: string estimate_sequence_id: type: string remove_estimate_sequence_id: type: - boolean - string 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 show_tax: type: - boolean - string first_due_interval: type: integer pre_text: type: string post_text: type: string 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' 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: 475688883320784000 ledger_account_id: 475688883240043650 '1': id: 475688908575737600 _destroy: true responses: '200': description: Estimate updated content: application/json: schema: $ref: '#/components/schemas/estimate_response' examples: UpdatesTheDiscount: summary: Updates the discount value: id: '475688908317787890' administration_id: 123 contact_id: '475688908269553388' contact: id: '475688908269553388' 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 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-01-08T11:38:36.136Z' updated_at: '2026-01-08T11:38:36.136Z' version: 1767872316 sales_invoices_url: https://moneybird.dev/123/sales_invoices/38a6f9af3c57381a46ca5fffcb85458972cbd00f2696c00201ae32ce4f757e63/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '475688908284233455' contact_person: id: null contact_id: '475688908269553388' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:38:36.150Z' updated_at: '2026-01-08T11:38:36.150Z' version: 1767872316 estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:36.182Z' updated_at: '2026-01-08T11:38:36.294Z' public_view_code: '069742' public_view_code_expires_at: '2026-04-08T11:38:36.224Z' version: 1767872316 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688908319885043' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:36.184Z' updated_at: '2026-01-08T11:38:36.249Z' 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/38a6f9af3c57381a46ca5fffcb85458972cbd00f2696c00201ae32ce4f757e63/d0f46dca59f1cb5de0f641235cd6fa0cf540aaf7755829b7d3bf941e33c58811/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:36.189Z' updated_at: '2026-01-08T11:38:36.189Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:36.259Z' updated_at: '2026-01-08T11:38:36.259Z' - administration_id: 123 user_id: 17678722914505 action: estimate_updated link_entity_id: null link_entity_type: null data: reference: - Project X - Updated Reference updated_at: - '2026-01-08T12:38:36.251+01:00' - '2026-01-08T12:38:36.294+01:00' created_at: '2026-01-08T11:38:36.296Z' updated_at: '2026-01-08T11:38:36.296Z' tax_totals: - tax_rate_id: '475688883320784009' 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: '475688908573640448' administration_id: 123 contact_id: '475688908527503098' contact: id: '475688908527503098' 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 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-01-08T11:38:36.382Z' updated_at: '2026-01-08T11:38:36.382Z' version: 1767872316 sales_invoices_url: https://moneybird.dev/123/sales_invoices/dda328558db828ccebf3b332d03fa1cc3d194de1244888c2530ff910f7484ebf/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '475688908541134589' contact_person: id: null contact_id: '475688908527503098' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:38:36.395Z' updated_at: '2026-01-08T11:38:36.395Z' version: 1767872316 estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:36.426Z' updated_at: '2026-01-08T11:38:36.547Z' public_view_code: '945848' public_view_code_expires_at: '2026-04-08T11:38:36.454Z' version: 1767872316 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688908698420997' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:36.545Z' updated_at: '2026-01-08T11:38:36.545Z' 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/dda328558db828ccebf3b332d03fa1cc3d194de1244888c2530ff910f7484ebf/7d551388be9c2912bd0e353e5fb37e7899319ad886413c6508a1803631d0815c/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:36.433Z' updated_at: '2026-01-08T11:38:36.433Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:36.488Z' updated_at: '2026-01-08T11:38:36.488Z' - administration_id: 123 user_id: 17678722914505 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: '475688883320784009' report_reference: NL/1a payable: true debit: 0 credit: '63.0' - - tax_rate_id: '475688883320784009' report_reference: NL/1a payable: true debit: 0 credit: '20.79' updated_at: - '2026-01-08T12:38:36.480+01:00' - '2026-01-08T12:38:36.536+01:00' created_at: '2026-01-08T11:38:36.549Z' updated_at: '2026-01-08T11:38:36.549Z' tax_totals: - tax_rate_id: '475688883320784009' 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. tags: - 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 all estimates in the administration. The `filter` argument allows you to filter on the list of estimates. Filters are a combination of keys and values, separated by a comma: `period:this_year,state:all`. The available options for filtering are: | **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_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`. tags: - Estimates parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string description: See table above for detailed options. examples: ReturnsAllEstimatesFilteredOnState: summary: Returns all estimates filtered on state value: state:open ReturnsAllEstimatesFilteredOnPeriod: summary: Returns all estimates filtered on period value: period:this_month - $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: ReturnsAllEstimatesFilteredOnState: summary: Returns all estimates filtered on state value: - id: '475688915269846214' administration_id: 123 contact_id: '475688914968904883' contact: id: '475688914968904883' 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 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-01-08T11:38:42.525Z' updated_at: '2026-01-08T11:38:42.525Z' version: 1767872322 sales_invoices_url: https://moneybird.dev/123/sales_invoices/eb8f94343792eff1b56faf6a5f7b6c77aa6ffd58651d2a39eee5d45eacc170c5/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: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:42.812Z' updated_at: '2026-01-08T11:38:42.859Z' public_view_code: '152237' public_view_code_expires_at: '2026-04-08T11:38:42.838Z' version: 1767872322 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688915271943367' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:42.814Z' updated_at: '2026-01-08T11:38:42.858Z' 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/eb8f94343792eff1b56faf6a5f7b6c77aa6ffd58651d2a39eee5d45eacc170c5/87ec0139b3e272a385c12ed9ee712f84132319452431903826580479182ea090/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:42.818Z' updated_at: '2026-01-08T11:38:42.818Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:42.867Z' updated_at: '2026-01-08T11:38:42.867Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '475688915187008706' administration_id: 123 contact_id: '475688914968904883' contact: id: '475688914968904883' 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 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-01-08T11:38:42.525Z' updated_at: '2026-01-08T11:38:42.525Z' version: 1767872322 sales_invoices_url: https://moneybird.dev/123/sales_invoices/eb8f94343792eff1b56faf6a5f7b6c77aa6ffd58651d2a39eee5d45eacc170c5/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: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:42.733Z' updated_at: '2026-01-08T11:38:42.780Z' public_view_code: '079503' public_view_code_expires_at: '2026-04-08T11:38:42.759Z' version: 1767872322 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688915189105859' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:42.735Z' updated_at: '2026-01-08T11:38:42.778Z' 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/eb8f94343792eff1b56faf6a5f7b6c77aa6ffd58651d2a39eee5d45eacc170c5/c7afb7510c877d95b19673b2f33b64c0176f8d0b3e986fb445109cce504562b8/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:42.740Z' updated_at: '2026-01-08T11:38:42.740Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:42.785Z' updated_at: '2026-01-08T11:38:42.785Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '475688915104171198' administration_id: 123 contact_id: '475688914968904883' contact: id: '475688914968904883' 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 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-01-08T11:38:42.525Z' updated_at: '2026-01-08T11:38:42.525Z' version: 1767872322 sales_invoices_url: https://moneybird.dev/123/sales_invoices/eb8f94343792eff1b56faf6a5f7b6c77aa6ffd58651d2a39eee5d45eacc170c5/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: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:42.655Z' updated_at: '2026-01-08T11:38:42.700Z' public_view_code: '453532' public_view_code_expires_at: '2026-04-08T11:38:42.679Z' version: 1767872322 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688915106268351' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:42.657Z' updated_at: '2026-01-08T11:38:42.699Z' 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/eb8f94343792eff1b56faf6a5f7b6c77aa6ffd58651d2a39eee5d45eacc170c5/45252d7daebb96492c4c6f438f9549902e27038e2be1f618bbc99d7695aa05f3/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:42.661Z' updated_at: '2026-01-08T11:38:42.661Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:42.706Z' updated_at: '2026-01-08T11:38:42.706Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '475688915011896505' administration_id: 123 contact_id: '475688914968904883' contact: id: '475688914968904883' 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 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-01-08T11:38:42.525Z' updated_at: '2026-01-08T11:38:42.525Z' version: 1767872322 sales_invoices_url: https://moneybird.dev/123/sales_invoices/eb8f94343792eff1b56faf6a5f7b6c77aa6ffd58651d2a39eee5d45eacc170c5/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '475688914981487798' contact_person: id: null contact_id: '475688914968904883' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:38:42.537Z' updated_at: '2026-01-08T11:38:42.537Z' version: 1767872322 estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:42.566Z' updated_at: '2026-01-08T11:38:42.619Z' public_view_code: '507845' public_view_code_expires_at: '2026-04-08T11:38:42.594Z' version: 1767872322 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688915013993658' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:42.568Z' updated_at: '2026-01-08T11:38:42.618Z' 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/eb8f94343792eff1b56faf6a5f7b6c77aa6ffd58651d2a39eee5d45eacc170c5/d7232349fcde0f9f0139df3535c48fcde97a026acb83ad79501e924ae8388e4a/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:42.573Z' updated_at: '2026-01-08T11:38:42.573Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:42.626Z' updated_at: '2026-01-08T11:38:42.626Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' ReturnsPaginatedEstimatesOnPage2: summary: Returns paginated estimates on page 2 value: - id: '475688916198884602' administration_id: 123 contact_id: '475688915944080619' contact: id: '475688915944080619' 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 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-01-08T11:38:43.455Z' updated_at: '2026-01-08T11:38:43.455Z' version: 1767872323 sales_invoices_url: https://moneybird.dev/123/sales_invoices/92207d9327f0047a1913713d38638c8ab0a561bb3404e11caf532366fe4d0f7b/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: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:43.698Z' updated_at: '2026-01-08T11:38:43.751Z' public_view_code: '375686' public_view_code_expires_at: '2026-04-08T11:38:43.727Z' version: 1767872323 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688916200981755' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:43.700Z' updated_at: '2026-01-08T11:38:43.750Z' 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/92207d9327f0047a1913713d38638c8ab0a561bb3404e11caf532366fe4d0f7b/904c7d3b10e60df0394900fa97ab937e1cf6251bf6eb8318d8ba086c07d4c822/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:43.705Z' updated_at: '2026-01-08T11:38:43.705Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:43.757Z' updated_at: '2026-01-08T11:38:43.757Z' tax_totals: - tax_rate_id: '475688883320784009' 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: '475688916823835930' administration_id: 123 contact_id: '475688916493534471' contact: id: '475688916493534471' 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 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-01-08T11:38:43.980Z' updated_at: '2026-01-08T11:38:43.980Z' version: 1767872323 sales_invoices_url: https://moneybird.dev/123/sales_invoices/9b0773e57e9bef5d4ef1e4dfb98d2bc39caf6812ea0d931b5781658d8784a29e/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: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:44.295Z' updated_at: '2026-01-08T11:38:44.339Z' public_view_code: '168635' public_view_code_expires_at: '2026-04-08T11:38:44.319Z' version: 1767872324 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688916825933083' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:44.297Z' updated_at: '2026-01-08T11:38:44.338Z' 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/9b0773e57e9bef5d4ef1e4dfb98d2bc39caf6812ea0d931b5781658d8784a29e/d09e673adaf77d880632dd183e43c65529e880de6badebf2ab75a32a0156471c/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:44.301Z' updated_at: '2026-01-08T11:38:44.301Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:44.345Z' updated_at: '2026-01-08T11:38:44.345Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '475688916737852694' administration_id: 123 contact_id: '475688916493534471' contact: id: '475688916493534471' 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 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-01-08T11:38:43.980Z' updated_at: '2026-01-08T11:38:43.980Z' version: 1767872323 sales_invoices_url: https://moneybird.dev/123/sales_invoices/9b0773e57e9bef5d4ef1e4dfb98d2bc39caf6812ea0d931b5781658d8784a29e/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: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:44.213Z' updated_at: '2026-01-08T11:38:44.261Z' public_view_code: '220683' public_view_code_expires_at: '2026-04-08T11:38:44.239Z' version: 1767872324 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688916739949847' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:44.215Z' updated_at: '2026-01-08T11:38:44.260Z' 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/9b0773e57e9bef5d4ef1e4dfb98d2bc39caf6812ea0d931b5781658d8784a29e/ab93e202e7886e15ecc41cdc3b8dd8da1ae10f0456a958f574ac73eea16fbd85/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:44.219Z' updated_at: '2026-01-08T11:38:44.219Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:44.268Z' updated_at: '2026-01-08T11:38:44.268Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '475688916649772306' administration_id: 123 contact_id: '475688916493534471' contact: id: '475688916493534471' 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 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-01-08T11:38:43.980Z' updated_at: '2026-01-08T11:38:43.980Z' version: 1767872323 sales_invoices_url: https://moneybird.dev/123/sales_invoices/9b0773e57e9bef5d4ef1e4dfb98d2bc39caf6812ea0d931b5781658d8784a29e/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: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:44.128Z' updated_at: '2026-01-08T11:38:44.177Z' public_view_code: '797390' public_view_code_expires_at: '2026-04-08T11:38:44.154Z' version: 1767872324 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688916651869459' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:44.131Z' updated_at: '2026-01-08T11:38:44.176Z' 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/9b0773e57e9bef5d4ef1e4dfb98d2bc39caf6812ea0d931b5781658d8784a29e/1ac6ceee61855e8780f04160eef2a4c6530b52dbb86b90dcc789e0b457602598/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:44.135Z' updated_at: '2026-01-08T11:38:44.135Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:44.183Z' updated_at: '2026-01-08T11:38:44.183Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '475688916548060429' administration_id: 123 contact_id: '475688916493534471' contact: id: '475688916493534471' 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 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-01-08T11:38:43.980Z' updated_at: '2026-01-08T11:38:43.980Z' version: 1767872323 sales_invoices_url: https://moneybird.dev/123/sales_invoices/9b0773e57e9bef5d4ef1e4dfb98d2bc39caf6812ea0d931b5781658d8784a29e/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '475688916509263114' contact_person: id: null contact_id: '475688916493534471' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:38:43.994Z' updated_at: '2026-01-08T11:38:43.994Z' version: 1767872323 estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:44.031Z' updated_at: '2026-01-08T11:38:44.090Z' public_view_code: '489446' public_view_code_expires_at: '2026-04-08T11:38:44.063Z' version: 1767872324 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688916551206158' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:44.034Z' updated_at: '2026-01-08T11:38:44.089Z' 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/9b0773e57e9bef5d4ef1e4dfb98d2bc39caf6812ea0d931b5781658d8784a29e/a435be04497f42079a231b0978f39819161bbaed686add4520ebd3a56dd8eb37/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:44.039Z' updated_at: '2026-01-08T11:38:44.039Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:44.098Z' updated_at: '2026-01-08T11:38:44.098Z' tax_totals: - tax_rate_id: '475688883320784009' 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: '475688917358609718' administration_id: 123 contact_id: '475688917036696867' contact: id: '475688917036696867' 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 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-01-08T11:38:44.497Z' updated_at: '2026-01-08T11:38:44.497Z' version: 1767872324 sales_invoices_url: https://moneybird.dev/123/sales_invoices/ed7f6686fb9dd3d9e50a98f6f2678395e9872a854b6ca53f5a8ad7d16310628b/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: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:44.804Z' updated_at: '2026-01-08T11:38:44.852Z' public_view_code: '648662' public_view_code_expires_at: '2026-04-08T11:38:44.829Z' version: 1767872324 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688917360706871' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:44.806Z' updated_at: '2026-01-08T11:38:44.851Z' 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/ed7f6686fb9dd3d9e50a98f6f2678395e9872a854b6ca53f5a8ad7d16310628b/dcc48c9209efe2681c1ee08dfc5860737419d3f0ea68e86eaef1a99471381f6f/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:44.810Z' updated_at: '2026-01-08T11:38:44.810Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:44.859Z' updated_at: '2026-01-08T11:38:44.859Z' tax_totals: - tax_rate_id: '475688883320784009' 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: '475688917878703442' administration_id: 123 contact_id: '475688917555742015' contact: id: '475688917555742015' 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 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-01-08T11:38:44.992Z' updated_at: '2026-01-08T11:38:44.992Z' version: 1767872324 sales_invoices_url: https://moneybird.dev/123/sales_invoices/e4e341cc8b2ce5a4a8377399da4ad29208f3a336182fd29aec2ca7bde7dddbac/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: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:45.300Z' updated_at: '2026-01-08T11:38:45.348Z' public_view_code: '571940' public_view_code_expires_at: '2026-04-08T11:38:45.326Z' version: 1767872325 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688917880800595' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:45.302Z' updated_at: '2026-01-08T11:38:45.347Z' 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/e4e341cc8b2ce5a4a8377399da4ad29208f3a336182fd29aec2ca7bde7dddbac/4a76533130d016248e1b93801f28d7b955addf7874ef84b8f9746500a5a5f3a5/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:45.306Z' updated_at: '2026-01-08T11:38:45.306Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:45.354Z' updated_at: '2026-01-08T11:38:45.354Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '475688917789574478' administration_id: 123 contact_id: '475688917555742015' contact: id: '475688917555742015' 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 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-01-08T11:38:44.992Z' updated_at: '2026-01-08T11:38:44.992Z' version: 1767872324 sales_invoices_url: https://moneybird.dev/123/sales_invoices/e4e341cc8b2ce5a4a8377399da4ad29208f3a336182fd29aec2ca7bde7dddbac/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: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:45.215Z' updated_at: '2026-01-08T11:38:45.264Z' public_view_code: '296918' public_view_code_expires_at: '2026-04-08T11:38:45.241Z' version: 1767872325 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688917791671631' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:45.217Z' updated_at: '2026-01-08T11:38:45.263Z' 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/e4e341cc8b2ce5a4a8377399da4ad29208f3a336182fd29aec2ca7bde7dddbac/fa88d18f55e60de32b8cce127b4a97066d720a741b5014387bde4d63682266b3/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:45.222Z' updated_at: '2026-01-08T11:38:45.222Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:45.271Z' updated_at: '2026-01-08T11:38:45.271Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '475688917700445514' administration_id: 123 contact_id: '475688917555742015' contact: id: '475688917555742015' 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 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-01-08T11:38:44.992Z' updated_at: '2026-01-08T11:38:44.992Z' version: 1767872324 sales_invoices_url: https://moneybird.dev/123/sales_invoices/e4e341cc8b2ce5a4a8377399da4ad29208f3a336182fd29aec2ca7bde7dddbac/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: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:45.130Z' updated_at: '2026-01-08T11:38:45.178Z' public_view_code: '677782' public_view_code_expires_at: '2026-04-08T11:38:45.155Z' version: 1767872325 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688917702542667' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:45.132Z' updated_at: '2026-01-08T11:38:45.177Z' 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/e4e341cc8b2ce5a4a8377399da4ad29208f3a336182fd29aec2ca7bde7dddbac/caa47e55d2747d96452034bc2fda906d93f0c333ff070588857efdcfcfe1310c/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:45.137Z' updated_at: '2026-01-08T11:38:45.137Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:45.185Z' updated_at: '2026-01-08T11:38:45.185Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' - id: '475688917605025093' administration_id: 123 contact_id: '475688917555742015' contact: id: '475688917555742015' 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 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-01-08T11:38:44.992Z' updated_at: '2026-01-08T11:38:44.992Z' version: 1767872324 sales_invoices_url: https://moneybird.dev/123/sales_invoices/e4e341cc8b2ce5a4a8377399da4ad29208f3a336182fd29aec2ca7bde7dddbac/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '475688917569373506' contact_person: id: null contact_id: '475688917555742015' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:38:45.005Z' updated_at: '2026-01-08T11:38:45.005Z' version: 1767872325 estimate_id: 2026-0001 estimate_sequence_id: '0001' workflow_id: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open estimate_date: '2026-01-08' due_date: '2026-01-22' 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-01-08' accepted_at: null rejected_at: null archived_at: null created_at: '2026-01-08T11:38:45.039Z' updated_at: '2026-01-08T11:38:45.094Z' public_view_code: '732939' public_view_code_expires_at: '2026-04-08T11:38:45.069Z' version: 1767872325 pre_text: Hello, here is your quote post_text: Please sign it details: - id: '475688917607122246' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:45.041Z' updated_at: '2026-01-08T11:38:45.093Z' 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/e4e341cc8b2ce5a4a8377399da4ad29208f3a336182fd29aec2ca7bde7dddbac/d1f51ac7f209538be4137a90c606ad793012bf0ed75e8352cecfeda27f656a93/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:45.047Z' updated_at: '2026-01-08T11:38:45.047Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:38:45.101Z' updated_at: '2026-01-08T11:38:45.101Z' tax_totals: - tax_rate_id: '475688883320784009' 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. tags: - 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 estimate_date: type: string estimate_sequence_id: type: string remove_estimate_sequence_id: type: - boolean - string 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 show_tax: type: - boolean - string first_due_interval: type: - integer - string pre_text: type: string post_text: type: string 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' 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: 475688914147869800 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: '475688914297816197' administration_id: 123 contact_id: '475688914147869818' contact: id: '475688914147869818' 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 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-01-08T11:38:41.742Z' updated_at: '2026-01-08T11:38:41.742Z' version: 1767872321 sales_invoices_url: https://moneybird.dev/123/sales_invoices/8fdd04f57ff2aa43f41a65253dc0985ebea80b2a9fa641413d3bc4b4a2ad77fc/all notes: [] custom_fields: [] contact_people: - id: '475688914162549885' contact_id: '475688914147869818' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:38:41.756Z' updated_at: '2026-01-08T11:38:41.756Z' version: 1767872321 archived: false contact_person_id: null contact_person: null estimate_id: null estimate_sequence_id: null workflow_id: '475688883794740372' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: 2 state: draft estimate_date: null due_date: '2026-01-22' 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-01-08T11:38:41.885Z' updated_at: '2026-01-08T11:38:41.885Z' public_view_code: null public_view_code_expires_at: null version: 1767872321 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/8fdd04f57ff2aa43f41a65253dc0985ebea80b2a9fa641413d3bc4b4a2ad77fc/aa654d5983d25d73b3fc721006cb9dedc063ad5a6d23cb73225667b3549881cd/estimate custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: estimate_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:41.889Z' updated_at: '2026-01-08T11:38:41.889Z' 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. tags: - External 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/{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. tags: - External 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. tags: - External 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 tags: - External 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. tags: - External 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: 475688967624198100 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '475688967642023858' administration_id: 123 entity_id: '475688967615809454' entity_type: ExternalSalesInvoice user_id: 17678722914505 assignee_id: '475688967624198064' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-01-08T11:39:32.759Z' updated_at: '2026-01-08T11:39:32.759Z' '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. tags: - External 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. tags: - External 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 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-01-08T11:39:34.684Z' 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: '475688969677308934' administration_id: 123 invoice_type: ExternalSalesInvoice invoice_id: '475688969655288836' financial_account_id: null user_id: 17678722914505 payment_transaction_id: null transaction_identifier: null price: '121.0' price_base: '121.0' payment_date: '2026-01-08' credit_invoice_id: null financial_mutation_id: null ledger_account_id: '475688883268355202' linked_payment_id: null manual_payment_action: null created_at: '2026-01-08T11:39:34.699Z' updated_at: '2026-01-08T11:39:34.699Z' '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. tags: - External 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. tags: - External 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: '475688967124027250' administration_id: 123 contact_id: '475688967110395760' contact: id: '475688967110395760' 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 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-01-08T11:39:32.252Z' updated_at: '2026-01-08T11:39:32.252Z' version: 1767872372 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2025-10-10' 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-01-08T11:39:32.264Z' updated_at: '2026-01-08T11:39:32.468Z' version: 1767872372 details: - id: '475688967125075827' administration_id: 123 tax_rate_id: '475688967107250030' ledger_account_id: '475688967114590065' 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-01-08T11:39:32.266Z' updated_at: '2026-01-08T11:39:32.266Z' 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-01-08' marked_uncollectible_on: null notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: external_sales_invoice_marked_as_dubious link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:32.471Z' updated_at: '2026-01-08T11:39:32.471Z' tax_totals: - tax_rate_id: '475688967107250030' 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. tags: - External 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: '475688965093983893' administration_id: 123 contact_id: '475688965082449555' contact: id: '475688965082449555' 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 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-01-08T11:39:30.317Z' updated_at: '2026-01-08T11:39:30.317Z' version: 1767872370 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2025-10-10' 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-01-08T11:39:30.328Z' updated_at: '2026-01-08T11:39:30.682Z' version: 1767872370 details: - id: '475688965095032470' administration_id: 123 tax_rate_id: '475688965078255249' ledger_account_id: '475688965086643860' 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-01-08T11:39:30.330Z' updated_at: '2026-01-08T11:39:30.680Z' 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-01-08' notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: external_sales_invoice_state_changed_to_uncollectible link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:30.669Z' updated_at: '2026-01-08T11:39:30.669Z' - administration_id: 123 user_id: 17678722914505 action: external_sales_invoice_marked_as_uncollectible link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:30.685Z' updated_at: '2026-01-08T11:39:30.685Z' tax_totals: - tax_rate_id: '475688965078255249' 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 invoices in the administration. tags: - External 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 external sales invoice content: application/json: schema: $ref: '#/components/schemas/external_sales_invoice_response' examples: ReturnsInvoiceByGivenId: summary: Returns invoice by given id value: id: '475688969540995064' administration_id: 123 contact_id: '475688969527363574' contact: id: '475688969527363574' 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 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-01-08T11:39:34.557Z' updated_at: '2026-01-08T11:39:34.557Z' version: 1767872374 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-01-08' 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-01-08T11:39:34.570Z' updated_at: '2026-01-08T11:39:34.573Z' version: 1767872374 details: - id: '475688969543092217' administration_id: 123 tax_rate_id: '475688969523169268' ledger_account_id: '475688969532606455' 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-01-08T11:39:34.571Z' updated_at: '2026-01-08T11:39:34.571Z' 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: '475688969523169268' 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. tags: - External 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 date: type: string due_date: type: string currency: type: string description: ISO three-character currency code, e.g. EUR or USD. prices_are_incl_tax: type: - boolean - string source: type: string source_url: type: string details_attributes: $ref: '#/components/schemas/details_attributes' required: [] required: [] examples: AddingAndRemovingAnInvoiceDetail: summary: Adding and removing an invoice detail value: external_sales_invoice: details_attributes: - description: Sofa price: 199.99 - id: 475688969092204500 _destroy: true UpdatingTheInvoiceReference: summary: Updating the invoice reference value: external_sales_invoice: reference: '30053' responses: '200': description: External sales invoice updated content: application/json: schema: $ref: '#/components/schemas/external_sales_invoice_response' examples: AddingAndRemovingAnInvoiceDetail: summary: Adding and removing an invoice detail value: id: '475688969090107336' administration_id: 123 contact_id: '475688969080670150' contact: id: '475688969080670150' 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 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-01-08T11:39:34.130Z' updated_at: '2026-01-08T11:39:34.130Z' version: 1767872374 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-01-08' 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-01-08T11:39:34.140Z' updated_at: '2026-01-08T11:39:34.180Z' version: 1767872374 details: - id: '475688969131001803' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:34.178Z' updated_at: '2026-01-08T11:39:34.178Z' 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: 17678722914505 action: external_sales_invoice_updated link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:34.181Z' updated_at: '2026-01-08T11:39:34.181Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '199.99' taxable_amount_base: '199.99' tax_amount: '42.0' tax_amount_base: '42.0' UpdatingTheInvoiceReference: summary: Updating the invoice reference value: id: '475688969395242983' administration_id: 123 contact_id: '475688969379514341' contact: id: '475688969379514341' 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 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-01-08T11:39:34.416Z' updated_at: '2026-01-08T11:39:34.416Z' version: 1767872374 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-01-08' 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-01-08T11:39:34.431Z' updated_at: '2026-01-08T11:39:34.472Z' version: 1767872374 details: - id: '475688969397340136' administration_id: 123 tax_rate_id: '475688969376368611' ledger_account_id: '475688969385805798' 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-01-08T11:39:34.432Z' updated_at: '2026-01-08T11:39:34.470Z' 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: 17678722914505 action: external_sales_invoice_updated link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:34.474Z' updated_at: '2026-01-08T11:39:34.474Z' tax_totals: - tax_rate_id: '475688969376368611' 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 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. tags: - External 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 all sales invoices in the administration. The `filter` argument allows you to filter the list of external invoices. Filters are a combination of keys and values, separated by a comma: `period:this_year,state:all`. The available options for filtering are: | **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_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`. tags: - External sales invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string 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: ReturnsPaginatedExternalSalesInvoicesOnPage2: summary: Returns paginated external sales invoices on page 2 value: - id: '475688966312429285' administration_id: 123 contact_id: '475688966301943523' contact: id: '475688966301943523' 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 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-01-08T11:39:31.480Z' updated_at: '2026-01-08T11:39:31.480Z' version: 1767872371 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000003/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-01-08' 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-01-08T11:39:31.490Z' updated_at: '2026-01-08T11:39:31.493Z' version: 1767872371 details: - id: '475688966313477862' administration_id: 123 tax_rate_id: '475688966297749217' ledger_account_id: '475688966306137828' 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-01-08T11:39:31.491Z' updated_at: '2026-01-08T11:39:31.491Z' 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: '475688966297749217' 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: '475688966506415888' administration_id: 123 contact_id: null contact: null date: '2026-01-08' 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-01-08T11:39:31.675Z' updated_at: '2026-01-08T11:39:31.675Z' version: 1767872371 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: [] ReturnsAllInvoicesFilteredOnPeriod: summary: Returns all invoices filtered on period value: - id: '475688966676285240' administration_id: 123 contact_id: null contact: null date: '2026-01-08' 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-01-08T11:39:31.838Z' updated_at: '2026-01-08T11:39:31.838Z' version: 1767872371 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: '475688966668945205' administration_id: 123 contact_id: '475688966658459443' contact: id: '475688966658459443' 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 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-01-08T11:39:31.821Z' updated_at: '2026-01-08T11:39:31.821Z' version: 1767872371 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000003/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-01-08' 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-01-08T11:39:31.830Z' updated_at: '2026-01-08T11:39:31.833Z' version: 1767872371 details: - id: '475688966669993782' administration_id: 123 tax_rate_id: '475688966655313713' ledger_account_id: '475688966662653748' 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-01-08T11:39:31.831Z' updated_at: '2026-01-08T11:39:31.831Z' 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: '475688966655313713' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' - id: '475688966650070831' administration_id: 123 contact_id: '475688966640633645' contact: id: '475688966640633645' 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 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-01-08T11:39:31.803Z' updated_at: '2026-01-08T11:39:31.803Z' version: 1767872371 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-01-08' 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-01-08T11:39:31.812Z' updated_at: '2026-01-08T11:39:31.815Z' version: 1767872371 details: - id: '475688966651119408' administration_id: 123 tax_rate_id: '475688966636439339' ledger_account_id: '475688966643779374' 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-01-08T11:39:31.813Z' updated_at: '2026-01-08T11:39:31.813Z' 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: '475688966636439339' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' - id: '475688966631196457' administration_id: 123 contact_id: '475688966620710695' contact: id: '475688966620710695' 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 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-01-08T11:39:31.785Z' updated_at: '2026-01-08T11:39:31.785Z' version: 1767872371 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-01-08' 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-01-08T11:39:31.794Z' updated_at: '2026-01-08T11:39:31.797Z' version: 1767872371 details: - id: '475688966632245034' administration_id: 123 tax_rate_id: '475688966617564965' ledger_account_id: '475688966624905000' 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-01-08T11:39:31.796Z' updated_at: '2026-01-08T11:39:31.796Z' 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: '475688966617564965' 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: '475688966802114377' administration_id: 123 contact_id: '475688966791628615' contact: id: '475688966791628615' 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 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-01-08T11:39:31.947Z' updated_at: '2026-01-08T11:39:31.947Z' version: 1767872371 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000003/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-01-08' 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-01-08T11:39:31.957Z' updated_at: '2026-01-08T11:39:31.961Z' version: 1767872371 details: - id: '475688966804211530' administration_id: 123 tax_rate_id: '475688966787434309' ledger_account_id: '475688966795822920' 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-01-08T11:39:31.959Z' updated_at: '2026-01-08T11:39:31.959Z' 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: '475688966787434309' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' - id: '475688966782191427' administration_id: 123 contact_id: '475688966771705665' contact: id: '475688966771705665' 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 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-01-08T11:39:31.928Z' updated_at: '2026-01-08T11:39:31.928Z' version: 1767872371 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-01-08' 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-01-08T11:39:31.938Z' updated_at: '2026-01-08T11:39:31.941Z' version: 1767872371 details: - id: '475688966783240004' administration_id: 123 tax_rate_id: '475688966767511359' ledger_account_id: '475688966775899970' 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-01-08T11:39:31.940Z' updated_at: '2026-01-08T11:39:31.940Z' 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: '475688966767511359' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' - id: '475688966761219901' administration_id: 123 contact_id: '475688966749685563' contact: id: '475688966749685563' 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 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-01-08T11:39:31.907Z' updated_at: '2026-01-08T11:39:31.907Z' version: 1767872371 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-01-08' 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-01-08T11:39:31.918Z' updated_at: '2026-01-08T11:39:31.921Z' version: 1767872371 details: - id: '475688966762268478' administration_id: 123 tax_rate_id: '475688966745491257' ledger_account_id: '475688966753879868' 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-01-08T11:39:31.920Z' updated_at: '2026-01-08T11:39:31.920Z' 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: '475688966745491257' 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: '475688966944720736' administration_id: 123 contact_id: null contact: null date: '2026-01-08' 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-01-08T11:39:32.093Z' updated_at: '2026-01-08T11:39:32.093Z' version: 1767872372 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: '475688966936332125' administration_id: 123 contact_id: '475688966927943515' contact: id: '475688966927943515' 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 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-01-08T11:39:32.077Z' updated_at: '2026-01-08T11:39:32.077Z' version: 1767872372 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000003/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-01-08' 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-01-08T11:39:32.086Z' updated_at: '2026-01-08T11:39:32.088Z' version: 1767872372 details: - id: '475688966938429278' administration_id: 123 tax_rate_id: '475688966923749209' ledger_account_id: '475688966931089244' 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-01-08T11:39:32.087Z' updated_at: '2026-01-08T11:39:32.087Z' 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: '475688966923749209' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' - id: '475688966918506327' administration_id: 123 contact_id: '475688966908020565' contact: id: '475688966908020565' 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 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-01-08T11:39:32.059Z' updated_at: '2026-01-08T11:39:32.059Z' version: 1767872372 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-01-08' 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-01-08T11:39:32.068Z' updated_at: '2026-01-08T11:39:32.071Z' version: 1767872372 details: - id: '475688966919554904' administration_id: 123 tax_rate_id: '475688966904874835' ledger_account_id: '475688966913263446' 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-01-08T11:39:32.070Z' updated_at: '2026-01-08T11:39:32.070Z' 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: '475688966904874835' taxable_amount: '100.0' taxable_amount_base: '100.0' tax_amount: '21.0' tax_amount_base: '21.0' - id: '475688966898583377' administration_id: 123 contact_id: '475688966887049039' contact: id: '475688966887049039' 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 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-01-08T11:39:32.038Z' updated_at: '2026-01-08T11:39:32.038Z' version: 1767872372 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-01-08' 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-01-08T11:39:32.049Z' updated_at: '2026-01-08T11:39:32.052Z' version: 1767872372 details: - id: '475688966899631954' administration_id: 123 tax_rate_id: '475688966882854733' ledger_account_id: '475688966891243344' 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-01-08T11:39:32.051Z' updated_at: '2026-01-08T11:39:32.051Z' 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: '475688966882854733' 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. tags: - External 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 date: type: string due_date: type: string currency: type: string description: ISO three-character currency code, e.g. EUR or USD. prices_are_incl_tax: type: - boolean - string source: type: string source_url: type: string 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: 475688969865004100 currency: USD details_attributes: - description: Rocking Chair price: 159.99 tax_rate_id: 475688969861858370 CreateABasicExternalSalesInvoice: summary: Create a basic external sales invoice value: external_sales_invoice: reference: '30052' contact_id: 475688970058990660 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: '475688969891218469' administration_id: 123 contact_id: '475688969865004067' contact: id: '475688969865004067' 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 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-01-08T11:39:34.877Z' 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-01-08T11:39:34.878Z' updated_at: '2026-01-08T11:39:34.878Z' version: 1767872374 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-01-08' 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-01-08T11:39:34.904Z' updated_at: '2026-01-08T11:39:34.907Z' version: 1767872374 details: - id: '475688969893315622' administration_id: 123 tax_rate_id: '475688969861858337' ledger_account_id: '475688883240043641' 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-01-08T11:39:34.905Z' updated_at: '2026-01-08T11:39:34.905Z' 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: 17678722914505 action: external_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:34.908Z' updated_at: '2026-01-08T11:39:34.908Z' tax_totals: [] CreateABasicExternalSalesInvoice: summary: Create a basic external sales invoice value: id: '475688970085205059' administration_id: 123 contact_id: '475688970058990657' contact: id: '475688970058990657' 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 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-01-08T11:39:35.061Z' 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-01-08T11:39:35.063Z' updated_at: '2026-01-08T11:39:35.063Z' version: 1767872375 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false date: '2026-01-08' 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-01-08T11:39:35.088Z' updated_at: '2026-01-08T11:39:35.091Z' version: 1767872375 details: - id: '475688970086253636' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:35.090Z' updated_at: '2026-01-08T11:39:35.090Z' 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: 17678722914505 action: external_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:35.093Z' updated_at: '2026-01-08T11:39:35.093Z' tax_totals: - tax_rate_id: '475688883320784009' 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 operationId: post_administration_id_external_sales_invoices /{administration_id}/financial_accounts{format}: get: summary: Retrieve all available financial accounts for the administration description: Retrieve all available financial accounts for the administration. tags: - Financial accounts 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: '475689088553322009' administration_id: 123 type: CreditCardAccount name: Creditcard 0001 identifier: '0001' currency: EUR provider: null active: true created_at: '2026-01-08T11:41:28.068Z' updated_at: '2026-01-08T11:41:28.068Z' 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. The `filter` argument allows you to filter the list of financial mutations. Filters are a combination of keys and values, separated by a comma: `period:this_year,state:all`. The available options for filtering are: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | period | `String` | `this_year` | This can either be the description of a period (`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` | | tags: - Financial mutations parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string 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: RetrievesTheIdSForSynchronization: summary: Retrieves the id's for synchronization value: - id: '475688984165484353' version: 1767872388 - id: '475688984183310154' version: 1767872388 - id: '475688984201135955' version: 1767872388 RetrievesTheIdSForSynchronizationWithAFilter: summary: Retrieves the id's for synchronization with a filter value: - id: '475688984256710495' version: 1767872388 - id: '475688984274536296' version: 1767872388 - id: '475688984291313521' version: 1767872388 RetrievesOnlyUniqueIds: summary: Retrieves only unique ids value: - id: '475688984348985213' version: 1767872388 - id: '475688984367859590' version: 1767872388 - id: '475688984384636815' version: 1767872388 operationId: get_administration_id_financial_mutations_synchronization post: summary: Fetch financial mutations with given ids 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. tags: - Financial mutations 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: - 475688983126345400 - 475688983146268350 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: '475688983146268333' administration_id: 123 amount: '100.0' code: null date: '2026-01-08' 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: '475688983079159447' currency: EUR original_amount: null created_at: '2026-01-08T11:39:47.544Z' updated_at: '2026-01-08T11:39:47.544Z' version: 1767872387 financial_statement_id: '475688983145219756' processed_at: null account_servicer_transaction_id: null payments: [] ledger_account_bookings: [] - id: '475688983126345380' administration_id: 123 amount: '100.0' code: null date: '2026-01-08' 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: '475688983079159447' currency: EUR original_amount: null created_at: '2026-01-08T11:39:47.525Z' updated_at: '2026-01-08T11:39:47.525Z' version: 1767872387 financial_statement_id: '475688983125296803' 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 mutations allows you to process financial mutations. Financial mutations can be linked to invoices, documents, ledger accounts and payment batches. tags: - Financial mutations 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: Can be `SalesInvoice`, `Document`, `LedgerAccount`, `PaymentTransactionBatch`, `PurchaseTransaction`, `NewPurchaseInvoice`, `NewReceipt`, `PaymentTransaction`, `PurchaseTransactionBatch`, `ExternalSalesInvoice`, `Payment` or `VatDocument`. booking_id: $ref: '#/components/schemas/identifier' price_base: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. price: $ref: '#/components/schemas/number' description: 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: CreatesANewReceipt: summary: Creates a new receipt value: booking_type: NewReceipt price_base: -100 LinksASalesInvoiceToTheFinancialMutation: summary: Links a sales invoice to the financial mutation value: booking_type: SalesInvoice booking_id: 475688982007514600 price_base: '363.0' LinksAPurchaseInvoiceToTheFinancialMutation: summary: Links a purchase invoice to the financial mutation value: booking_type: Document booking_id: 475688982241347100 price_base: -100 CreatesABookingForAForeignInvoiceWithAnExchangeRateDifference: summary: Creates a booking for a foreign invoice with an exchange rate difference value: booking_type: LedgerAccount booking_id: 475688982568502850 price_base: 1.48 CreatesALedgerAccountBookingForANegativeAmount: summary: Creates a ledger account booking for a negative amount value: booking_type: LedgerAccount booking_id: 475688982676506240 price_base: 100 CreatesALedgerAccountBookingForAPositiveAmount: summary: Creates a ledger account booking for a positive amount value: booking_type: LedgerAccount booking_id: 475688982763538050 price_base: 100 CreatesANewPurchaseInvoice: summary: Creates a new purchase invoice value: booking_type: NewPurchaseInvoice price_base: -100 responses: '200': description: Status code content: application/json: schema: type: integer examples: CreatesANewReceipt: summary: Creates a new receipt value: 200 LinksASalesInvoiceToTheFinancialMutation: summary: Links a sales invoice to the financial mutation value: 200 LinksAPurchaseInvoiceToTheFinancialMutation: summary: Links a purchase invoice to the financial mutation value: 200 CreatesABookingForAForeignInvoiceWithAnExchangeRateDifference: summary: Creates a booking for a foreign invoice with an exchange rate difference value: 200 CreatesALedgerAccountBookingForANegativeAmount: summary: Creates a ledger account booking for a negative amount value: 200 CreatesALedgerAccountBookingForAPositiveAmount: summary: Creates a ledger account booking for a positive amount value: 200 CreatesANewPurchaseInvoice: summary: Creates a new purchase invoice value: 200 '400': $ref: '#/components/responses/400_bad_request' '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. tags: - Financial mutations 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: 475688983783802600 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: '475688983595058938' administration_id: 123 amount: '100.0' code: null date: '2026-01-08' 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: '475688983575135990' currency: EUR original_amount: null created_at: '2026-01-08T11:39:47.972Z' updated_at: '2026-01-08T11:39:48.222Z' version: 1767872388 financial_statement_id: '475688983592961785' 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. tags: - Financial mutations 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: '475688981550335391' administration_id: 123 amount: '100.0' code: null date: '2026-01-08' 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: '475688981530412443' currency: EUR original_amount: null created_at: '2026-01-08T11:39:46.023Z' updated_at: '2026-01-08T11:39:46.023Z' version: 1767872386 financial_statement_id: '475688981549286814' processed_at: null account_servicer_transaction_id: null payments: - id: '475688981675115963' administration_id: 123 invoice_type: SalesInvoice invoice_id: '475688981656241591' financial_account_id: '475688981530412443' user_id: 1 payment_transaction_id: null transaction_identifier: null price: '80.0' price_base: '80.0' payment_date: '2026-01-08' credit_invoice_id: null financial_mutation_id: '475688981550335391' ledger_account_id: '475688981673018810' linked_payment_id: null manual_payment_action: null created_at: '2026-01-08T11:39:46.142Z' updated_at: '2026-01-08T11:39:46.142Z' ledger_account_bookings: - id: '475688981595424168' administration_id: 123 financial_mutation_id: '475688981550335391' ledger_account_id: '475688981593327015' project_id: null description: Ledger account booking price: '20.0' created_at: '2026-01-08T11:39:46.066Z' updated_at: '2026-01-08T11:39:46.066Z' '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. The `filter` argument allows you to filter on the list of financial mutations. Filters are a combination of keys and values, separated by a comma: `key:value,key2:value2`. The most common filter method will be `period`: `period:this_month`. Filtering works the same as in the web application, for more advanced examples, change the filtering in the web application and learn from the resulting URI. tags: - Financial mutations parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string 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: '475688984487397281' administration_id: 123 amount: '100.0' code: null date: '2026-01-08' 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: '475688984466425757' currency: EUR original_amount: null created_at: '2026-01-08T11:39:48.823Z' updated_at: '2026-01-08T11:39:48.823Z' version: 1767872388 financial_statement_id: '475688984486348704' processed_at: null account_servicer_transaction_id: null payments: - id: '475688984592254909' administration_id: 123 invoice_type: SalesInvoice invoice_id: '475688984570234809' financial_account_id: '475688984466425757' user_id: 1 payment_transaction_id: null transaction_identifier: null price: '80.0' price_base: '80.0' payment_date: '2026-01-08' credit_invoice_id: null financial_mutation_id: '475688984487397281' ledger_account_id: '475688984590157756' linked_payment_id: null manual_payment_action: null created_at: '2026-01-08T11:39:48.924Z' updated_at: '2026-01-08T11:39:48.924Z' ledger_account_bookings: - id: '475688984506271658' administration_id: 123 financial_mutation_id: '475688984487397281' ledger_account_id: '475688984504174505' project_id: null description: Ledger account booking price: '20.0' created_at: '2026-01-08T11:39:48.842Z' updated_at: '2026-01-08T11:39:48.842Z' ReturnsAllMutationsFilteredOnPeriod: summary: Returns all mutations filtered on period value: - id: '475688984648878018' administration_id: 123 amount: '100.0' code: null date: '2026-01-08' 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: '475688984630003646' currency: EUR original_amount: null created_at: '2026-01-08T11:39:48.977Z' updated_at: '2026-01-08T11:39:48.977Z' version: 1767872388 financial_statement_id: '475688984647829441' processed_at: null account_servicer_transaction_id: null payments: - id: '475688984754784222' administration_id: 123 invoice_type: SalesInvoice invoice_id: '475688984732764122' financial_account_id: '475688984630003646' user_id: 1 payment_transaction_id: null transaction_identifier: null price: '80.0' price_base: '80.0' payment_date: '2026-01-08' credit_invoice_id: null financial_mutation_id: '475688984648878018' ledger_account_id: '475688984752687069' linked_payment_id: null manual_payment_action: null created_at: '2026-01-08T11:39:49.079Z' updated_at: '2026-01-08T11:39:49.079Z' ledger_account_bookings: - id: '475688984665655243' administration_id: 123 financial_mutation_id: '475688984648878018' ledger_account_id: '475688984664606666' project_id: null description: Ledger account booking price: '20.0' created_at: '2026-01-08T11:39:48.994Z' updated_at: '2026-01-08T11:39:48.994Z' '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. tags: - Financial statements 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. tags: - Financial statements 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 official_date: type: string 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 date: type: string format: date message: type: string amount: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. code: type: string contra_account_name: type: string contra_account_number: type: string batch_reference: type: string offset: type: integer account_servicer_transaction_id: type: string adyen_payment_instrument_id: $ref: '#/components/schemas/identifier' description: Should be a valid adyen payment instrument id. _destroy: type: - boolean - string required: [] - type: object additionalProperties: type: object properties: id: type: integer date: type: string format: date message: type: string amount: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. code: type: string contra_account_name: type: string contra_account_number: type: string batch_reference: type: string offset: type: integer account_servicer_transaction_id: type: string adyen_payment_instrument_id: $ref: '#/components/schemas/identifier' description: Should be a valid adyen payment instrument id. _destroy: type: - boolean - string 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-01-08' 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: '475689013386151561' financial_account_id: '475689013312751238' reference: new_reference official_date: null official_balance: null importer_service: null financial_mutations: - id: '475689013390345867' administration_id: 123 amount: '-20.0' code: null date: '2026-01-07' 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: '475689013312751238' currency: EUR original_amount: null created_at: '2026-01-08T11:40:16.387Z' updated_at: '2026-01-08T11:40:16.387Z' version: 1767872416 financial_statement_id: '475689013386151561' processed_at: null account_servicer_transaction_id: null payments: [] ledger_account_bookings: [] - id: '475689013387200138' administration_id: 123 amount: '322.78' code: null date: '2026-01-08' 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: '475689013312751238' currency: EUR original_amount: null created_at: '2026-01-08T11:40:16.385Z' updated_at: '2026-01-08T11:40:16.385Z' version: 1767872416 financial_statement_id: '475689013386151561' processed_at: null account_servicer_transaction_id: null payments: [] ledger_account_bookings: [] - id: '475689013443823258' administration_id: 123 amount: '100.0' code: null date: '2026-01-08' 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: '475689013312751238' currency: EUR original_amount: null created_at: '2026-01-08T11:40:16.438Z' updated_at: '2026-01-08T11:40:16.438Z' version: 1767872416 financial_statement_id: '475689013386151561' 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. tags: - Financial statements 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 official_date: type: string 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. importer_key: type: string financial_mutations_attributes: oneOf: - type: array items: type: object unevaluatedProperties: false properties: date: type: string format: date valutation_date: type: string format: date message: type: string amount: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. code: type: string contra_account_name: type: string contra_account_number: type: string batch_reference: type: string offset: type: integer account_servicer_transaction_id: type: string account_servicer_metadata: type: object adyen_payment_instrument_id: $ref: '#/components/schemas/identifier' description: Should be a valid adyen payment instrument id. _destroy: type: - boolean - string smart_transfer: type: - boolean - string required: [] - type: object additionalProperties: type: object properties: date: type: string format: date valutation_date: type: string format: date message: type: string amount: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. code: type: string contra_account_name: type: string contra_account_number: type: string batch_reference: type: string offset: type: integer account_servicer_transaction_id: type: string account_servicer_metadata: type: object adyen_payment_instrument_id: $ref: '#/components/schemas/identifier' description: Should be a valid adyen payment instrument id. _destroy: type: - boolean - string smart_transfer: type: - boolean - string required: [] required: - reference required: [] examples: CreatesAFinancialStatement: summary: Creates a financial statement value: financial_statement: reference: 31012014_ABNAMRO financial_account_id: 475689013807679200 financial_mutations_attributes: '1': date: '2026-01-08' message: Foobar 1 amount: 100 '2': date: '2026-01-08' 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: '475689013831796452' financial_account_id: '475689013807679201' reference: 31012014_ABNAMRO official_date: null official_balance: null importer_service: null financial_mutations: - id: '475689013833893605' administration_id: 123 amount: '100.0' code: null date: '2026-01-08' 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: '475689013807679201' currency: EUR original_amount: null created_at: '2026-01-08T11:40:16.810Z' updated_at: '2026-01-08T11:40:16.810Z' version: 1767872416 financial_statement_id: '475689013831796452' processed_at: null account_servicer_transaction_id: null payments: [] ledger_account_bookings: [] - id: '475689013835990758' administration_id: 123 amount: '200.0' code: null date: '2026-01-08' 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: '475689013807679201' currency: EUR original_amount: null created_at: '2026-01-08T11:40:16.812Z' updated_at: '2026-01-08T11:40:16.812Z' version: 1767872416 financial_statement_id: '475689013831796452' 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. tags: - Identities 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: '475688883057591402' 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-01-08T11:38:12.089Z' created_at: '2026-01-08T11:38:12.089Z' chamber_of_commerce: '08155914' tax_number: NL817575546B01 operationId: get_administration_id_identities_default patch: summary: Updates the default identity description: Updates the default identity. tags: - Identities 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 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: adyen_processed_funds: type: - boolean - string company_activities_description: type: string company_website_url: type: string company_website_absent: type: string legal_entity_type: type: string 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: '475688883057591402' 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-01-08T11:41:27.317Z' created_at: '2026-01-08T11:38:12.089Z' 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. tags: - Identities 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: '475689087608554860' 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-01-08T11:41:27.168Z' created_at: '2026-01-08T11:41:27.168Z' 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. tags: - Identities 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: '475689088210437572' 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-01-08T11:41:27.763Z' created_at: '2026-01-08T11:41:27.741Z' 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. tags: - Identities 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. tags: - Identities 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: '475689087692440952' 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-01-08T11:41:27.247Z' created_at: '2026-01-08T11:41:27.247Z' 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. tags: - Identities 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: 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 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: 475689087995479500 value: my custom value responses: '201': description: Identity created content: application/json: schema: $ref: '#/components/schemas/identity_response' examples: CreatesAnIdentity: summary: Creates an identity value: id: '475689087955633564' 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-01-08T11:41:27.499Z' created_at: '2026-01-08T11:41:27.499Z' chamber_of_commerce: '08155914' tax_number: NL817575546B01 CreatesAnIdentityWithCustomFields: summary: Creates an identity with custom fields value: id: '475689088021693863' 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: '475689087995479459' name: custom_field_bbc5cba992c255e57d1b value: my custom value updated_at: '2026-01-08T11:41:27.561Z' created_at: '2026-01-08T11:41:27.561Z' 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. tags: - Ledger accounts 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: '475688954457228956' administration_id: 123 name: Grootboekrekening 71b15760c2191d0f70f7 account_type: revenue account_id: '80829' parent_id: null created_at: '2026-01-08T11:39:20.185Z' updated_at: '2026-01-08T11:39:20.185Z' 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. tags: - Ledger accounts 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 description: Can be `non_current_assets`, `current_assets`, `equity`, `provisions`, `non_current_liabilities`, `current_liabilities`, `revenue`, `direct_costs`, `expenses` or `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: 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: '475688954554746530' administration_id: 123 name: new name account_type: revenue account_id: '80829' parent_id: null created_at: '2026-01-08T11:39:20.278Z' updated_at: '2026-01-08T11:39:20.291Z' 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: '475688954608223909' administration_id: 123 name: New name account_type: revenue account_id: '80829' parent_id: null created_at: '2026-01-08T11:39:20.328Z' updated_at: '2026-01-08T11:39:20.341Z' 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. tags: - Ledger accounts 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. tags: - Ledger accounts 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: ReturnsAListOfLedgerAccounts: summary: Returns a list of ledger accounts value: - id: '475688883240043636' administration_id: 123 name: Algemene kosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883268355208' administration_id: 123 name: Betaalde en/of ontvangen btw account_type: current_liabilities account_id: null parent_id: '475688883240043639' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043639' administration_id: 123 name: Btw account_type: current_liabilities account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883238995054' administration_id: 123 name: Crediteuren account_type: current_liabilities account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043631' administration_id: 123 name: Debiteuren account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043634' administration_id: 123 name: Financiële rekeningen account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043642' administration_id: 123 name: Huisvestingskosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043632' administration_id: 123 name: Hulprekeningen account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043633' administration_id: 123 name: Koersverschillen account_type: other_income_expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883267306621' administration_id: 123 name: Kruisposten account_type: current_assets account_id: null parent_id: '475688883240043632' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355206' administration_id: 123 name: Nog te betalen kosten account_type: current_liabilities account_id: null parent_id: '475688883240043637' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355207' administration_id: 123 name: Nog te factureren omzet account_type: current_assets account_id: null parent_id: '475688883240043635' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043643' administration_id: 123 name: Omzet account_type: revenue account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043641' administration_id: 123 name: Ongecategoriseerde inkomsten account_type: revenue account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043640' administration_id: 123 name: Ongecategoriseerde uitgaven account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043637' administration_id: 123 name: Overige schulden account_type: current_liabilities account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043635' administration_id: 123 name: Overige vorderingen account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883268355203' administration_id: 123 name: Te betalen btw account_type: current_liabilities account_id: null parent_id: '475688883240043639' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' allowed_document_types: - financial_mutation - 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: '475688883267306625' administration_id: 123 name: Te rubriceren betalingen account_type: current_liabilities account_id: null parent_id: '475688883240043637' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355202' administration_id: 123 name: Te rubriceren ontvangen betalingen account_type: current_assets account_id: null parent_id: '475688883240043635' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883267306624' administration_id: 123 name: Te rubriceren transacties account_type: current_assets account_id: null parent_id: '475688883240043632' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355204' administration_id: 123 name: Te vorderen btw account_type: current_liabilities account_id: null parent_id: '475688883240043639' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' allowed_document_types: - financial_mutation - 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: '475688883240043638' administration_id: 123 name: Verkoopkosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883268355205' administration_id: 123 name: Verrekeningen account_type: current_assets account_id: null parent_id: '475688883240043632' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043644' administration_id: 123 name: Vervoerskosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883267306622' administration_id: 123 name: Vooruitgefactureerde kosten account_type: current_assets account_id: null parent_id: '475688883240043635' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883267306623' administration_id: 123 name: Vooruitgefactureerde omzet account_type: current_liabilities account_id: null parent_id: '475688883240043637' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043636' administration_id: 123 name: Algemene kosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883268355208' administration_id: 123 name: Betaalde en/of ontvangen btw account_type: current_liabilities account_id: null parent_id: '475688883240043639' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043639' administration_id: 123 name: Btw account_type: current_liabilities account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883238995054' administration_id: 123 name: Crediteuren account_type: current_liabilities account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043631' administration_id: 123 name: Debiteuren account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043634' administration_id: 123 name: Financiële rekeningen account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043642' administration_id: 123 name: Huisvestingskosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043632' administration_id: 123 name: Hulprekeningen account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043633' administration_id: 123 name: Koersverschillen account_type: other_income_expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883267306621' administration_id: 123 name: Kruisposten account_type: current_assets account_id: null parent_id: '475688883240043632' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355206' administration_id: 123 name: Nog te betalen kosten account_type: current_liabilities account_id: null parent_id: '475688883240043637' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355207' administration_id: 123 name: Nog te factureren omzet account_type: current_assets account_id: null parent_id: '475688883240043635' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043643' administration_id: 123 name: Omzet account_type: revenue account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043641' administration_id: 123 name: Ongecategoriseerde inkomsten account_type: revenue account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043640' administration_id: 123 name: Ongecategoriseerde uitgaven account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043637' administration_id: 123 name: Overige schulden account_type: current_liabilities account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043635' administration_id: 123 name: Overige vorderingen account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883268355203' administration_id: 123 name: Te betalen btw account_type: current_liabilities account_id: null parent_id: '475688883240043639' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' allowed_document_types: - financial_mutation - 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: '475688883267306625' administration_id: 123 name: Te rubriceren betalingen account_type: current_liabilities account_id: null parent_id: '475688883240043637' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355202' administration_id: 123 name: Te rubriceren ontvangen betalingen account_type: current_assets account_id: null parent_id: '475688883240043635' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883267306624' administration_id: 123 name: Te rubriceren transacties account_type: current_assets account_id: null parent_id: '475688883240043632' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355204' administration_id: 123 name: Te vorderen btw account_type: current_liabilities account_id: null parent_id: '475688883240043639' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' allowed_document_types: - financial_mutation - 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: '475688883240043638' administration_id: 123 name: Verkoopkosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883268355205' administration_id: 123 name: Verrekeningen account_type: current_assets account_id: null parent_id: '475688883240043632' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043644' administration_id: 123 name: Vervoerskosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883267306622' administration_id: 123 name: Vooruitgefactureerde kosten account_type: current_assets account_id: null parent_id: '475688883240043635' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883267306623' administration_id: 123 name: Vooruitgefactureerde omzet account_type: current_liabilities account_id: null parent_id: '475688883240043637' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043636' administration_id: 123 name: Algemene kosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883268355208' administration_id: 123 name: Betaalde en/of ontvangen btw account_type: current_liabilities account_id: null parent_id: '475688883240043639' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043639' administration_id: 123 name: Btw account_type: current_liabilities account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883238995054' administration_id: 123 name: Crediteuren account_type: current_liabilities account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043631' administration_id: 123 name: Debiteuren account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043634' administration_id: 123 name: Financiële rekeningen account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043642' administration_id: 123 name: Huisvestingskosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043632' administration_id: 123 name: Hulprekeningen account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043633' administration_id: 123 name: Koersverschillen account_type: other_income_expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883267306621' administration_id: 123 name: Kruisposten account_type: current_assets account_id: null parent_id: '475688883240043632' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355206' administration_id: 123 name: Nog te betalen kosten account_type: current_liabilities account_id: null parent_id: '475688883240043637' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355207' administration_id: 123 name: Nog te factureren omzet account_type: current_assets account_id: null parent_id: '475688883240043635' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043643' administration_id: 123 name: Omzet account_type: revenue account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043641' administration_id: 123 name: Ongecategoriseerde inkomsten account_type: revenue account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043640' administration_id: 123 name: Ongecategoriseerde uitgaven account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043637' administration_id: 123 name: Overige schulden account_type: current_liabilities account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043635' administration_id: 123 name: Overige vorderingen account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883268355203' administration_id: 123 name: Te betalen btw account_type: current_liabilities account_id: null parent_id: '475688883240043639' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' allowed_document_types: - financial_mutation - 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: '475688883267306625' administration_id: 123 name: Te rubriceren betalingen account_type: current_liabilities account_id: null parent_id: '475688883240043637' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355202' administration_id: 123 name: Te rubriceren ontvangen betalingen account_type: current_assets account_id: null parent_id: '475688883240043635' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883267306624' administration_id: 123 name: Te rubriceren transacties account_type: current_assets account_id: null parent_id: '475688883240043632' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355204' administration_id: 123 name: Te vorderen btw account_type: current_liabilities account_id: null parent_id: '475688883240043639' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' allowed_document_types: - financial_mutation - 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: '475688883240043638' administration_id: 123 name: Verkoopkosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883268355205' administration_id: 123 name: Verrekeningen account_type: current_assets account_id: null parent_id: '475688883240043632' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043644' administration_id: 123 name: Vervoerskosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883267306622' administration_id: 123 name: Vooruitgefactureerde kosten account_type: current_assets account_id: null parent_id: '475688883240043635' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883267306623' administration_id: 123 name: Vooruitgefactureerde omzet account_type: current_liabilities account_id: null parent_id: '475688883240043637' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043636' administration_id: 123 name: Algemene kosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883268355208' administration_id: 123 name: Betaalde en/of ontvangen btw account_type: current_liabilities account_id: null parent_id: '475688883240043639' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043639' administration_id: 123 name: Btw account_type: current_liabilities account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883238995054' administration_id: 123 name: Crediteuren account_type: current_liabilities account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043631' administration_id: 123 name: Debiteuren account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043634' administration_id: 123 name: Financiële rekeningen account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043642' administration_id: 123 name: Huisvestingskosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043632' administration_id: 123 name: Hulprekeningen account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043633' administration_id: 123 name: Koersverschillen account_type: other_income_expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883267306621' administration_id: 123 name: Kruisposten account_type: current_assets account_id: null parent_id: '475688883240043632' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355206' administration_id: 123 name: Nog te betalen kosten account_type: current_liabilities account_id: null parent_id: '475688883240043637' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355207' administration_id: 123 name: Nog te factureren omzet account_type: current_assets account_id: null parent_id: '475688883240043635' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043643' administration_id: 123 name: Omzet account_type: revenue account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043641' administration_id: 123 name: Ongecategoriseerde inkomsten account_type: revenue account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043640' administration_id: 123 name: Ongecategoriseerde uitgaven account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043637' administration_id: 123 name: Overige schulden account_type: current_liabilities account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043635' administration_id: 123 name: Overige vorderingen account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883268355203' administration_id: 123 name: Te betalen btw account_type: current_liabilities account_id: null parent_id: '475688883240043639' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' allowed_document_types: - financial_mutation - 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: '475688883267306625' administration_id: 123 name: Te rubriceren betalingen account_type: current_liabilities account_id: null parent_id: '475688883240043637' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355202' administration_id: 123 name: Te rubriceren ontvangen betalingen account_type: current_assets account_id: null parent_id: '475688883240043635' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883267306624' administration_id: 123 name: Te rubriceren transacties account_type: current_assets account_id: null parent_id: '475688883240043632' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355204' administration_id: 123 name: Te vorderen btw account_type: current_liabilities account_id: null parent_id: '475688883240043639' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' allowed_document_types: - financial_mutation - 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: '475688883240043638' administration_id: 123 name: Verkoopkosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883268355205' administration_id: 123 name: Verrekeningen account_type: current_assets account_id: null parent_id: '475688883240043632' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043644' administration_id: 123 name: Vervoerskosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883267306622' administration_id: 123 name: Vooruitgefactureerde kosten account_type: current_assets account_id: null parent_id: '475688883240043635' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883267306623' administration_id: 123 name: Vooruitgefactureerde omzet account_type: current_liabilities account_id: null parent_id: '475688883240043637' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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 CanRequestTheLedgerAccountsIfTheUserHasPermissionForDocuments: summary: Can request the ledger accounts if the user has permission for documents value: - id: '475688883240043636' administration_id: 123 name: Algemene kosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883268355208' administration_id: 123 name: Betaalde en/of ontvangen btw account_type: current_liabilities account_id: null parent_id: '475688883240043639' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043639' administration_id: 123 name: Btw account_type: current_liabilities account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883238995054' administration_id: 123 name: Crediteuren account_type: current_liabilities account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043631' administration_id: 123 name: Debiteuren account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043634' administration_id: 123 name: Financiële rekeningen account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043642' administration_id: 123 name: Huisvestingskosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043632' administration_id: 123 name: Hulprekeningen account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043633' administration_id: 123 name: Koersverschillen account_type: other_income_expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883267306621' administration_id: 123 name: Kruisposten account_type: current_assets account_id: null parent_id: '475688883240043632' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355206' administration_id: 123 name: Nog te betalen kosten account_type: current_liabilities account_id: null parent_id: '475688883240043637' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355207' administration_id: 123 name: Nog te factureren omzet account_type: current_assets account_id: null parent_id: '475688883240043635' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043643' administration_id: 123 name: Omzet account_type: revenue account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043641' administration_id: 123 name: Ongecategoriseerde inkomsten account_type: revenue account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043640' administration_id: 123 name: Ongecategoriseerde uitgaven account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043637' administration_id: 123 name: Overige schulden account_type: current_liabilities account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883240043635' administration_id: 123 name: Overige vorderingen account_type: current_assets account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883268355203' administration_id: 123 name: Te betalen btw account_type: current_liabilities account_id: null parent_id: '475688883240043639' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' allowed_document_types: - financial_mutation - 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: '475688883267306625' administration_id: 123 name: Te rubriceren betalingen account_type: current_liabilities account_id: null parent_id: '475688883240043637' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355202' administration_id: 123 name: Te rubriceren ontvangen betalingen account_type: current_assets account_id: null parent_id: '475688883240043635' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883267306624' administration_id: 123 name: Te rubriceren transacties account_type: current_assets account_id: null parent_id: '475688883240043632' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883268355204' administration_id: 123 name: Te vorderen btw account_type: current_liabilities account_id: null parent_id: '475688883240043639' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' allowed_document_types: - financial_mutation - 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: '475688883240043638' administration_id: 123 name: Verkoopkosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883268355205' administration_id: 123 name: Verrekeningen account_type: current_assets account_id: null parent_id: '475688883240043632' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883240043644' administration_id: 123 name: Vervoerskosten account_type: expenses account_id: null parent_id: null created_at: '2026-01-08T11:38:12.193Z' updated_at: '2026-01-08T11:38:12.193Z' 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: '475688883267306622' administration_id: 123 name: Vooruitgefactureerde kosten account_type: current_assets account_id: null parent_id: '475688883240043635' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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: '475688883267306623' administration_id: 123 name: Vooruitgefactureerde omzet account_type: current_liabilities account_id: null parent_id: '475688883240043637' created_at: '2026-01-08T11:38:12.273Z' updated_at: '2026-01-08T11:38:12.273Z' 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. tags: - Ledger accounts 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 description: Can be `non_current_assets`, `current_assets`, `equity`, `provisions`, `non_current_liabilities`, `current_liabilities`, `revenue`, `direct_costs`, `expenses` or `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: 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: '475688954065061528' administration_id: 123 name: Test ledger account account_type: expenses account_id: '2182' parent_id: null created_at: '2026-01-08T11:39:19.811Z' updated_at: '2026-01-08T11:39:19.811Z' 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: '475688954112247450' administration_id: 123 name: Test ledger account account_type: expenses account_id: '2182' parent_id: null created_at: '2026-01-08T11:39:19.855Z' updated_at: '2026-01-08T11:39:19.855Z' 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 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: '475688899384968533' administration_id: 123 invoice_type: SalesInvoice invoice_id: '475688899001189695' financial_account_id: '475688899372385617' user_id: 1 payment_transaction_id: null transaction_identifier: null price: '363.0' price_base: '363.0' payment_date: '2026-01-08' credit_invoice_id: null financial_mutation_id: '475688899379725652' ledger_account_id: '475688899360851280' linked_payment_id: null manual_payment_action: null created_at: '2026-01-08T11:38:27.663Z' updated_at: '2026-01-08T11:38:27.663Z' '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. tags: - Products 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: '475689125642503807' administration_id: 123 description: My product description title: null identifier: SKU1234 price: '100.0' currency: EUR frequency: null frequency_type: null tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:42:03.439Z' updated_at: '2026-01-08T11:42:03.439Z' ReturnsASingleProductBasedOnTheIdentifierWithDot: summary: Returns a single product based on the identifier with dot value: id: '475689125707515523' 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: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:42:03.501Z' updated_at: '2026-01-08T11:42:03.510Z' '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 tags: - Products 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/x0YRo53YR4Py CreatesAnOnlineSalesLinkIfNoContactIdIsProvided: summary: Creates an online sales link if no contact id is provided value: http://checkout.moneybird.dev/o/BDelqwMM6O0r '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' Returns404WhenProductIsNotValidForOnlineSales: summary: Returns 404 when product is not valid for online sales value: error: Product not valid for online sales Returns404IfContactIsNotFound: summary: Returns 404 if contact is not found value: error: 'Record not found for model name: Contact' 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. tags: - Products 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: '475689126550570718' administration_id: 123 description: My product description title: null identifier: SKU1234 price: '100.0' currency: EUR frequency: null frequency_type: null tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:42:04.305Z' updated_at: '2026-01-08T11:42:04.305Z' '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. tags: - Products 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: type: string checkout_description: type: string 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: 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 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: '475689126661719780' administration_id: 123 description: Updated title: null identifier: SKU1234 price: '123.0' currency: EUR frequency: null frequency_type: null tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:42:04.412Z' updated_at: '2026-01-08T11:42:04.430Z' '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 1024 characters) details: description: - error: too_long count: 1024 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. tags: - Products 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: ReturnsA422ResponseWhenProductHasAnSubscriptionProductInTheFuture: summary: Returns a 422 response when product has an subscription product in the future value: error: Product cannot be destroyed or deactivated ReturnsAnErrorWhenProductHasAnActiveSubscriptionProduct: summary: Returns an error when product has an active subscription product 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. tags: - Products 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. responses: '200': description: A list of products content: application/json: schema: type: array items: $ref: '#/components/schemas/product_response' examples: HandlesEmptySearchResult: summary: Handles empty search result value: [] AllowsFilteringByQuery: summary: Allows filtering by query value: - id: '475689124837197373' administration_id: 123 description: Apple title: null identifier: null price: '100.0' currency: EUR frequency: null frequency_type: null tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:42:02.672Z' updated_at: '2026-01-08T11:42:02.672Z' ReturnsAListOfActiveProducts: summary: Returns a list of active products value: - id: '475689125216781902' administration_id: 123 description: Apple title: null identifier: null price: '100.0' currency: EUR frequency: null frequency_type: null tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:42:03.033Z' updated_at: '2026-01-08T11:42:03.033Z' - id: '475689125203150412' administration_id: 123 description: My product description title: null identifier: SKU1234 price: '100.0' currency: EUR frequency: null frequency_type: null tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:42:03.021Z' updated_at: '2026-01-08T11:42:03.021Z' - id: '475689125228316240' administration_id: 123 description: Pie title: null identifier: null price: '100.0' currency: EUR frequency: null frequency_type: null tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:42:03.045Z' updated_at: '2026-01-08T11:42:03.045Z' ReturnsAPaginatedResponseForPage2: summary: Returns a paginated response for page 2 value: - id: '475689125493605998' administration_id: 123 description: My product description title: null identifier: SKU1234 price: '100.0' currency: EUR frequency: null frequency_type: null tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:42:03.298Z' updated_at: '2026-01-08T11:42:03.298Z' '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 ReturnsA400IfTheRequestIsInvalid: summary: Returns a 400 if the request is invalid value: error: per_page does not have a valid value operationId: get_administration_id_products post: summary: Creates a new product description: Creates a new product. tags: - Products 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: type: string checkout_description: type: string 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: Should be an integer 0 <= *n* < 2. identifier: type: string description: Should be unique for the administration. frequency_preset: type: string required: - price - ledger_account_id required: [] examples: CreatesANewProduct: summary: Creates a new product value: product: description: Geldvogel price: 50,50 tax_rate_id: 475689113429739000 ledger_account_id: 475689113438127600 responses: '201': description: Product created content: application/json: schema: $ref: '#/components/schemas/product_response' examples: CreatesANewProduct: summary: Creates a new product value: id: '475689113451759127' administration_id: 123 description: Geldvogel title: null identifier: null price: '50.5' currency: EUR frequency: null frequency_type: null tax_rate_id: '475689113429739027' ledger_account_id: '475689113438127637' created_at: '2026-01-08T11:41:51.814Z' updated_at: '2026-01-08T11:41:51.814Z' '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. tags: - Projects 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: '475689049808438629' 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). tags: - Projects 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' 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: '475689049881838955' 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`. tags: - Projects 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. tags: - Projects parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string 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: '475689049641715031' name: Project Blackbird state: archived budget: 10 ReturnsTheListOfProjects: summary: Returns the list of projects value: - id: '475689049670026585' 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. tags: - Projects 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' 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: '475689049737135455' 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. deprecated: true x-sunset: '2026-12-31' tags: - Purchase transactions 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. tags: - Purchase transactions 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: ReturnsPurchaseTransactionWhenSuccessful: summary: Returns purchase transaction when successful value: id: '475688971019486427' administration_id: 123 financial_account_id: '475688971014243545' 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-01-08' description: FOOBAR-1 end_to_end_id: FOOBAR-1 contact: id: '475688970993272020' 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 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-01-08T11:39:35.954Z' updated_at: '2026-01-08T11:39:35.954Z' version: 1767872375 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false amount: '121.0' created_at: '2026-01-08T11:39:35.979Z' updated_at: '2026-01-08T11:39:35.979Z' payable_type: Document payable_id: '475688971005854935' payment_method: null ReturnsPurchaseTransactionWhenFinancialaccountIsNotABankaccount: summary: Returns purchase transaction when financialaccount is not a bankaccount value: id: '475688971109663981' administration_id: 123 financial_account_id: '475688971084498149' 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-01-08' description: FOOBAR-2 end_to_end_id: FOOBAR-2 contact: id: '475688971089741032' 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 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-01-08T11:39:36.047Z' updated_at: '2026-01-08T11:39:36.047Z' version: 1767872376 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false amount: '121.0' created_at: '2026-01-08T11:39:36.065Z' updated_at: '2026-01-08T11:39:36.065Z' payable_type: Document payable_id: '475688971102323947' 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. tags: - Purchase transactions 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 all purchase transactions in the administration. The `filter` argument allows you to filter the list of invoices. Filters are a combination of keys and values, separated by a comma: `period:this_year,state:open`. The available options for filtering are: | **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_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`. tags: - Purchase transactions parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string examples: ReturnsAllPurchaseTransactionsFilteredOnPeriod: summary: Returns all purchase transactions filtered on period value: period:this_month ReturnsOnlyPurchaseTransactionsReadyToBeSigned: summary: Returns only purchase transactions ready to be signed value: state:awaiting_authorization,unbatched:true,signable_by_user:true DoesNotListPaidTransactions: summary: Does not list paid transactions value: state:pending_payment,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: ReturnsAllPurchaseTransactionsOfAnAdministration: summary: Returns all purchase transactions of an administration value: - id: '475688970546578564' administration_id: 123 financial_account_id: '475688970540287106' 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-01-08' description: FOOBAR-1 end_to_end_id: FOOBAR-1 contact: id: '475688970517218429' 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 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-01-08T11:39:35.500Z' updated_at: '2026-01-08T11:39:35.500Z' version: 1767872375 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false amount: '121.0' created_at: '2026-01-08T11:39:35.528Z' updated_at: '2026-01-08T11:39:35.528Z' payable_type: Document payable_id: '475688970530849920' payment_method: null ReturnsAllPurchaseTransactionsFilteredOnPeriod: summary: Returns all purchase transactions filtered on period value: - id: '475688970613687437' administration_id: 123 financial_account_id: '475688970607395979' 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-01-08' description: FOOBAR-1 end_to_end_id: FOOBAR-1 contact: id: '475688970585375878' 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 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-01-08T11:39:35.565Z' updated_at: '2026-01-08T11:39:35.565Z' version: 1767872375 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000001/all notes: [] custom_fields: [] contact_people: [] archived: false amount: '121.0' created_at: '2026-01-08T11:39:35.592Z' updated_at: '2026-01-08T11:39:35.592Z' payable_type: Document payable_id: '475688970599007369' payment_method: null ReturnsOnlyPurchaseTransactionsReadyToBeSigned: summary: Returns only purchase transactions ready to be signed value: - id: '475688970740565161' administration_id: 123 financial_account_id: '475688970732176550' 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-01-08' description: 2026-0003 end_to_end_id: 2026-0003 contact: id: '475688970711205025' 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 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-01-08T11:39:35.686Z' updated_at: '2026-01-08T11:39:35.686Z' version: 1767872375 sales_invoices_url: https://moneybird.dev/123/sales_invoices/0000000000000000000000000000000000000000000000000000000000000002/all notes: [] custom_fields: [] contact_people: [] archived: false amount: '121.0' created_at: '2026-01-08T11:39:35.713Z' updated_at: '2026-01-08T11:39:35.713Z' payable_type: Document payable_id: '475688970723787940' payment_method: null DoesNotListPaidTransactions: summary: Does not list paid transactions value: [] DoesNotListTransactions: summary: Does not list transactions value: [] 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. tags: - Recurring sales invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false 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: RetrievesTheIdsForSynchronization: summary: Retrieves the ids for synchronization value: - id: '475688992791070400' version: 1767872396 - id: '475688992743884473' version: 1767872396 RetrievesTheIdsForSynchronizationWithAFilter: summary: Retrieves the ids for synchronization with a filter value: - id: '475688992865519305' version: 1767872396 operationId: get_administration_id_recurring_sales_invoices_synchronization post: summary: Fetch recurring sales invoices with given IDs 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. tags: - Recurring 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: - 475688992584500900 - 475688992617006800 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: '475688992617006768' administration_id: 123 contact_id: '475688992556189354' contact: id: '475688992556189354' 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: '2' 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 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-01-08T11:39:56.518Z' updated_at: '2026-01-08T11:39:56.518Z' version: 1767872396 sales_invoices_url: https://moneybird.dev/123/sales_invoices/846a0e136b783c5fe67f190e3a9873548d1c080951d4a2d6e040f8c94ff983ad/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '475688883620676750' start_date: '2026-01-09' invoice_date: '2026-01-09' last_date: '2026-01-09' 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-01-08T11:39:56.577Z' updated_at: '2026-01-08T11:39:56.581Z' version: 1767872396 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: '475688992619103921' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:56.578Z' updated_at: '2026-01-08T11:39:56.578Z' - id: '475688992620152498' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:56.580Z' updated_at: '2026-01-08T11:39:56.580Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:56.583Z' updated_at: '2026-01-08T11:39:56.583Z' subscription: null - id: '475688992584500908' administration_id: 123 contact_id: '475688992556189354' contact: id: '475688992556189354' 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: '2' 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 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-01-08T11:39:56.518Z' updated_at: '2026-01-08T11:39:56.518Z' version: 1767872396 sales_invoices_url: https://moneybird.dev/123/sales_invoices/846a0e136b783c5fe67f190e3a9873548d1c080951d4a2d6e040f8c94ff983ad/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '475688883620676750' start_date: '2026-01-09' invoice_date: '2026-01-09' last_date: '2026-01-09' 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-01-08T11:39:56.546Z' updated_at: '2026-01-08T11:39:56.550Z' version: 1767872396 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: '475688992586598061' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:56.547Z' updated_at: '2026-01-08T11:39:56.547Z' - id: '475688992588695214' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:56.549Z' updated_at: '2026-01-08T11:39:56.549Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:56.552Z' updated_at: '2026-01-08T11:39:56.552Z' 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. tags: - Recurring 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: '475688994682701733' administration_id: 123 contact_id: '475688994648098722' contact: id: '475688994648098722' 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 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-01-08T11:39:58.513Z' updated_at: '2026-01-08T11:39:58.513Z' version: 1767872398 sales_invoices_url: https://moneybird.dev/123/sales_invoices/172bd8d187128aab479ace1204f9eaf9cbebe56971da0596da87a43f63eeb9e8/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '475688883620676750' start_date: '2026-01-09' invoice_date: '2026-01-09' last_date: '2026-01-09' 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-01-08T11:39:58.547Z' updated_at: '2026-01-08T11:39:58.552Z' version: 1767872398 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: '475688994684798886' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:58.548Z' updated_at: '2026-01-08T11:39:58.548Z' - id: '475688994686896039' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:58.550Z' updated_at: '2026-01-08T11:39:58.550Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:58.554Z' updated_at: '2026-01-08T11:39:58.554Z' 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. tags: - Recurring 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 reference: type: string 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 prices_are_incl_tax: type: - boolean - string 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 has_desired_count: type: - boolean - string desired_count: type: string auto_send: type: - boolean - string mergeable: type: - boolean - string 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: 475688993705428800 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: '475688993568065309' administration_id: 123 contact_id: '475688993530316570' contact: id: '475688993530316570' 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 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-01-08T11:39:57.447Z' updated_at: '2026-01-08T11:39:57.447Z' version: 1767872397 sales_invoices_url: https://moneybird.dev/123/sales_invoices/9cb5c9f415efedc2a5dba5d777865f341a0514c806093372b5ab2165ceb949a6/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '475688883620676750' start_date: '2026-01-09' invoice_date: '2026-01-09' last_date: '2026-01-09' 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-01-08T11:39:57.483Z' updated_at: '2026-01-08T11:39:57.511Z' version: 1767872397 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: '475688993570162462' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:57.485Z' updated_at: '2026-01-08T11:39:57.485Z' - id: '475688993572259615' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:57.487Z' updated_at: '2026-01-08T11:39:57.487Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:57.490Z' updated_at: '2026-01-08T11:39:57.490Z' subscription: null UpdatesARecurringSalesInvoiceDetail: summary: Updates a recurring sales invoice detail value: id: '475688993704380198' administration_id: 123 contact_id: '475688993666631459' contact: id: '475688993666631459' 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 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-01-08T11:39:57.577Z' updated_at: '2026-01-08T11:39:57.577Z' version: 1767872397 sales_invoices_url: https://moneybird.dev/123/sales_invoices/59fe5fa1900b48662477578b544e0fa41fb16df38df817167f43692b73ba5d26/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '475688883620676750' start_date: '2026-01-09' invoice_date: '2026-01-09' last_date: '2026-01-09' 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-01-08T11:39:57.613Z' updated_at: '2026-01-08T11:39:57.643Z' version: 1767872397 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: '475688993705428775' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:57.615Z' updated_at: '2026-01-08T11:39:57.642Z' - id: '475688993707525928' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:57.617Z' updated_at: '2026-01-08T11:39:57.617Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:57.620Z' updated_at: '2026-01-08T11:39:57.620Z' 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. tags: - Recurring 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. tags: - Recurring 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. tags: - Recurring 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: 475688995406219260 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '475688995422996473' administration_id: 123 entity_id: '475688995392587763' entity_type: RecurringSalesInvoice user_id: 17678722914505 assignee_id: '475688995406219255' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-01-08T11:39:59.252Z' updated_at: '2026-01-08T11:39:59.252Z' '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 all recurring sales invoices in the administration. The `filter` argument allows you to filter on the list of recurring invoices. Filters are a combination of keys and values, separated by a comma: `state:active,contact_id:123`. The available options for filtering are: | **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 | tags: - Recurring sales invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string examples: ReturnsRecurringInvoicesFilteredOnFrequency: summary: Returns recurring invoices filtered on frequency value: frequency:month ReturnsRecurringInvoicesFilteredOnContact: summary: Returns recurring invoices filtered on contact value: contact_id:475688996446405729 - $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: ReturnsAllRecurringSalesInvoicesOfAnAdministration: summary: Returns all recurring sales invoices of an administration value: - id: '475688995600204815' administration_id: 123 contact_id: '475688995500590085' contact: id: '475688995500590085' 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: '2' 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 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-01-08T11:39:59.326Z' updated_at: '2026-01-08T11:39:59.326Z' version: 1767872399 sales_invoices_url: https://moneybird.dev/123/sales_invoices/fb6c395cd97e371143a1d29adc8560e4dca1ec268f1a7e1e5803ef11ae77cc57/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '475688883620676750' start_date: '2026-01-09' invoice_date: '2026-01-09' last_date: '2026-01-09' 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-01-08T11:39:59.421Z' updated_at: '2026-01-08T11:39:59.426Z' version: 1767872399 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: '475688995601253392' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:59.422Z' updated_at: '2026-01-08T11:39:59.422Z' - id: '475688995603350545' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:59.424Z' updated_at: '2026-01-08T11:39:59.424Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:59.427Z' updated_at: '2026-01-08T11:39:59.427Z' subscription: null - id: '475688995564553227' administration_id: 123 contact_id: '475688995500590085' contact: id: '475688995500590085' 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: '2' 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 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-01-08T11:39:59.326Z' updated_at: '2026-01-08T11:39:59.326Z' version: 1767872399 sales_invoices_url: https://moneybird.dev/123/sales_invoices/fb6c395cd97e371143a1d29adc8560e4dca1ec268f1a7e1e5803ef11ae77cc57/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '475688883620676750' start_date: '2026-01-09' invoice_date: '2026-01-09' last_date: '2026-01-09' 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-01-08T11:39:59.387Z' updated_at: '2026-01-08T11:39:59.392Z' version: 1767872399 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: '475688995566650380' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:59.389Z' updated_at: '2026-01-08T11:39:59.389Z' - id: '475688995568747533' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:59.391Z' updated_at: '2026-01-08T11:39:59.391Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:59.394Z' updated_at: '2026-01-08T11:39:59.394Z' subscription: null - id: '475688995529950215' administration_id: 123 contact_id: '475688995500590085' contact: id: '475688995500590085' 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: '2' 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 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-01-08T11:39:59.326Z' updated_at: '2026-01-08T11:39:59.326Z' version: 1767872399 sales_invoices_url: https://moneybird.dev/123/sales_invoices/fb6c395cd97e371143a1d29adc8560e4dca1ec268f1a7e1e5803ef11ae77cc57/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '475688883620676750' start_date: '2026-01-09' invoice_date: '2026-01-09' last_date: '2026-01-09' 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-01-08T11:39:59.354Z' updated_at: '2026-01-08T11:39:59.359Z' version: 1767872399 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: '475688995530998792' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:59.356Z' updated_at: '2026-01-08T11:39:59.356Z' - id: '475688995533095945' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:59.358Z' updated_at: '2026-01-08T11:39:59.358Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:59.360Z' updated_at: '2026-01-08T11:39:59.360Z' subscription: null - id: '475688995484861440' administration_id: 123 contact_id: '475688995452356605' contact: id: '475688995452356605' 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 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-01-08T11:39:59.280Z' updated_at: '2026-01-08T11:39:59.280Z' version: 1767872399 sales_invoices_url: https://moneybird.dev/123/sales_invoices/3bd18258ee038c3ec72013340d34438aa51acb3c02190d181fff6db8d6aa46db/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '475688883620676750' start_date: '2026-01-09' invoice_date: '2026-01-09' last_date: '2026-01-09' 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-01-08T11:39:59.311Z' updated_at: '2026-01-08T11:39:59.316Z' version: 1767872399 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: '475688995485910017' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:59.313Z' updated_at: '2026-01-08T11:39:59.313Z' - id: '475688995488007170' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:59.314Z' updated_at: '2026-01-08T11:39:59.314Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:59.317Z' updated_at: '2026-01-08T11:39:59.317Z' subscription: null ReturnsRecurringInvoicesFilteredOnFrequency: summary: Returns recurring invoices filtered on frequency value: - id: '475688995714499608' administration_id: 123 contact_id: '475688995678848021' contact: id: '475688995678848021' 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 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-01-08T11:39:59.496Z' updated_at: '2026-01-08T11:39:59.496Z' version: 1767872399 sales_invoices_url: https://moneybird.dev/123/sales_invoices/672d3f50b73e4837e7f47bc3830a6d658c0d5a7a347bf78c27eeb183cba4bd60/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '475688883620676750' start_date: '2026-01-09' invoice_date: '2026-01-09' last_date: '2026-01-09' 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-01-08T11:39:59.530Z' updated_at: '2026-01-08T11:39:59.535Z' version: 1767872399 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: '475688995715548185' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:59.532Z' updated_at: '2026-01-08T11:39:59.532Z' - id: '475688995717645338' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:59.534Z' updated_at: '2026-01-08T11:39:59.534Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:59.537Z' updated_at: '2026-01-08T11:39:59.537Z' subscription: null ReturnsPaginatedRecurringSalesInvoicesOnPage1: summary: Returns paginated recurring sales invoices on page 1 value: - id: '475688996352033883' administration_id: 123 contact_id: '475688996239836241' contact: id: '475688996239836241' 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: '2' 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 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-01-08T11:40:00.031Z' updated_at: '2026-01-08T11:40:00.031Z' version: 1767872400 sales_invoices_url: https://moneybird.dev/123/sales_invoices/9ab413c4b257d8aab491be76ad9d49b2c75147a1881ed46c07c64cc1c0e4258b/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '475688883620676750' start_date: '2026-01-09' invoice_date: '2026-01-09' last_date: '2026-01-09' 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-01-08T11:40:00.138Z' updated_at: '2026-01-08T11:40:00.143Z' version: 1767872400 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: '475688996353082460' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:40:00.139Z' updated_at: '2026-01-08T11:40:00.139Z' - id: '475688996355179613' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:40:00.141Z' updated_at: '2026-01-08T11:40:00.141Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:00.144Z' updated_at: '2026-01-08T11:40:00.144Z' subscription: null ReturnsRecurringInvoicesFilteredOnContact: summary: Returns recurring invoices filtered on contact value: - id: '475688996481008740' administration_id: 123 contact_id: '475688996446405729' contact: id: '475688996446405729' 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 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-01-08T11:40:00.227Z' updated_at: '2026-01-08T11:40:00.227Z' version: 1767872400 sales_invoices_url: https://moneybird.dev/123/sales_invoices/28891d594d92e156dc15c22a4e344c53ba49f80eb342400395db20d2b11ef346/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '475688883620676750' start_date: '2026-01-09' invoice_date: '2026-01-09' last_date: '2026-01-09' 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-01-08T11:40:00.261Z' updated_at: '2026-01-08T11:40:00.266Z' version: 1767872400 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: '475688996483105893' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:40:00.263Z' updated_at: '2026-01-08T11:40:00.263Z' - id: '475688996484154470' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:40:00.265Z' updated_at: '2026-01-08T11:40:00.265Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:00.268Z' updated_at: '2026-01-08T11:40:00.268Z' subscription: null ReturnsPaginatedRecurringSalesInvoicesOnPage2: summary: Returns paginated recurring sales invoices on page 2 value: - id: '475688996848010382' administration_id: 123 contact_id: '475688996777755784' contact: id: '475688996777755784' 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: '2' 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 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-01-08T11:40:00.544Z' updated_at: '2026-01-08T11:40:00.544Z' version: 1767872400 sales_invoices_url: https://moneybird.dev/123/sales_invoices/a2cc9533d6af8dbabb94e8f45949fd22c1cc3826972c65ac38256bdf842d0c09/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '475688883620676750' start_date: '2026-01-09' invoice_date: '2026-01-09' last_date: '2026-01-09' 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-01-08T11:40:00.611Z' updated_at: '2026-01-08T11:40:00.617Z' version: 1767872400 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: '475688996850107535' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:40:00.613Z' updated_at: '2026-01-08T11:40:00.613Z' - id: '475688996852204688' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:40:00.615Z' updated_at: '2026-01-08T11:40:00.615Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:00.618Z' updated_at: '2026-01-08T11:40:00.618Z' 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 tags: - Recurring 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 reference: type: string 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 prices_are_incl_tax: type: - boolean - string 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 has_desired_count: type: - boolean - string desired_count: type: string auto_send: type: - boolean - string mergeable: type: - boolean - string 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: 475688994145830700 invoice_date: '2030-01-01' details_attributes: '0': description: Table price: '10.5' tax_rate_id: 475688994156316540 ledger_account_id: 475688994165753700 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: '475688994194065254' administration_id: 123 contact_id: '475688994145830751' contact: id: '475688994145830751' 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: '2' 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 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-01-08T11:39:58.034Z' updated_at: '2026-01-08T11:39:58.034Z' version: 1767872398 sales_invoices_url: https://moneybird.dev/123/sales_invoices/4a33f7368da19c9a719a0141e58cf440d923ab765b3882d49d6a6cdeaf4d0b1c/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null workflow_id: '475688883620676750' 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-01-08T11:39:58.080Z' updated_at: '2026-01-08T11:39:58.083Z' version: 1767872398 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: '475688994195113831' administration_id: 123 tax_rate_id: '475688994156316514' ledger_account_id: '475688994165753700' 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-01-08T11:39:58.081Z' updated_at: '2026-01-08T11:39:58.081Z' custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: recurring_sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:58.085Z' updated_at: '2026-01-08T11:39:58.085Z' 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' 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 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: '475689060118038274' ledger_account_id: '475689060105455361' name: Test Asset purchase_date: '2025-01-01' lifespan: '157784760' 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: '475689061034493830' ledger_account_id: '475689061028202373' name: Test Asset purchase_date: '2025-01-01' lifespan: '157784760' 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: '475689106331928186' value: '800.0' children: - ledger_account_id: '475689106343462527' value: '100.0' non_current_assets: - ledger_account_id: '475689106352899716' value: '200.0' children: [] credit: total: '1100.0' equity: - ledger_account_id: '475689106380162707' value: '550.0' children: [] provisions: - ledger_account_id: '475689106371774094' value: '150.0' children: [] non_current_liabilities: [] current_liabilities: - ledger_account_id: '475689106362336905' 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: '475689106601412323' value: '800.0' children: - ledger_account_id: '475689106611898088' value: '100.0' non_current_assets: - ledger_account_id: '475689106620286701' value: '200.0' children: [] credit: total: '1100.0' equity: - ledger_account_id: '475689106646501116' value: '550.0' children: [] provisions: - ledger_account_id: '475689106638112503' value: '150.0' children: [] non_current_liabilities: [] current_liabilities: - ledger_account_id: '475689106628675314' 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' - 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: '475688971331962132': '100.0' cash_paid_by_ledger_account: '475688971353982239': '-50.0' opening_balance: '0' closing_balance: '50.0' ReturnsSuccessForFullPeriod: summary: Returns success for full period value: cash_received_by_ledger_account: {} cash_paid_by_ledger_account: {} opening_balance: '0' closing_balance: '0.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 [: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' - $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: ReturnsACreditorsReport: summary: Returns a creditors report value: creditors: - contact_id: '475689086815831250' amount: '200.0' FiltersTheRepordOnASpecificPeriod: summary: Filters the repord on a specific period value: creditors: - contact_id: '475689086864065758' amount: '100.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: '475689086945854704' amount: '100.0' ReturnsACreditorsReportWithMultipleContacts: summary: Returns a creditors report with multiple contacts value: creditors: - contact_id: '475689086980457718' amount: '200.0' - contact_id: '475689086989894908' 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: 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_creditors /{administration_id}/reports/debtors{format}: get: summary: Debtors report description: |- Returns a debtors 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' - $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: ReturnsAnEmptyReportIfNoDebtorsInThePeriodAreFound: summary: Returns an empty report if no debtors in the period are found value: debtors: [] ReturnsADebtorsReportWithMultipleContacts: summary: Returns a debtors report with multiple contacts value: debtors: - contact_id: '475689107483264930' amount: '200.0' - contact_id: '475689107493750696' amount: '100.0' ReturnsTheSecondPageOfTheReport: summary: Returns the second page of the report value: debtors: - contact_id: '475689107537790900' amount: '100.0' FiltersTheRepordOnASpecificPeriod: summary: Filters the repord on a specific period value: debtors: - contact_id: '475689107581831104' amount: '100.0' ReturnsADebtorsReport: summary: Returns a debtors report value: debtors: - contact_id: '475689107616434118' amount: '200.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/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' - $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: '475688955116783367' 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: 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_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' - $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: '475688954742441643' 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`, `contacts`, `documents`, `estimates`, `sales_invoices` and `settings` tags: - Reports security: - bearerAuth: - bank - contacts - 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: 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' UsesDefaultVersion32WhenVersionIsNotSpecified: summary: Uses default version 3.2 when version is not specified value: year: '2024' AcceptsVersion40Parameter: summary: Accepts version 4.0 parameter value: year: '2024' version: '4.0' responses: '204': $ref: '#/components/responses/204_no_content' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns400ForInvalidVersion: summary: Returns 400 for invalid version value: error: version does not have a valid value 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 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, :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, :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, :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: '475689088268109259': '1000.0' credit_sums: '475689088268109259': '500.0' start_balance: '475689088268109259': '300.0' final_balance: '475689088268109259': '800.0' ReturnsSuccessForFullPeriod: summary: Returns success for full period value: debit_sums: {} credit_sums: {} start_balance: '475689088367724005': '300.0' final_balance: '475689088367724005': '300.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_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' - $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: '475689102254015748' 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: '475689102247724288' 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: '475689102235141368' 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: '475689102241432828' 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: '475689102228849908' 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: '475689102329513252' 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: '475689102324270368' 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: '475689102312736024' 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: '475689102317978908' 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: '475689102306444564' 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: '475689102334756136' 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: '475689102301201680' 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: 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 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 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, :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' - $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: ReturnsALedgerAccountReport: summary: Returns a ledger account report value: - id: je_6 date: '2025-06-14' document_type: Document document_id: '475688997338744021' 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: '475688997333501137' 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: '475688997319869641' 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: '475688997327209677' 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: '475688997313578181' 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: '475688997346084057' 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: '475688997307286721' 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 ReturnsALedgerAccountReportWithPagination: summary: Returns a ledger account report with pagination value: - id: je_6 date: '2025-06-14' document_type: Document document_id: '475688997498127637' 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: '475688997491836177' 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: '475688997478204681' 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: '475688997485544717' 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: '475688997471913221' ledger_account_id: '123' project_id: null contact_id: null tax_rate_id: null financial_account_id: null amount: '50.0' description: Service income ReturnsSuccessForFullPeriod: summary: Returns success for full period value: [] '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, :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. ### 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: Gross profit amount operating_profit: type: string description: Operating profit amount net_profit: type: string description: Net profit amount total_expenses: type: string description: Total expenses amount total_revenue: type: string description: Total revenue amount examples: ReturnsAProfitLossReport: summary: Returns a profit loss report value: revenue_by_ledger_account: '475689107786303465': '100.0' direct_costs_by_ledger_account: '475689107795740654': '20.0' expenses_by_ledger_account: '475689107805177843': '15.0' other_income_expenses_by_ledger_account: '475689107813566456': '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: '475689107908985873': '100.0' direct_costs_by_ledger_account: '475689107918423062': '20.0' expenses_by_ledger_account: '475689107927860251': '15.0' other_income_expenses_by_ledger_account: '475689107978191904': '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, :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' - $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: '475689099391403830' 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: 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_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' - $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: '475689013899953908' 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' 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' 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: '475688883320784009' name: 21% btw percentage: '21.0' report_reference: NL/1a amount: '900.0' type: sales_invoice tax: '189.0' - tax_rate_id: '475688883332318348' 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, :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. tags: - 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: '475688938113074300' administration_id: 123 contact_id: '475688938061694070' contact: id: '475688938061694070' 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 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-01-08T11:39:04.548Z' updated_at: '2026-01-08T11:39:04.548Z' version: 1767872344 sales_invoices_url: https://moneybird.dev/123/sales_invoices/6825642b3a7c919e5fed83c3473504ffab1585d3ed88597a67e5bb19d8d45db2/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '475688938075325561' contact_person: id: null contact_id: '475688938061694070' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:39:04.562Z' updated_at: '2026-01-08T11:39:04.562Z' version: 1767872344 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF530000000000000DM7VGURQ short_payment_reference: RF53DM7VGURQ reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:39:04.597Z' updated_at: '2026-01-08T11:39:04.678Z' public_view_code: '607118' public_view_code_expires_at: '2026-04-08T11:39:04.643Z' version: 1767872344 details: - id: '475688938115171453' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:04.600Z' updated_at: '2026-01-08T11:39:04.676Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/6825642b3a7c919e5fed83c3473504ffab1585d3ed88597a67e5bb19d8d45db2/9433855f704dfee0bb9f734663ec17eea6d4be490aeb3a1cae2b8862c60fbc6f/sales_invoice payment_url: http://moneybird.dev/123/external/6825642b3a7c919e5fed83c3473504ffab1585d3ed88597a67e5bb19d8d45db2/9433855f704dfee0bb9f734663ec17eea6d4be490aeb3a1cae2b8862c60fbc6f/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:04.603Z' updated_at: '2026-01-08T11:39:04.603Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:04.654Z' updated_at: '2026-01-08T11:39:04.654Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:39:04.692Z' updated_at: '2026-01-08T11:39:04.692Z' tax_totals: - tax_rate_id: '475688883320784009' 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. tags: - 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: '475688950574351636' administration_id: 123 contact_id: '475688950528214286' contact: id: '475688950528214286' 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 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-01-08T11:39:16.438Z' updated_at: '2026-01-08T11:39:16.438Z' version: 1767872356 sales_invoices_url: https://moneybird.dev/123/sales_invoices/a6ffff6a3433d3eae7af276023df8e12cf710479c7c0f39c1c69ba9dd64afcc2/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '475688950537651473' contact_person: id: null contact_id: '475688950528214286' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:39:16.447Z' updated_at: '2026-01-08T11:39:16.447Z' version: 1767872356 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF7200000000000003ZG36MGN short_payment_reference: RF723ZG36MGN reference: invoice-123 language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:39:16.481Z' updated_at: '2026-01-08T11:39:16.562Z' public_view_code: '800809' public_view_code_expires_at: '2026-04-08T11:39:16.525Z' version: 1767872356 details: - id: '475688950577497365' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:16.484Z' updated_at: '2026-01-08T11:39:16.561Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/a6ffff6a3433d3eae7af276023df8e12cf710479c7c0f39c1c69ba9dd64afcc2/e804bb1119ccce5f882ffc06f04137bddb9e5e63f062165f00799b9aa1513759/sales_invoice payment_url: http://moneybird.dev/123/external/a6ffff6a3433d3eae7af276023df8e12cf710479c7c0f39c1c69ba9dd64afcc2/e804bb1119ccce5f882ffc06f04137bddb9e5e63f062165f00799b9aa1513759/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:16.487Z' updated_at: '2026-01-08T11:39:16.487Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:16.537Z' updated_at: '2026-01-08T11:39:16.537Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:39:16.577Z' updated_at: '2026-01-08T11:39:16.577Z' tax_totals: - tax_rate_id: '475688883320784009' 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. tags: - 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' reminder_text: type: string delivery_method: type: string email_address: type: string 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. tags: - Sales invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false 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: '475688933247682194' version: 1767872339 - id: '475688933111367299' version: 1767872339 - id: '475688932967712372' version: 1767872339 - id: '475688932806231652' version: 1767872339 RetrievesTheIdSForSynchronizationWithAFilter: summary: Retrieves the id's for synchronization with a filter value: - id: '475688933376657053' version: 1767872340 - id: '475688933518214829' version: 1767872340 - id: '475688933644043964' version: 1767872340 operationId: get_administration_id_sales_invoices_synchronization post: summary: Fetch sales invoices with given ids 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. tags: - 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: - 475688924079982340 - 475688924214200100 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: '475688924214200104' administration_id: 123 contact_id: '475688923890190083' contact: id: '475688923890190083' 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 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-01-08T11:38:51.034Z' updated_at: '2026-01-08T11:38:51.034Z' version: 1767872331 sales_invoices_url: https://moneybird.dev/123/sales_invoices/fa45fb87e64566b71b7c88c52265d00f4450488b7eba81d78650c7f9a012f6de/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF66000000000000043FWXDFH short_payment_reference: RF6643FWXDFH reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:38:51.342Z' updated_at: '2026-01-08T11:38:51.416Z' public_view_code: '072842' public_view_code_expires_at: '2026-04-08T11:38:51.383Z' version: 1767872331 details: - id: '475688924216297257' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:51.345Z' updated_at: '2026-01-08T11:38:51.415Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/fa45fb87e64566b71b7c88c52265d00f4450488b7eba81d78650c7f9a012f6de/44c7181effe1f7df0dc1bbd241e91f140b160bbcad0f99f5e10e6565ae0861d6/sales_invoice payment_url: http://moneybird.dev/123/external/fa45fb87e64566b71b7c88c52265d00f4450488b7eba81d78650c7f9a012f6de/44c7181effe1f7df0dc1bbd241e91f140b160bbcad0f99f5e10e6565ae0861d6/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:51.348Z' updated_at: '2026-01-08T11:38:51.348Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:51.394Z' updated_at: '2026-01-08T11:38:51.394Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:38:51.429Z' updated_at: '2026-01-08T11:38:51.429Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] - id: '475688924079982361' administration_id: 123 contact_id: '475688923890190083' contact: id: '475688923890190083' 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 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-01-08T11:38:51.034Z' updated_at: '2026-01-08T11:38:51.034Z' version: 1767872331 sales_invoices_url: https://moneybird.dev/123/sales_invoices/fa45fb87e64566b71b7c88c52265d00f4450488b7eba81d78650c7f9a012f6de/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF960000000000000ZWNYTPY2 short_payment_reference: RF96ZWNYTPY2 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:38:51.214Z' updated_at: '2026-01-08T11:38:51.286Z' public_view_code: '382977' public_view_code_expires_at: '2026-04-08T11:38:51.253Z' version: 1767872331 details: - id: '475688924082079514' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:51.216Z' updated_at: '2026-01-08T11:38:51.284Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/fa45fb87e64566b71b7c88c52265d00f4450488b7eba81d78650c7f9a012f6de/512eccd26a34bac279c798d08833e6a5fc3216e25ab0cf75d49d7f5a0cf15af7/sales_invoice payment_url: http://moneybird.dev/123/external/fa45fb87e64566b71b7c88c52265d00f4450488b7eba81d78650c7f9a012f6de/512eccd26a34bac279c798d08833e6a5fc3216e25ab0cf75d49d7f5a0cf15af7/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:51.219Z' updated_at: '2026-01-08T11:38:51.219Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:51.264Z' updated_at: '2026-01-08T11:38:51.264Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:38:51.299Z' updated_at: '2026-01-08T11:38:51.299Z' tax_totals: - tax_rate_id: '475688883320784009' 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. tags: - 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. tags: - 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/096ed61108d44e3882c2adb7ea461b78a7222317f45b743d99d119333b0c0d3b/9bdc9490dcce953728fb59e106e5ffe48c42c0b7a5bbcf9f88f241b76ad365c6/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. tags: - 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/862675f1c0b9d569af3778864cae04afef185fd1101aa0798d0f7b6bc60a1104/7e119ff7280b683a81eb6f702bb16bf3c1ce3fcca7a36973bad062512a04aaa0/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. tags: - 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 RF8500000000000003TJCK45V 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 RF853TJCK45V. 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. tags: - 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: '475688946131535672' administration_id: 123 contact_id: '475688945938597669' contact: id: '475688945938597669' 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 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-01-08T11:39:12.060Z' updated_at: '2026-01-08T11:39:12.060Z' version: 1767872352 sales_invoices_url: https://moneybird.dev/123/sales_invoices/be5fd29e1dea80229c95f49e3447d076e12cd6cfd1fe33b5b509a02b366c8fa9/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: 2 state: draft invoice_date: null due_date: '2026-01-22' 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: '475688945980540712' paused: false paid_at: null sent_at: null created_at: '2026-01-08T11:39:12.244Z' updated_at: '2026-01-08T11:39:12.251Z' public_view_code: null public_view_code_expires_at: null version: 1767872352 details: - id: '475688946134681401' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:12.247Z' updated_at: '2026-01-08T11:39:12.247Z' - id: '475688946136778554' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:12.249Z' updated_at: '2026-01-08T11:39:12.249Z' 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/be5fd29e1dea80229c95f49e3447d076e12cd6cfd1fe33b5b509a02b366c8fa9/e508a8c92d99a8a763d1f13d53822e354448eb937aee87bbc7a45c1b3af7c520/sales_invoice payment_url: http://moneybird.dev/123/external/be5fd29e1dea80229c95f49e3447d076e12cd6cfd1fe33b5b509a02b366c8fa9/e508a8c92d99a8a763d1f13d53822e354448eb937aee87bbc7a45c1b3af7c520/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: credit_invoice_created_from_original link_entity_id: null link_entity_type: null data: original_invoice: 2026-0001 created_at: '2026-01-08T11:39:12.252Z' updated_at: '2026-01-08T11:39:12.252Z' tax_totals: - tax_rate_id: '475688883320784009' 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. tags: - 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: '475688934344492797' administration_id: 123 contact_id: '475688934299404026' contact: id: '475688934299404026' 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 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-01-08T11:39:00.960Z' updated_at: '2026-01-08T11:39:00.960Z' version: 1767872340 sales_invoices_url: https://moneybird.dev/123/sales_invoices/5c68d29fe42775f6c4a6af30d7522906aa7859a178e50ea6865b052485e9e52d/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF760000000000000GHFJSHYQ short_payment_reference: RF76GHFJSHYQ reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:39:01.003Z' updated_at: '2026-01-08T11:39:01.387Z' public_view_code: '126997' public_view_code_expires_at: '2026-04-08T11:39:01.052Z' version: 1767872341 details: - id: '475688934347638526' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:01.006Z' updated_at: '2026-01-08T11:39:01.089Z' 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-01-08' marked_uncollectible_on: null reminder_count: 0 next_reminder: '2026-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/5c68d29fe42775f6c4a6af30d7522906aa7859a178e50ea6865b052485e9e52d/53fc860ab0a46b489dbeaf022663ca43be6fca66c4d7ea54e539c6f0c15c0ed0/sales_invoice payment_url: http://moneybird.dev/123/external/5c68d29fe42775f6c4a6af30d7522906aa7859a178e50ea6865b052485e9e52d/53fc860ab0a46b489dbeaf022663ca43be6fca66c4d7ea54e539c6f0c15c0ed0/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:01.010Z' updated_at: '2026-01-08T11:39:01.010Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:01.064Z' updated_at: '2026-01-08T11:39:01.064Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:39:01.105Z' updated_at: '2026-01-08T11:39:01.105Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_marked_as_dubious link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:01.391Z' updated_at: '2026-01-08T11:39:01.391Z' tax_totals: - tax_rate_id: '475688883320784009' 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. tags: - 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: '475688949529969831' administration_id: 123 contact_id: '475688949485929636' contact: id: '475688949485929636' 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 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-01-08T11:39:15.443Z' updated_at: '2026-01-08T11:39:15.443Z' version: 1767872355 sales_invoices_url: https://moneybird.dev/123/sales_invoices/082dc2ada6e851b972652cb4e21031512f7d4e40fd4aeb59ce9de5081041ef31/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: uncollectible invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF720000000000000QU5H3NHP short_payment_reference: RF72QU5H3NHP reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:39:15.485Z' updated_at: '2026-01-08T11:39:15.958Z' public_view_code: '400677' public_view_code_expires_at: '2026-04-08T11:39:15.534Z' version: 1767872355 details: - id: '475688949533115560' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:15.488Z' updated_at: '2026-01-08T11:39:15.956Z' 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-01-08' reminder_count: 0 next_reminder: '2026-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/082dc2ada6e851b972652cb4e21031512f7d4e40fd4aeb59ce9de5081041ef31/ef81b66584cf2a387c6bc89dc054c6b43ce695e5ccac678621f3fee8350789a2/sales_invoice payment_url: http://moneybird.dev/123/external/082dc2ada6e851b972652cb4e21031512f7d4e40fd4aeb59ce9de5081041ef31/ef81b66584cf2a387c6bc89dc054c6b43ce695e5ccac678621f3fee8350789a2/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:15.492Z' updated_at: '2026-01-08T11:39:15.492Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:15.546Z' updated_at: '2026-01-08T11:39:15.546Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:39:15.585Z' updated_at: '2026-01-08T11:39:15.585Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_uncollectible link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:15.941Z' updated_at: '2026-01-08T11:39:15.941Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_marked_as_uncollectible link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:15.961Z' updated_at: '2026-01-08T11:39:15.961Z' tax_totals: - tax_rate_id: '475688883320784009' 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. tags: - 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: '475688950993782084' administration_id: 123 contact_id: '475688950946596158' contact: id: '475688950946596158' 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 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-01-08T11:39:16.837Z' updated_at: '2026-01-08T11:39:16.837Z' version: 1767872356 sales_invoices_url: https://moneybird.dev/123/sales_invoices/74f68adf82f5e36c1d3de5162cb1e2e171896aa1ed17b19a49228b4e33859daf/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '475688950957081921' contact_person: id: null contact_id: '475688950946596158' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:39:16.846Z' updated_at: '2026-01-08T11:39:16.846Z' version: 1767872356 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF840000000000000D5TGGNE9 short_payment_reference: RF84D5TGGNE9 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: true paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:39:16.881Z' updated_at: '2026-01-08T11:39:17.008Z' public_view_code: '611708' public_view_code_expires_at: '2026-04-08T11:39:16.924Z' version: 1767872357 details: - id: '475688950995879237' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: 20260101..20260131 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-01-08T11:39:16.884Z' updated_at: '2026-01-08T11:39:16.958Z' 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/74f68adf82f5e36c1d3de5162cb1e2e171896aa1ed17b19a49228b4e33859daf/dda14c553515ee04a3aef67fc3fa532c4e88374ef28ed08fedf331eb428cd75b/sales_invoice payment_url: http://moneybird.dev/123/external/74f68adf82f5e36c1d3de5162cb1e2e171896aa1ed17b19a49228b4e33859daf/dda14c553515ee04a3aef67fc3fa532c4e88374ef28ed08fedf331eb428cd75b/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:16.887Z' updated_at: '2026-01-08T11:39:16.887Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:16.936Z' updated_at: '2026-01-08T11:39:16.936Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:39:16.974Z' updated_at: '2026-01-08T11:39:16.974Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_paused link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:17.011Z' updated_at: '2026-01-08T11:39:17.011Z' tax_totals: - tax_rate_id: '475688883320784009' 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). deprecated: true x-sunset: '2026-12-31' tags: - 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-01-08T11:39:14.946Z' price: '363.0' responses: '200': description: Sales invoice updated content: application/json: schema: type: object additionalProperties: true examples: RegistersPayments: summary: Registers payments value: id: '475688948977370229' administration_id: 123 invoice_type: SalesInvoice invoice_id: '475688948854686821' financial_account_id: null user_id: 17678722914505 payment_transaction_id: null transaction_identifier: null price: '363.0' price_base: '363.0' payment_date: '2026-01-08' credit_invoice_id: null financial_mutation_id: null ledger_account_id: '475688883268355202' linked_payment_id: null manual_payment_action: null created_at: '2026-01-08T11:39:14.959Z' updated_at: '2026-01-08T11:39:14.959Z' '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: Register a payment for a creditinvoice. Requires that the invoice is a credit invoice. tags: - 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: '475688953408652888' administration_id: 123 contact_id: '475688953226200645' contact: id: '475688953226200645' 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 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-01-08T11:39:19.010Z' updated_at: '2026-01-08T11:39:19.010Z' version: 1767872359 sales_invoices_url: https://moneybird.dev/123/sales_invoices/4a6af6643da4cd31b07b7d0376a15911859f3ddef3612e1bb198c4fc1a0398ff/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: paid invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF1200000000000009VNJG639 short_payment_reference: RF129VNJG639 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: '475688953266046536' paused: false paid_at: '2026-01-08' sent_at: '2026-01-08' created_at: '2026-01-08T11:39:19.184Z' updated_at: '2026-01-08T11:39:19.330Z' public_view_code: '674468' public_view_code_expires_at: '2026-04-08T11:39:19.232Z' version: 1767872359 details: - id: '475688953411798617' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:19.187Z' updated_at: '2026-01-08T11:39:19.270Z' - id: '475688953412847194' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:19.189Z' updated_at: '2026-01-08T11:39:19.271Z' payments: - id: '475688953549162088' administration_id: 123 invoice_type: SalesInvoice invoice_id: '475688953408652888' financial_account_id: null user_id: 17678722914505 payment_transaction_id: null transaction_identifier: null price: '-363.0' price_base: '-363.0' payment_date: '2026-01-08' credit_invoice_id: null financial_mutation_id: null ledger_account_id: '475688883268355205' linked_payment_id: null manual_payment_action: null created_at: '2026-01-08T11:39:19.319Z' updated_at: '2026-01-08T11:39:19.319Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/4a6af6643da4cd31b07b7d0376a15911859f3ddef3612e1bb198c4fc1a0398ff/28062995b86c022ec84d37c8755d0e9eedbc7493ba113ab4148590e8f602829f/sales_invoice payment_url: http://moneybird.dev/123/external/4a6af6643da4cd31b07b7d0376a15911859f3ddef3612e1bb198c4fc1a0398ff/28062995b86c022ec84d37c8755d0e9eedbc7493ba113ab4148590e8f602829f/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: credit_invoice_created_from_original link_entity_id: null link_entity_type: null data: original_invoice: 2026-0001 created_at: '2026-01-08T11:39:19.192Z' updated_at: '2026-01-08T11:39:19.192Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:19.244Z' updated_at: '2026-01-08T11:39:19.244Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:39:19.287Z' updated_at: '2026-01-08T11:39:19.287Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_paid link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:19.322Z' updated_at: '2026-01-08T11:39:19.322Z' tax_totals: - tax_rate_id: '475688883320784009' 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. tags: - 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: '475688924956591989' administration_id: 123 contact_id: '475688924905211759' contact: id: '475688924905211759' 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 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-01-08T11:38:52.001Z' updated_at: '2026-01-08T11:38:52.001Z' version: 1767872332 sales_invoices_url: https://moneybird.dev/123/sales_invoices/bf23dadd6b0c0e73dd1a05c395b7c826b3d798d45a9132aa08b0448e26d29c6e/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '475688924917794674' contact_person: id: null contact_id: '475688924905211759' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:38:52.013Z' updated_at: '2026-01-08T11:38:52.013Z' version: 1767872332 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF940000000000000F6VCYGE5 short_payment_reference: RF94F6VCYGE5 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:38:52.050Z' updated_at: '2026-01-08T11:38:52.191Z' public_view_code: '635565' public_view_code_expires_at: '2026-04-08T11:38:52.097Z' version: 1767872332 details: - id: '475688924959737718' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: 20260101..20260131 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-01-08T11:38:52.053Z' updated_at: '2026-01-08T11:38:52.131Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/bf23dadd6b0c0e73dd1a05c395b7c826b3d798d45a9132aa08b0448e26d29c6e/0fd27e5c9a5127edc8206bf2e08ccd31906f044a47cc0adb2b9aa9b0768dea8f/sales_invoice payment_url: http://moneybird.dev/123/external/bf23dadd6b0c0e73dd1a05c395b7c826b3d798d45a9132aa08b0448e26d29c6e/0fd27e5c9a5127edc8206bf2e08ccd31906f044a47cc0adb2b9aa9b0768dea8f/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:52.057Z' updated_at: '2026-01-08T11:38:52.057Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:52.108Z' updated_at: '2026-01-08T11:38:52.108Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:38:52.146Z' updated_at: '2026-01-08T11:38:52.146Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_unpaused link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:52.194Z' updated_at: '2026-01-08T11:38:52.194Z' tax_totals: - tax_rate_id: '475688883320784009' 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. When scheduling sending, set the boolean `sending_scheduled` to true and provide an `invoice_date`. tags: - 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 description: Can be `Email`, `Simplerinvoicing`, `Peppol`, `Manual` or `Post`. sending_scheduled: type: - boolean - string deliver_ubl: type: - boolean - string mergeable: type: - boolean - string email_address: type: string email_message: type: string invoice_date: type: string required: [] required: [] examples: ScheduleSending: summary: Schedule sending value: sales_invoice_sending: sending_scheduled: true invoice_date: '2026-01-09' 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 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: ScheduleSending: summary: Schedule sending value: id: '475688940034065595' administration_id: 123 contact_id: '475688939991073976' contact: id: '475688939991073976' 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 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-01-08T11:39:06.388Z' updated_at: '2026-01-08T11:39:06.388Z' version: 1767872346 sales_invoices_url: https://moneybird.dev/123/sales_invoices/53d9ac991d1ab2071bd7a1b2b7f244534363e3557658341ec3894ebbf14022e1/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: 1 state: scheduled invoice_date: '2026-01-09' due_date: '2026-01-23' 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-01-08T11:39:06.429Z' updated_at: '2026-01-08T11:39:06.499Z' public_view_code: null public_view_code_expires_at: null version: 1767872346 details: - id: '475688940036162748' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:06.431Z' updated_at: '2026-01-08T11:39:06.497Z' 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/53d9ac991d1ab2071bd7a1b2b7f244534363e3557658341ec3894ebbf14022e1/a8b443a0010a8cd7bb38f8c2642a884f5a70e51a1534fb7a3a13fff0f1c226ed/sales_invoice payment_url: http://moneybird.dev/123/external/53d9ac991d1ab2071bd7a1b2b7f244534363e3557658341ec3894ebbf14022e1/a8b443a0010a8cd7bb38f8c2642a884f5a70e51a1534fb7a3a13fff0f1c226ed/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:06.435Z' updated_at: '2026-01-08T11:39:06.435Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_scheduled link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:06.487Z' updated_at: '2026-01-08T11:39:06.487Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] SendsAnInvoiceWithAlternativeInformation: summary: Sends an invoice with alternative information value: id: '475688940532139221' administration_id: 123 contact_id: '475688940487050450' contact: id: '475688940487050450' 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 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-01-08T11:39:06.861Z' updated_at: '2026-01-08T11:39:06.861Z' version: 1767872346 sales_invoices_url: https://moneybird.dev/123/sales_invoices/d345cea52f2c8fdd44729c9c2822e7a9047661c3bde25ffa2a7b4faa25f8aca0/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF1200000000000003S7D6A5Q short_payment_reference: RF123S7D6A5Q reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:39:06.904Z' updated_at: '2026-01-08T11:39:07.004Z' public_view_code: '648395' public_view_code_expires_at: '2026-04-08T10:39:06.965Z' version: 1767872347 details: - id: '475688940535284950' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:06.907Z' updated_at: '2026-01-08T11:39:07.002Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/d345cea52f2c8fdd44729c9c2822e7a9047661c3bde25ffa2a7b4faa25f8aca0/2ed11418f11d36c5fc81fe980a9782a8495e90ab88762fb80d0222ccb15f2b18/sales_invoice payment_url: http://moneybird.dev/123/external/d345cea52f2c8fdd44729c9c2822e7a9047661c3bde25ffa2a7b4faa25f8aca0/2ed11418f11d36c5fc81fe980a9782a8495e90ab88762fb80d0222ccb15f2b18/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:06.911Z' updated_at: '2026-01-08T11:39:06.911Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:06.977Z' updated_at: '2026-01-08T11:39:06.977Z' - administration_id: 123 user_id: 17678722914505 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-01-08T11:39:07.019Z' updated_at: '2026-01-08T11:39:07.019Z' tax_totals: - tax_rate_id: '475688883320784009' 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: '475688941021824251' administration_id: 123 contact_id: '475688940984075512' contact: id: '475688940984075512' 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 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-01-08T11:39:07.335Z' updated_at: '2026-01-08T11:39:07.335Z' version: 1767872347 sales_invoices_url: https://moneybird.dev/123/sales_invoices/446037cabf18da1e465826355183fa5b80d3504d6bbaf9f3f736e8b93c4e72a9/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF570000000000000SQM5MUP4 short_payment_reference: RF57SQM5MUP4 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:39:07.371Z' updated_at: '2026-01-08T11:39:07.453Z' public_view_code: '695894' public_view_code_expires_at: '2026-04-08T10:39:07.420Z' version: 1767872347 details: - id: '475688941023921404' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:07.373Z' updated_at: '2026-01-08T11:39:07.452Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/446037cabf18da1e465826355183fa5b80d3504d6bbaf9f3f736e8b93c4e72a9/c5e7e421a936997096f37baf4fd2bfaccff72d13e6a89c412b8676dfe769f076/sales_invoice payment_url: http://moneybird.dev/123/external/446037cabf18da1e465826355183fa5b80d3504d6bbaf9f3f736e8b93c4e72a9/c5e7e421a936997096f37baf4fd2bfaccff72d13e6a89c412b8676dfe769f076/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:07.377Z' updated_at: '2026-01-08T11:39:07.377Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:07.430Z' updated_at: '2026-01-08T11:39:07.430Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:39:07.467Z' updated_at: '2026-01-08T11:39:07.467Z' tax_totals: - tax_rate_id: '475688883320784009' 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: '475688941214762256' administration_id: 123 contact_id: '475688941178062093' contact: id: '475688941178062093' 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 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-01-08T11:39:07.520Z' updated_at: '2026-01-08T11:39:07.520Z' version: 1767872347 sales_invoices_url: https://moneybird.dev/123/sales_invoices/b0724b9a705497178e5d1dda6f8455c5e3a4377d1596f63825ed25727fa14bb2/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF020000000000000KHPRTR54 short_payment_reference: RF02KHPRTR54 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:39:07.555Z' updated_at: '2026-01-08T11:39:07.640Z' public_view_code: '957617' public_view_code_expires_at: '2026-04-08T10:39:07.604Z' version: 1767872347 details: - id: '475688941216859409' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:07.558Z' updated_at: '2026-01-08T11:39:07.639Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/b0724b9a705497178e5d1dda6f8455c5e3a4377d1596f63825ed25727fa14bb2/d488869ab6449c14495dbd3fd4ac7e24ded7eea3911f223e6d46faee2703c13f/sales_invoice payment_url: http://moneybird.dev/123/external/b0724b9a705497178e5d1dda6f8455c5e3a4377d1596f63825ed25727fa14bb2/d488869ab6449c14495dbd3fd4ac7e24ded7eea3911f223e6d46faee2703c13f/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:07.561Z' updated_at: '2026-01-08T11:39:07.561Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:07.615Z' updated_at: '2026-01-08T11:39:07.615Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:39:07.655Z' updated_at: '2026-01-08T11:39:07.655Z' tax_totals: - tax_rate_id: '475688883320784009' 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: '475688941531432237' administration_id: 123 contact_id: '475688941397214498' contact: id: '475688941397214498' administration_id: 123 company_name: Foobar Holding B.V. firstname: '' lastname: '' address1: Hoofdstraat 12 address2: '' zipcode: 1234AB city: Amsterdam country: NL phone: '' delivery_method: Simplerinvoicing 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 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: '12345678' si_identifier_type: NL:KVK moneybird_payments_mandate: false created_at: '2026-01-08T11:39:07.729Z' updated_at: '2026-01-08T11:39:07.826Z' version: 1767872347 sales_invoices_url: https://moneybird.dev/123/sales_invoices/5b51a45f1f6fd2bb4cd95c2b644d59ca93095a807c966f6ac0a81b502e84fd08/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF840000000000000M29CVYYU short_payment_reference: RF84M29CVYYU reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:39:07.857Z' updated_at: '2026-01-08T11:39:08.001Z' public_view_code: '047775' public_view_code_expires_at: '2026-04-08T10:39:07.999Z' version: 1767872348 details: - id: '475688941533529390' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:07.859Z' updated_at: '2026-01-08T11:39:07.943Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/5b51a45f1f6fd2bb4cd95c2b644d59ca93095a807c966f6ac0a81b502e84fd08/3a1442794b6039fcb31da40b57d074501c6ad2727a888126dc10b8fb34aeebd7/sales_invoice payment_url: http://moneybird.dev/123/external/5b51a45f1f6fd2bb4cd95c2b644d59ca93095a807c966f6ac0a81b502e84fd08/3a1442794b6039fcb31da40b57d074501c6ad2727a888126dc10b8fb34aeebd7/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:07.862Z' updated_at: '2026-01-08T11:39:07.862Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:07.921Z' updated_at: '2026-01-08T11:39:07.921Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_send_si link_entity_id: null link_entity_type: null data: si_identifier: NL:KVK:12345678 created_at: '2026-01-08T11:39:07.959Z' updated_at: '2026-01-08T11:39:07.959Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:39:08.011Z' updated_at: '2026-01-08T11:39:08.011Z' tax_totals: - tax_rate_id: '475688883320784009' 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: 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 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 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. tags: - 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: '475688950345762044' administration_id: 123 contact_id: '475688950300673270' contact: id: '475688950300673270' 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 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-01-08T11:39:16.220Z' updated_at: '2026-01-08T11:39:16.220Z' version: 1767872356 sales_invoices_url: https://moneybird.dev/123/sales_invoices/db98971f6d5727364abb7ed9201334e7c7ecbc1e57dd44c99f7bd90d3c2eaddf/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '475688950309061881' contact_person: id: null contact_id: '475688950300673270' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:39:16.229Z' updated_at: '2026-01-08T11:39:16.229Z' version: 1767872356 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF490000000000000MQDJDPG2 short_payment_reference: RF49MQDJDPG2 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:39:16.263Z' updated_at: '2026-01-08T11:39:16.344Z' public_view_code: '190656' public_view_code_expires_at: '2026-04-08T11:39:16.307Z' version: 1767872356 details: - id: '475688950347859197' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: 20260101..20260131 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-01-08T11:39:16.265Z' updated_at: '2026-01-08T11:39:16.343Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/db98971f6d5727364abb7ed9201334e7c7ecbc1e57dd44c99f7bd90d3c2eaddf/03fea95168fb2f2e585cbe3a881b8949cb040af0ae9d3cc736d69ec234334a9d/sales_invoice payment_url: http://moneybird.dev/123/external/db98971f6d5727364abb7ed9201334e7c7ecbc1e57dd44c99f7bd90d3c2eaddf/03fea95168fb2f2e585cbe3a881b8949cb040af0ae9d3cc736d69ec234334a9d/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:16.269Z' updated_at: '2026-01-08T11:39:16.269Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:16.320Z' updated_at: '2026-01-08T11:39:16.320Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:39:16.359Z' updated_at: '2026-01-08T11:39:16.359Z' tax_totals: - tax_rate_id: '475688883320784009' 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. tags: - 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 original_estimate_id: $ref: '#/components/schemas/identifier' 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 invoice_sequence_id: type: string remove_invoice_sequence_id: type: - boolean - string invoice_date: type: string first_due_interval: type: integer currency: type: string description: ISO three-character currency code, e.g. EUR or USD. prices_are_incl_tax: type: - boolean - string payment_conditions: type: string discount: $ref: '#/components/schemas/number' description: Discount percentage, e.g. 10,0%. time_entry_ids: type: array items: $ref: '#/components/schemas/identifier' details_attributes: $ref: '#/components/schemas/details_attributes' custom_fields_attributes: $ref: '#/components/schemas/custom_fields_attributes' required: [] required: [] examples: AddingAndRemovingASalesInvoiceDetail: summary: Adding and removing a sales invoice detail value: sales_invoice: details_attributes: - description: Sofa price: 199.99 - id: 475688935675135900 _destroy: true UpdatingTheSalesInvoiceReference: summary: Updating the sales invoice reference value: sales_invoice: reference: '30053' responses: '200': description: Sales invoice updated content: application/json: schema: $ref: '#/components/schemas/sales_invoice_response' examples: AddingAndRemovingASalesInvoiceDetail: summary: Adding and removing a sales invoice detail value: id: '475688935671990136' administration_id: 123 contact_id: '475688935630047093' contact: id: '475688935630047093' 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 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-01-08T11:39:02.229Z' updated_at: '2026-01-08T11:39:02.229Z' version: 1767872342 sales_invoices_url: https://moneybird.dev/123/sales_invoices/c64cb9ca0984f96ebc4122e14d7aff163d8dec1c33a59757545db793852e3419/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF850000000000000QG7KKFQC short_payment_reference: RF85QG7KKFQC reference: '30052' language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:39:02.269Z' updated_at: '2026-01-08T11:39:02.437Z' public_view_code: '240492' public_view_code_expires_at: '2026-04-08T11:39:02.316Z' version: 1767872342 details: - id: '475688935846053768' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:02.435Z' updated_at: '2026-01-08T11:39:02.435Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/c64cb9ca0984f96ebc4122e14d7aff163d8dec1c33a59757545db793852e3419/36913a143d39c6ef2542e0d5b3c32a20356664b319a40ce6f4e81da5cd2e5992/sales_invoice payment_url: http://moneybird.dev/123/external/c64cb9ca0984f96ebc4122e14d7aff163d8dec1c33a59757545db793852e3419/36913a143d39c6ef2542e0d5b3c32a20356664b319a40ce6f4e81da5cd2e5992/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:02.275Z' updated_at: '2026-01-08T11:39:02.275Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:02.329Z' updated_at: '2026-01-08T11:39:02.329Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:39:02.368Z' updated_at: '2026-01-08T11:39:02.368Z' - administration_id: 123 user_id: 17678722914505 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: '475688883320784009' report_reference: NL/1a - - tax_rate_id: '475688883320784009' report_reference: NL/1a payable: true debit: 0 credit: '42.0' updated_at: - '2026-01-08T12:39:02.353+01:00' - '2026-01-08T12:39:02.429+01:00' created_at: '2026-01-08T11:39:02.438Z' updated_at: '2026-01-08T11:39:02.438Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '199.99' taxable_amount_base: '199.99' tax_amount: '42.0' tax_amount_base: '42.0' time_entries: [] UpdatingTheSalesInvoiceReference: summary: Updating the sales invoice reference value: id: '475688936204666806' administration_id: 123 contact_id: '475688936160626611' contact: id: '475688936160626611' 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 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-01-08T11:39:02.735Z' updated_at: '2026-01-08T11:39:02.735Z' version: 1767872342 sales_invoices_url: https://moneybird.dev/123/sales_invoices/ccedefb024ab9d6cf949ea136bf36461d94ac12ffb1a89ccf197fbe3b50e3f6f/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF540000000000000F9D53DAR short_payment_reference: RF54F9D53DAR reference: '30053' language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:39:02.777Z' updated_at: '2026-01-08T11:39:02.915Z' public_view_code: '950589' public_view_code_expires_at: '2026-04-08T11:39:02.822Z' version: 1767872342 details: - id: '475688936206763959' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:02.780Z' updated_at: '2026-01-08T11:39:02.857Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/ccedefb024ab9d6cf949ea136bf36461d94ac12ffb1a89ccf197fbe3b50e3f6f/3b33d7f36e33a0c38abc8198cd064787c56b09f134dd54237f7c595b11b97c41/sales_invoice payment_url: http://moneybird.dev/123/external/ccedefb024ab9d6cf949ea136bf36461d94ac12ffb1a89ccf197fbe3b50e3f6f/3b33d7f36e33a0c38abc8198cd064787c56b09f134dd54237f7c595b11b97c41/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:02.783Z' updated_at: '2026-01-08T11:39:02.783Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:02.834Z' updated_at: '2026-01-08T11:39:02.834Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:39:02.872Z' updated_at: '2026-01-08T11:39:02.872Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_updated link_entity_id: null link_entity_type: null data: changes: reference: - '30052' - '30053' updated_at: - '2026-01-08T12:39:02.858+01:00' - '2026-01-08T12:39:02.915+01:00' created_at: '2026-01-08T11:39:02.918Z' updated_at: '2026-01-08T11:39:02.918Z' tax_totals: - tax_rate_id: '475688883320784009' 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' '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. tags: - 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. tags: - 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. tags: - 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. tags: - 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. tags: - 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: 475688952566646300 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '475688952587617783' administration_id: 123 entity_id: '475688952436622821' entity_type: SalesInvoice user_id: 17678722914505 assignee_id: '475688952566646261' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-01-08T11:39:18.402Z' updated_at: '2026-01-08T11:39:18.402Z' '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. tags: - 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. tags: - 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 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-01-08T11:39:17.707Z' 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: '475688951871440300' administration_id: 123 invoice_type: SalesInvoice invoice_id: '475688951755048348' financial_account_id: null user_id: 17678722914505 payment_transaction_id: null transaction_identifier: null price: '363.0' price_base: '363.0' payment_date: '2026-01-08' credit_invoice_id: null financial_mutation_id: null ledger_account_id: '475688883268355202' linked_payment_id: null manual_payment_action: null created_at: '2026-01-08T11:39:17.719Z' updated_at: '2026-01-08T11:39:17.719Z' '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 all sales invoices in the administration. The `filter` argument allows you to filter the list of invoices. Filters are a combination of keys and values, separated by a comma: `period:this_year,state:all`. The available options for filtering are: | **Filter** | **Type** | **Default** | **Description** | | - | - | - | - | | state | `String` | `all` | `all`, `draft`, `open`, `scheduled`, `pending_payment`, `late`, `reminded`, `paid` or `uncollectible` | | period | `String` | `this_year` | This can either be the description of a period (`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 as well. To do this, separate the state values by a pipe: `state:draft|scheduled`. This also holds for the reference. tags: - Sales invoices parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string examples: ReturnsAllSalesInvoicesCreatedAfterGivenDatetime: summary: Returns all sales invoices created after given datetime value: created_after:2026-01-07 11:38:52 UTC ReturnsAllInvoicesFilteredOnState: summary: Returns all invoices filtered on state value: state:late ReturnsAllInvoicesFilteredOnPeriod: summary: Returns all invoices filtered on period value: period:this_month ReturnsOnlySalesInvoicesUpdatedAfterGivenDatetime: summary: Returns only sales invoices updated after given datetime value: updated_after:2026-01-08 11:39:03 UTC - $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: ReturnsAllSalesInvoicesCreatedAfterGivenDatetime: summary: Returns all sales invoices created after given datetime value: - id: '475688925706323909' administration_id: 123 contact_id: '475688925396993952' contact: id: '475688925396993952' 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 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-01-08T11:38:52.470Z' updated_at: '2026-01-08T11:38:52.470Z' version: 1767872332 sales_invoices_url: https://moneybird.dev/123/sales_invoices/41a8b3ba3e2b5f669eedd98247e7392843b24c4c559a0cceb1c22ee3472e0060/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF890000000000000KYGDTDZ5 short_payment_reference: RF89KYGDTDZ5 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:38:52.765Z' updated_at: '2026-01-08T11:38:52.835Z' public_view_code: '531089' public_view_code_expires_at: '2026-04-08T11:38:52.804Z' version: 1767872332 details: - id: '475688925709469638' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:52.768Z' updated_at: '2026-01-08T11:38:52.834Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/41a8b3ba3e2b5f669eedd98247e7392843b24c4c559a0cceb1c22ee3472e0060/6205dba20c6bee46c21580016dc126bcb6b289dfb5b7939c6bdcd0d3bfdc8bea/sales_invoice payment_url: http://moneybird.dev/123/external/41a8b3ba3e2b5f669eedd98247e7392843b24c4c559a0cceb1c22ee3472e0060/6205dba20c6bee46c21580016dc126bcb6b289dfb5b7939c6bdcd0d3bfdc8bea/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:52.771Z' updated_at: '2026-01-08T11:38:52.771Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:52.815Z' updated_at: '2026-01-08T11:38:52.815Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:38:52.872Z' updated_at: '2026-01-08T11:38:52.872Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] - id: '475688925582591926' administration_id: 123 contact_id: '475688925396993952' contact: id: '475688925396993952' 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 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-01-08T11:38:52.470Z' updated_at: '2026-01-08T11:38:52.470Z' version: 1767872332 sales_invoices_url: https://moneybird.dev/123/sales_invoices/41a8b3ba3e2b5f669eedd98247e7392843b24c4c559a0cceb1c22ee3472e0060/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF71000000000000054XGPVJR short_payment_reference: RF7154XGPVJR reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:38:52.647Z' updated_at: '2026-01-08T11:38:52.715Z' public_view_code: '094105' public_view_code_expires_at: '2026-04-08T11:38:52.685Z' version: 1767872332 details: - id: '475688925584689079' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:52.650Z' updated_at: '2026-01-08T11:38:52.714Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/41a8b3ba3e2b5f669eedd98247e7392843b24c4c559a0cceb1c22ee3472e0060/f3ef6dd8c08891e6de193c33535fa535ec73f95941651eacc8298aa198f92ddf/sales_invoice payment_url: http://moneybird.dev/123/external/41a8b3ba3e2b5f669eedd98247e7392843b24c4c559a0cceb1c22ee3472e0060/f3ef6dd8c08891e6de193c33535fa535ec73f95941651eacc8298aa198f92ddf/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:52.695Z' updated_at: '2026-01-08T11:38:52.695Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:52.653Z' updated_at: '2026-01-08T11:38:52.653Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:38:52.728Z' updated_at: '2026-01-08T11:38:52.728Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] - id: '475688925448374182' administration_id: 123 contact_id: '475688925396993952' contact: id: '475688925396993952' 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 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-01-08T11:38:52.470Z' updated_at: '2026-01-08T11:38:52.470Z' version: 1767872332 sales_invoices_url: https://moneybird.dev/123/sales_invoices/41a8b3ba3e2b5f669eedd98247e7392843b24c4c559a0cceb1c22ee3472e0060/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '475688925410625443' contact_person: id: null contact_id: '475688925396993952' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:38:52.483Z' updated_at: '2026-01-08T11:38:52.483Z' version: 1767872332 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF6100000000000003KQYXZAK short_payment_reference: RF613KQYXZAK reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:38:52.519Z' updated_at: '2026-01-08T11:38:52.595Z' public_view_code: '494727' public_view_code_expires_at: '2026-04-08T11:38:52.562Z' version: 1767872332 details: - id: '475688925450471335' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: 20260101..20260131 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-01-08T11:38:52.521Z' updated_at: '2026-01-08T11:38:52.594Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/41a8b3ba3e2b5f669eedd98247e7392843b24c4c559a0cceb1c22ee3472e0060/eaea74ea9c9f0284bccb6f9741f379e480b34fcd1a8dbfb0a2fb4f1dbfa79d42/sales_invoice payment_url: http://moneybird.dev/123/external/41a8b3ba3e2b5f669eedd98247e7392843b24c4c559a0cceb1c22ee3472e0060/eaea74ea9c9f0284bccb6f9741f379e480b34fcd1a8dbfb0a2fb4f1dbfa79d42/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:52.524Z' updated_at: '2026-01-08T11:38:52.524Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:52.573Z' updated_at: '2026-01-08T11:38:52.573Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:38:52.609Z' updated_at: '2026-01-08T11:38:52.609Z' tax_totals: - tax_rate_id: '475688883320784009' 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: '475688926309255163' administration_id: 123 contact_id: '475688925955885014' contact: id: '475688925955885014' 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 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-01-08T11:38:53.003Z' updated_at: '2026-01-08T11:38:53.003Z' version: 1767872333 sales_invoices_url: https://moneybird.dev/123/sales_invoices/6bb22b00d95d45842133e116b94a87e29b419f1cb6d91c825c9f6d90a78b0a59/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF580000000000000JVKWXK9R short_payment_reference: RF58JVKWXK9R reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:38:53.340Z' updated_at: '2026-01-08T11:38:53.421Z' public_view_code: '556469' public_view_code_expires_at: '2026-04-08T11:38:53.385Z' version: 1767872333 details: - id: '475688926311352316' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:53.342Z' updated_at: '2026-01-08T11:38:53.420Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/6bb22b00d95d45842133e116b94a87e29b419f1cb6d91c825c9f6d90a78b0a59/d08e1366787e58b2d233da31f56ace8bec738008a397c6d7eca294daa6e0ea61/sales_invoice payment_url: http://moneybird.dev/123/external/6bb22b00d95d45842133e116b94a87e29b419f1cb6d91c825c9f6d90a78b0a59/d08e1366787e58b2d233da31f56ace8bec738008a397c6d7eca294daa6e0ea61/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:53.346Z' updated_at: '2026-01-08T11:38:53.346Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:53.398Z' updated_at: '2026-01-08T11:38:53.398Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:38:53.435Z' updated_at: '2026-01-08T11:38:53.435Z' tax_totals: - tax_rate_id: '475688883320784009' 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: [] ReturnsAllInvoicesOfAnAdministration: summary: Returns all invoices of an administration value: - id: '475688927840175261' administration_id: 123 contact_id: '475688927514068088' contact: id: '475688927514068088' 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 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-01-08T11:38:54.489Z' updated_at: '2026-01-08T11:38:54.489Z' version: 1767872334 sales_invoices_url: https://moneybird.dev/123/sales_invoices/c1fd2bfb1a3fdd7edabf34244dc2e46ff475bd263d7f4d66ad5f6f4667a17665/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF600000000000000J3XFKAAC short_payment_reference: RF60J3XFKAAC reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:38:54.800Z' updated_at: '2026-01-08T11:38:54.877Z' public_view_code: '271402' public_view_code_expires_at: '2026-04-08T11:38:54.843Z' version: 1767872334 details: - id: '475688927843320990' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:54.803Z' updated_at: '2026-01-08T11:38:54.876Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/c1fd2bfb1a3fdd7edabf34244dc2e46ff475bd263d7f4d66ad5f6f4667a17665/06848076b6b3d15e1b1a02c32159f81808901f16b18540972041f9f88e1652f0/sales_invoice payment_url: http://moneybird.dev/123/external/c1fd2bfb1a3fdd7edabf34244dc2e46ff475bd263d7f4d66ad5f6f4667a17665/06848076b6b3d15e1b1a02c32159f81808901f16b18540972041f9f88e1652f0/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:54.806Z' updated_at: '2026-01-08T11:38:54.806Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:54.855Z' updated_at: '2026-01-08T11:38:54.855Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:38:54.891Z' updated_at: '2026-01-08T11:38:54.891Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] - id: '475688927710151822' administration_id: 123 contact_id: '475688927514068088' contact: id: '475688927514068088' 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 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-01-08T11:38:54.489Z' updated_at: '2026-01-08T11:38:54.489Z' version: 1767872334 sales_invoices_url: https://moneybird.dev/123/sales_invoices/c1fd2bfb1a3fdd7edabf34244dc2e46ff475bd263d7f4d66ad5f6f4667a17665/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF620000000000000YMY2WSM2 short_payment_reference: RF62YMY2WSM2 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:38:54.676Z' updated_at: '2026-01-08T11:38:54.748Z' public_view_code: '772370' public_view_code_expires_at: '2026-04-08T11:38:54.716Z' version: 1767872334 details: - id: '475688927712248975' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:54.679Z' updated_at: '2026-01-08T11:38:54.747Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/c1fd2bfb1a3fdd7edabf34244dc2e46ff475bd263d7f4d66ad5f6f4667a17665/a965ec74c40321c944e4dcb7837207f20423fd349e2f857a72390e540356007f/sales_invoice payment_url: http://moneybird.dev/123/external/c1fd2bfb1a3fdd7edabf34244dc2e46ff475bd263d7f4d66ad5f6f4667a17665/a965ec74c40321c944e4dcb7837207f20423fd349e2f857a72390e540356007f/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:54.683Z' updated_at: '2026-01-08T11:38:54.683Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:54.727Z' updated_at: '2026-01-08T11:38:54.727Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:38:54.761Z' updated_at: '2026-01-08T11:38:54.761Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] - id: '475688927567545470' administration_id: 123 contact_id: '475688927514068088' contact: id: '475688927514068088' 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 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-01-08T11:38:54.489Z' updated_at: '2026-01-08T11:38:54.489Z' version: 1767872334 sales_invoices_url: https://moneybird.dev/123/sales_invoices/c1fd2bfb1a3fdd7edabf34244dc2e46ff475bd263d7f4d66ad5f6f4667a17665/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '475688927526651003' contact_person: id: null contact_id: '475688927514068088' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:38:54.501Z' updated_at: '2026-01-08T11:38:54.501Z' version: 1767872334 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF810000000000000CJJ3756W short_payment_reference: RF81CJJ3756W reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:38:54.540Z' updated_at: '2026-01-08T11:38:54.622Z' public_view_code: '582519' public_view_code_expires_at: '2026-04-08T11:38:54.586Z' version: 1767872334 details: - id: '475688927569642623' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: 20260101..20260131 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-01-08T11:38:54.542Z' updated_at: '2026-01-08T11:38:54.621Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/c1fd2bfb1a3fdd7edabf34244dc2e46ff475bd263d7f4d66ad5f6f4667a17665/80207cf504a1958de5f1b1d320ee96174bafd2ab9e2e7c6a8472475839c2d724/sales_invoice payment_url: http://moneybird.dev/123/external/c1fd2bfb1a3fdd7edabf34244dc2e46ff475bd263d7f4d66ad5f6f4667a17665/80207cf504a1958de5f1b1d320ee96174bafd2ab9e2e7c6a8472475839c2d724/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:54.546Z' updated_at: '2026-01-08T11:38:54.546Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:54.597Z' updated_at: '2026-01-08T11:38:54.597Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:38:54.636Z' updated_at: '2026-01-08T11:38:54.636Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] ReturnsPaginatedSalesInvoicesOnPage2: summary: Returns paginated sales invoices on page 2 value: - id: '475688930705933724' administration_id: 123 contact_id: '475688930506704262' contact: id: '475688930506704262' 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 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-01-08T11:38:57.343Z' updated_at: '2026-01-08T11:38:57.343Z' version: 1767872337 sales_invoices_url: https://moneybird.dev/123/sales_invoices/e308213c2809773e05c4e2e64ee260d8691940cb579248d34ee4320c20129905/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF390000000000000R45QUTU7 short_payment_reference: RF39R45QUTU7 reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:38:57.533Z' updated_at: '2026-01-08T11:38:57.604Z' public_view_code: '975687' public_view_code_expires_at: '2026-04-08T11:38:57.572Z' version: 1767872337 details: - id: '475688930708030877' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:57.535Z' updated_at: '2026-01-08T11:38:57.603Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/e308213c2809773e05c4e2e64ee260d8691940cb579248d34ee4320c20129905/0a820336dffc28247ff20c6221db761677d5c76f878c6e22254c82c25418bf17/sales_invoice payment_url: http://moneybird.dev/123/external/e308213c2809773e05c4e2e64ee260d8691940cb579248d34ee4320c20129905/0a820336dffc28247ff20c6221db761677d5c76f878c6e22254c82c25418bf17/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:57.538Z' updated_at: '2026-01-08T11:38:57.538Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:57.583Z' updated_at: '2026-01-08T11:38:57.583Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:38:57.618Z' updated_at: '2026-01-08T11:38:57.618Z' tax_totals: - tax_rate_id: '475688883320784009' 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: '475688931408479713' administration_id: 123 contact_id: '475688931047769532' contact: id: '475688931047769532' 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 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-01-08T11:38:57.859Z' updated_at: '2026-01-08T11:38:57.859Z' version: 1767872337 sales_invoices_url: https://moneybird.dev/123/sales_invoices/8721467ed9b2a8b05dc6261bf2043870506a26b360e84999fed312d189d607b6/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF570000000000000XQR7V2MZ short_payment_reference: RF57XQR7V2MZ reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:38:58.203Z' updated_at: '2026-01-08T11:38:58.284Z' public_view_code: '215838' public_view_code_expires_at: '2026-04-08T11:38:58.248Z' version: 1767872338 details: - id: '475688931411625442' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:58.206Z' updated_at: '2026-01-08T11:38:58.283Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/8721467ed9b2a8b05dc6261bf2043870506a26b360e84999fed312d189d607b6/1d11974b5fe8551dba6c5251c469db6ee20e7578131a3eda88a3e6546b6423fe/sales_invoice payment_url: http://moneybird.dev/123/external/8721467ed9b2a8b05dc6261bf2043870506a26b360e84999fed312d189d607b6/1d11974b5fe8551dba6c5251c469db6ee20e7578131a3eda88a3e6546b6423fe/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:58.210Z' updated_at: '2026-01-08T11:38:58.210Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:58.261Z' updated_at: '2026-01-08T11:38:58.261Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:38:58.299Z' updated_at: '2026-01-08T11:38:58.299Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] - id: '475688931262727634' administration_id: 123 contact_id: '475688931047769532' contact: id: '475688931047769532' 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 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-01-08T11:38:57.859Z' updated_at: '2026-01-08T11:38:57.859Z' version: 1767872337 sales_invoices_url: https://moneybird.dev/123/sales_invoices/8721467ed9b2a8b05dc6261bf2043870506a26b360e84999fed312d189d607b6/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF560000000000000AEDFPQSX short_payment_reference: RF56AEDFPQSX reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:38:58.063Z' updated_at: '2026-01-08T11:38:58.146Z' public_view_code: '181415' public_view_code_expires_at: '2026-04-08T11:38:58.110Z' version: 1767872338 details: - id: '475688931264824787' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:38:58.067Z' updated_at: '2026-01-08T11:38:58.144Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/8721467ed9b2a8b05dc6261bf2043870506a26b360e84999fed312d189d607b6/05fe6411859f2258038eb24baf3dd1186bc28cc1292e7b63b59712802892fce7/sales_invoice payment_url: http://moneybird.dev/123/external/8721467ed9b2a8b05dc6261bf2043870506a26b360e84999fed312d189d607b6/05fe6411859f2258038eb24baf3dd1186bc28cc1292e7b63b59712802892fce7/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:58.071Z' updated_at: '2026-01-08T11:38:58.071Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:58.122Z' updated_at: '2026-01-08T11:38:58.122Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:38:58.160Z' updated_at: '2026-01-08T11:38:58.160Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] - id: '475688931103344066' administration_id: 123 contact_id: '475688931047769532' contact: id: '475688931047769532' 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 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-01-08T11:38:57.859Z' updated_at: '2026-01-08T11:38:57.859Z' version: 1767872337 sales_invoices_url: https://moneybird.dev/123/sales_invoices/8721467ed9b2a8b05dc6261bf2043870506a26b360e84999fed312d189d607b6/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '475688931062449599' contact_person: id: null contact_id: '475688931047769532' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:38:57.873Z' updated_at: '2026-01-08T11:38:57.873Z' version: 1767872337 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF160000000000000HHTW3K2Q short_payment_reference: RF16HHTW3K2Q reference: Project X language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:38:57.912Z' updated_at: '2026-01-08T11:38:58.000Z' public_view_code: '254215' public_view_code_expires_at: '2026-04-08T11:38:57.962Z' version: 1767872338 details: - id: '475688931106489795' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: 20260101..20260131 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-01-08T11:38:57.915Z' updated_at: '2026-01-08T11:38:57.999Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/8721467ed9b2a8b05dc6261bf2043870506a26b360e84999fed312d189d607b6/474f96abdf3b48cc2a8d1256362bea8a24283aab21e6c417b54ebf1c98d6cb05/sales_invoice payment_url: http://moneybird.dev/123/external/8721467ed9b2a8b05dc6261bf2043870506a26b360e84999fed312d189d607b6/474f96abdf3b48cc2a8d1256362bea8a24283aab21e6c417b54ebf1c98d6cb05/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:57.918Z' updated_at: '2026-01-08T11:38:57.918Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:57.974Z' updated_at: '2026-01-08T11:38:57.974Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:38:58.017Z' updated_at: '2026-01-08T11:38:58.017Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '300.0' taxable_amount_base: '300.0' tax_amount: '63.0' tax_amount_base: '63.0' time_entries: [] ReturnsOnlySalesInvoicesUpdatedAfterGivenDatetime: summary: Returns only sales invoices updated after given datetime value: - id: '475688931707323896' administration_id: 123 contact_id: '475688931652797938' contact: id: '475688931652797938' 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 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-01-08T11:38:58.436Z' updated_at: '2026-01-08T11:38:58.436Z' version: 1767872338 sales_invoices_url: https://moneybird.dev/123/sales_invoices/49c30ab9af207d473cc16e25d2b9e5b371256b2816d6fd531375bebc691da0e8/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: '475688931667478005' contact_person: id: null contact_id: '475688931652797938' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:38:58.450Z' updated_at: '2026-01-08T11:38:58.450Z' version: 1767872338 invoice_id: 2026-0001 recurring_sales_invoice_id: null subscription_id: null workflow_id: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: null state: open invoice_date: '2026-01-08' due_date: '2026-01-22' 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: RF470000000000000SAHNUD2R short_payment_reference: RF47SAHNUD2R reference: foo language: nl currency: EUR discount: '0.0' original_sales_invoice_id: null paused: false paid_at: null sent_at: '2026-01-08' created_at: '2026-01-08T11:38:58.488Z' updated_at: '2026-01-08T11:40:03.860Z' public_view_code: '573760' public_view_code_expires_at: '2026-04-08T11:38:58.534Z' version: 1767872403 details: - id: '475688931710469625' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' project_id: null product_id: null amount: 1 x amount_decimal: '1.0' description: Project X price: '300.0' period: 20260101..20260131 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-01-08T11:38:58.491Z' updated_at: '2026-01-08T11:38:58.568Z' 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-01-22' original_estimate_id: null url: http://moneybird.dev/123/external/49c30ab9af207d473cc16e25d2b9e5b371256b2816d6fd531375bebc691da0e8/e9ede7bb57805fb7a0c7a34c8c2e9f778708b551570a8af11a6ed217dbf7efd1/sales_invoice payment_url: http://moneybird.dev/123/external/49c30ab9af207d473cc16e25d2b9e5b371256b2816d6fd531375bebc691da0e8/e9ede7bb57805fb7a0c7a34c8c2e9f778708b551570a8af11a6ed217dbf7efd1/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:58.494Z' updated_at: '2026-01-08T11:38:58.494Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_open link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:38:58.546Z' updated_at: '2026-01-08T11:38:58.546Z' - administration_id: 123 user_id: 17678722914505 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 22-01-2026 te voldoen. Met vriendelijke groet, Parkietje B.V. created_at: '2026-01-08T11:38:58.583Z' updated_at: '2026-01-08T11:38:58.583Z' tax_totals: - tax_rate_id: '475688883320784009' 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: GiveA400ErrorWhenTheDateRangeIsUntilTheEndOfTime: summary: Give a 400 error when the date range is until the end of time value: error: Period is invalid symbolic: filter: period: date_range GiveA400ErrorWhenTheDateRangeIsFromTheBeginningOfTime: summary: Give a 400 error when the date range is from the beginning of time value: error: Period is invalid symbolic: filter: period: date_range ReturnsAnErrorWhenTooManySalesInvoicesAreRequested: summary: Returns an error when too many 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_sales_invoices post: summary: Create a sales invoice description: Create a sales invoice with the parameters defined in the request body. tags: - 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' 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 invoice_sequence_id: type: string invoice_date: type: string first_due_interval: type: integer currency: type: string description: ISO three-character currency code, e.g. EUR or USD. prices_are_incl_tax: type: - boolean - string payment_conditions: type: string discount: $ref: '#/components/schemas/number' description: Discount percentage, e.g. 10,0%. time_entry_ids: type: array 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 required: [] examples: CreateASalesInvoiceInAForeignCurrency: summary: Create a sales invoice in a foreign currency value: sales_invoice: reference: '30052' contact_id: 475688946584520600 currency: USD details_attributes: - description: Rocking Chair price: 159.99 tax_rate_id: 475688946752292740 CreateABasicSalesInvoice: summary: Create a basic sales invoice value: sales_invoice: reference: '30052' contact_id: 475688947325863900 details_attributes: - description: Rocking Chair price: 129.95 responses: '201': description: Sales invoice created content: application/json: schema: $ref: '#/components/schemas/sales_invoice_response' examples: CreateASalesInvoiceInAForeignCurrency: summary: Create a sales invoice in a foreign currency value: id: '475688946790041471' administration_id: 123 contact_id: '475688946584520552' contact: id: '475688946584520552' 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 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-01-08T11:39:12.676Z' updated_at: '2026-01-08T11:39:12.676Z' version: 1767872352 sales_invoices_url: https://moneybird.dev/123/sales_invoices/77eb0d0f5c1e6f79c868b3cda55f30f32af406c1797495b1db3d127a1c2b3bf1/all notes: [] custom_fields: [] contact_people: - id: '475688946595006315' contact_id: '475688946584520552' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:39:12.686Z' updated_at: '2026-01-08T11:39:12.686Z' version: 1767872352 archived: false contact_person_id: null contact_person: null invoice_id: null recurring_sales_invoice_id: null subscription_id: null workflow_id: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: 2 state: draft invoice_date: null due_date: '2026-01-22' 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-01-08T11:39:12.872Z' updated_at: '2026-01-08T11:39:12.877Z' public_view_code: null public_view_code_expires_at: null version: 1767872352 details: - id: '475688946793187200' administration_id: 123 tax_rate_id: '475688946752292734' ledger_account_id: '475688883240043641' 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-01-08T11:39:12.875Z' updated_at: '2026-01-08T11:39:12.875Z' 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/77eb0d0f5c1e6f79c868b3cda55f30f32af406c1797495b1db3d127a1c2b3bf1/ed1d1bab652cafcfccf8beefbf689baba52770bfaf639a89398891e591af7b01/sales_invoice payment_url: http://moneybird.dev/123/external/77eb0d0f5c1e6f79c868b3cda55f30f32af406c1797495b1db3d127a1c2b3bf1/ed1d1bab652cafcfccf8beefbf689baba52770bfaf639a89398891e591af7b01/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:12.878Z' updated_at: '2026-01-08T11:39:12.878Z' tax_totals: [] time_entries: [] CreateABasicSalesInvoice: summary: Create a basic sales invoice value: id: '475688947514607568' administration_id: 123 contact_id: '475688947325863866' contact: id: '475688947325863866' 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 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-01-08T11:39:13.384Z' updated_at: '2026-01-08T11:39:13.384Z' version: 1767872353 sales_invoices_url: https://moneybird.dev/123/sales_invoices/05647badb72bd774f1ab8676548c84cebd004661d7154e592a7d1186a2e2267e/all notes: [] custom_fields: [] contact_people: - id: '475688947335301053' contact_id: '475688947325863866' administration_id: 123 firstname: Jan lastname: Janssen phone: 123-456-2346 email: janjanssen@dev.null.moneybird.net department: Sales created_at: '2026-01-08T11:39:13.392Z' updated_at: '2026-01-08T11:39:13.392Z' version: 1767872353 archived: false contact_person_id: null contact_person: null invoice_id: null recurring_sales_invoice_id: null subscription_id: null workflow_id: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: 2 state: draft invoice_date: null due_date: '2026-01-22' 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-01-08T11:39:13.563Z' updated_at: '2026-01-08T11:39:13.567Z' public_view_code: null public_view_code_expires_at: null version: 1767872353 details: - id: '475688947517753297' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:13.566Z' updated_at: '2026-01-08T11:39:13.566Z' 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/05647badb72bd774f1ab8676548c84cebd004661d7154e592a7d1186a2e2267e/093efb8e39784259dd5287d6cebfd2899ccaba7791598cac794777e3ad7fa162/sales_invoice payment_url: http://moneybird.dev/123/external/05647badb72bd774f1ab8676548c84cebd004661d7154e592a7d1186a2e2267e/093efb8e39784259dd5287d6cebfd2899ccaba7791598cac794777e3ad7fa162/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:13.569Z' updated_at: '2026-01-08T11:39:13.569Z' tax_totals: - tax_rate_id: '475688883320784009' taxable_amount: '129.95' taxable_amount_base: '129.95' tax_amount: '27.29' tax_amount_base: '27.29' 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. tags: - Purchase transactions 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 financial account that will be linked to all the purchase transactions in the file, 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: '475689101028231144' administration_id: 123 financial_account_id: '475689100939102175' state: open identifier: PMT20250910-STD created_at: '2025-09-12T00:00:00.000Z' updated_at: '2025-09-12T00:00:00.000Z' - id: '475689101031376874' administration_id: 123 financial_account_id: '475689100949587938' state: open identifier: PMT20250910-INST created_at: '2025-09-12T00:00:00.000Z' updated_at: '2025-09-12T00:00:00.000Z' - id: '475689101035571180' administration_id: 123 financial_account_id: '475689100959025125' 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: '475689101150914552' administration_id: 123 financial_account_id: '475689101065979887' state: open identifier: PMT20250910-STD created_at: '2025-09-12T00:00:00.000Z' updated_at: '2025-09-12T00:00:00.000Z' - id: '475689101155108858' administration_id: 123 financial_account_id: '475689101075417074' state: open identifier: PMT20250910-INST created_at: '2025-09-12T00:00:00.000Z' updated_at: '2025-09-12T00:00:00.000Z' - id: '475689101158254588' administration_id: 123 financial_account_id: '475689101084854261' 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: Returns403WhenFeatureFlagIsDisabled: summary: Returns 403 when feature flag is disabled value: error: This feature is not active for this administration '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' Returns404WhenNoFinancialAccountIsFound: summary: Returns 404 when no financial account is found value: error: 'Record not found for model name: Financial account' CreatesAnImportWithGivenIds: summary: Creates an import with given ids 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: 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 ).' 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 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. deprecated: true x-sunset: '2025-12-31' tags: - Subscription templates 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: '475688964085253677' - name: start_date in: query required: false schema: type: string format: date examples: CreatesAnOnlineSalesLinkIfNoContactIdIsProvided: summary: Creates an online sales link if no contact id is provided value: '2026-01-08' - name: product_id in: query required: false schema: $ref: '#/components/schemas/identifier' examples: CreatesAnOnlineSalesLinkForAProduct: summary: Creates an online sales link for a product value: '475688964007659036' responses: '200': description: A subscription template content: application/json: schema: type: string examples: CreatesAnOnlineSalesLinkIfNoContactIdIsProvided: summary: Creates an online sales link if no contact id is provided value: http://checkout.moneybird.dev/s/SWRPTUVHRmVUaE5nL2hPaTZyR2xJWHJ6MVNrN20zZjFGY0RhNkxiMWN0RWhZdWJqNERpRHFGaTIyUE1qRjVIbmJnQ2JGQT09LS1GV0JITlEvY21ZZy85blBhLS1OenZiZnFvQWplcHl0K2xtTlBONDNnPT0= CreatesAnOnlineSalesLinkForAProduct: summary: Creates an online sales link for a product value: http://checkout.moneybird.dev/stp/SDZ3M0JwOU5sYnpRaXFnZ2RjSE1lTzZGV1FLT3oxLzVxaGkvZG52eHEwa25sT0pmV3R3bmV5NVBzcitoQmtudk1vRUJ4QT09LS1ybGJRVU1ySkdRS0RXc1ZJLS01NXdzRGhET1NSbVpUQkQ4QndnVGhBPT0= CreatesAnOnlineSalesLink: summary: Creates an online sales link value: http://checkout.moneybird.dev/s/NDRhYThWRlhXN1MrVjJBd3c5d0NqcHJlcUkwUFltaHQxQWx1QWwrY2xOeGE3UkJXb3VLeDZSL1RJMzk2cUZ6T2dsWVh4d0V3bkJRWDViYzN0ekdNSmpDYnMva3VSTnFJT0Q0PS0tZW9qRzBtSHJDN0dpTVh5UC0tU1VDemdSOUVkSDNmekYvdmpsRDRjZz09 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: Returns404WhenTheProductIsNotFound: summary: Returns 404 when the product is not found value: error: Product not found for subscription template Returns404IfContactIsNotFound: summary: Returns 404 if contact is not found value: error: 'Record not found for model name: Contact' 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 tags: - Subscription templates 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: CreatesAnOnlineSalesLinkForAProduct: summary: Creates an online sales link for a product value: http://checkout.moneybird.dev/o/5l4YRdJpVVj1 CreatesAnOnlineSalesLink: summary: Creates an online sales link value: http://checkout.moneybird.dev/o/4EDJAGrdrm7G CreatesAnOnlineSalesLinkIfNoContactIdIsProvided: summary: Creates an online sales link if no contact id is provided value: http://checkout.moneybird.dev/o/Dq215k0kQRrg '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: Returns404WhenTheProductIsNotFound: summary: Returns 404 when the product is not found value: error: Product not found for subscription template Returns404IfContactIsNotFound: summary: Returns 404 if contact is not found value: error: 'Record not found for model name: Contact' 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. tags: - Subscription templates 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: '475688964244637256' administration_id: 123 workflow_id: '475688964227860032' document_style_id: '475688964198499903' mergeable: false contact_can_update: true products: - id: '475688964239394375' administration_id: 123 description: fancy product title: null identifier: null price: '10.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '475688964234151493' ledger_account_id: '475688964236248646' created_at: '2026-01-08T11:39:29.514Z' updated_at: '2026-01-08T11:39:29.514Z' '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. tags: - Subscriptions 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: 475688958902142000 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: '475688959153800286' administration_id: 123 contact_id: null subscription_id: '475688958931502161' product_id: '475688958902142027' 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. tags: - Subscriptions 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: ViewsAdditionalChargesOfASubscription: summary: Views additional charges of a subscription value: - id: '475688957230712779' administration_id: 123 contact_id: null subscription_id: '475688957013657532' product_id: '475688957221275593' detail_id: null amount: 5 x price: '100.0' period: 202106..202106 description: Transaction Costs DoesReturnBilledAdditionalChargesIfIncludeBilledIsTrue: summary: Does return billed additional charges if include billed is true value: - id: '475688957494953953' administration_id: 123 contact_id: null subscription_id: '475688957286287314' product_id: '475688957485516767' detail_id: null amount: 5 x price: '100.0' period: 202106..202106 description: Transaction Costs - id: '475688957511731172' administration_id: 123 contact_id: null subscription_id: '475688957286287314' product_id: '475688957502293986' detail_id: '475688957542139878' 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. tags: - Subscriptions 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 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: '475688960997197037' administration_id: 123 contact_id: '475688960677381340' contact: id: '475688960677381340' 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 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-01-08T11:39:26.107Z' updated_at: '2026-01-08T11:39:26.107Z' version: 1767872366 sales_invoices_url: https://moneybird.dev/123/sales_invoices/d73d1f7b344df530cd1900468a639ab4541e33a02342a65edcb38229e1da8eb2/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: '475688883620676750' document_style_id: '475688883890160792' identity_id: '475688883057591402' draft_id: 2 state: scheduled invoice_date: '2026-02-01' due_date: '2026-02-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-01-08T11:39:26.107Z' updated_at: '2026-01-08T11:39:26.107Z' public_view_code: null public_view_code_expires_at: null version: 1767872366 details: - id: '475688960999294190' administration_id: 123 tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' 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-01-08T11:39:26.107Z' updated_at: '2026-01-08T11:39:26.107Z' 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/d73d1f7b344df530cd1900468a639ab4541e33a02342a65edcb38229e1da8eb2/a6f6e72c7b463138f7593064fc955655ba6f9779213b7325dee9f764b482a08c/sales_invoice payment_url: http://moneybird.dev/123/external/d73d1f7b344df530cd1900468a639ab4541e33a02342a65edcb38229e1da8eb2/a6f6e72c7b463138f7593064fc955655ba6f9779213b7325dee9f764b482a08c/sales_invoice custom_fields: [] notes: [] attachments: [] events: - administration_id: 123 user_id: 17678722914505 action: sales_invoice_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:26.107Z' updated_at: '2026-01-08T11:39:26.107Z' - administration_id: 123 user_id: 17678722914505 action: sales_invoice_state_changed_to_scheduled link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:39:26.107Z' updated_at: '2026-01-08T11:39:26.107Z' tax_totals: - tax_rate_id: '475688883320784009' 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. tags: - Subscriptions 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: '475688962869953904' administration_id: 123 start_date: '2017-01-01' end_date: null frequency: 1 frequency_type: month reference: null cancelled_at: null product_id: '475688962858419566' product: id: '475688962858419566' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:39:28.196Z' updated_at: '2026-01-08T11:39:28.196Z' contact_id: '475688962844788076' contact: id: '475688962844788076' 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 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-01-08T11:39:28.183Z' updated_at: '2026-01-08T11:39:28.183Z' version: 1767872368 sales_invoices_url: https://moneybird.dev/123/sales_invoices/ed8602927b04b3fdfe16d69ea41774032ecc4841a082efe109ff27143f5197ce/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: '475688962858419566' product: id: '475688962858419566' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:39:28.196Z' updated_at: '2026-01-08T11:39:28.196Z' amount: 1 x discount: '0.0' recurring_sales_invoice_id: '475688962899314035' '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. tags: - Subscriptions 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 prices_are_incl_tax: type: - boolean - string product_id: $ref: '#/components/schemas/identifier' description: Should be a valid product id. start_date: type: string format: date amount: type: string 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: 475688962371880260 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: '475688962410677587' administration_id: 123 start_date: '2017-01-01' end_date: null frequency: 1 frequency_type: month reference: null cancelled_at: null product_id: '475688962371880267' product: id: '475688962371880267' administration_id: 123 description: My product description title: null identifier: null price: '30.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:39:27.732Z' updated_at: '2026-01-08T11:39:27.732Z' contact_id: '475688962385511759' contact: id: '475688962385511759' 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 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-01-08T11:39:27.746Z' updated_at: '2026-01-08T11:39:27.746Z' version: 1767872367 sales_invoices_url: https://moneybird.dev/123/sales_invoices/06ebbefce8889fc2bb1e61c25cd8d8333e356050cd74e4385cdd66ee6018374f/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-01-07' product_id: '475688962398094673' product: id: '475688962398094673' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:39:27.758Z' updated_at: '2026-01-08T11:39:27.758Z' amount: 1 x discount: '0.0' - start_date: '2026-01-08' end_date: null product_id: '475688962371880267' product: id: '475688962371880267' administration_id: 123 description: My product description title: null identifier: null price: '30.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:39:27.732Z' updated_at: '2026-01-08T11:39:27.732Z' amount: 3 x discount: '10.0' recurring_sales_invoice_id: '475688962440037718' '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. tags: - Subscriptions 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-01-10' 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: '475688955534116697' administration_id: 123 start_date: '2017-01-01' end_date: '2026-01-10' frequency: 1 frequency_type: month reference: null cancelled_at: '2026-01-08T11:39:21.441Z' product_id: '475688955507902295' product: id: '475688955507902295' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:39:21.187Z' updated_at: '2026-01-08T11:39:21.187Z' contact_id: '475688955482736469' contact: id: '475688955482736469' 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 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-01-08T11:39:21.162Z' updated_at: '2026-01-08T11:39:21.162Z' version: 1767872361 sales_invoices_url: https://moneybird.dev/123/sales_invoices/d4b0ec70711309ae425c0cef7ed253482fe5eb83403917298178bbf9d025ca7b/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-01-10' product_id: '475688955507902295' product: id: '475688955507902295' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:39:21.187Z' updated_at: '2026-01-08T11:39:21.187Z' amount: 1 x discount: '0.0' recurring_sales_invoice_id: '475688955578156892' '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. tags: - Subscriptions 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: '475688958624269370' 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: '475688958654678078' administration_id: 123 start_date: '2017-01-01' end_date: null frequency: 1 frequency_type: month reference: null cancelled_at: null product_id: '475688958639998012' product: id: '475688958639998012' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:39:24.174Z' updated_at: '2026-01-08T11:39:24.174Z' contact_id: '475688958624269370' contact: id: '475688958624269370' 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 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-01-08T11:39:24.158Z' updated_at: '2026-01-08T11:39:24.158Z' version: 1767872364 sales_invoices_url: https://moneybird.dev/123/sales_invoices/cd493178dd8f16ae0bd62afb31e398efe88e8449ef72e816c32833da7d8f8da1/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: '475688958639998012' product: id: '475688958639998012' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:39:24.174Z' updated_at: '2026-01-08T11:39:24.174Z' amount: 1 x discount: '0.0' recurring_sales_invoice_id: '475688958688232513' 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. tags: - Subscriptions 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 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 frequency_type: type: string mergeable: type: - boolean - string prices_are_incl_tax: type: - boolean - string required: - start_date - product_id required: [] examples: CreatesANewSubscriptionForTheContact: summary: Creates a new subscription for the contact value: subscription: start_date: '2026-01-09' contact_id: 475688959986369700 product_id: 475688960002098370 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: '475688960020972716' administration_id: 123 start_date: '2026-01-09' end_date: null frequency: 1 frequency_type: month reference: moneybird.nl cancelled_at: null product_id: '475688960002098346' product: id: '475688960002098346' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:39:25.472Z' updated_at: '2026-01-08T11:39:25.472Z' contact_id: '475688959986369704' contact: id: '475688959986369704' 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 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-01-08T11:39:25.457Z' updated_at: '2026-01-08T11:39:25.457Z' version: 1767872365 sales_invoices_url: https://moneybird.dev/123/sales_invoices/742987d06d14668fc67c95667dabe57ebc073bb92a8841bce90e28adfa089eb9/all notes: [] custom_fields: [] contact_people: [] archived: false contact_person_id: null contact_person: null subscription_products: - start_date: '2026-01-09' end_date: null product_id: '475688960002098346' product: id: '475688960002098346' administration_id: 123 description: My product description title: null identifier: null price: '20.0' currency: EUR frequency: 1 frequency_type: month tax_rate_id: '475688883320784009' ledger_account_id: '475688883240043641' created_at: '2026-01-08T11:39:25.472Z' updated_at: '2026-01-08T11:39:25.472Z' amount: 5x discount: '10.0' recurring_sales_invoice_id: '475688960053478575' '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}/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 The `filter` argument allows you to filter the list of tax rates. Filters are a combination of keys and values, separated by a comma: `percentage:21,tax_rate_type:sales_invoice`. The available options for filtering are: | **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 as well. To do this, separate the state values by a pipe: `state:purchase_invoice|sales_invoice`. tags: - Tax rates parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string examples: ReturnsAllTaxRatesCreatedAfterGivenDatetime: summary: Returns all tax rates created after given datetime value: created_after:2026-01-07 11:40:53 UTC ReturnsOnlyTaxRatesUpdatedAfterGivenDatetime: summary: Returns only tax rates updated after given datetime value: updated_after:2026-01-08 11:40:58 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: ReturnsPaginatedTaxRatesOnPage1: summary: Returns paginated tax rates on page 1 value: - id: '475688883320784009' administration_id: 123 name: 21% btw percentage: '21.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-01-08T11:38:12.340Z' updated_at: '2026-01-08T11:38:12.340Z' ReturnsAllTaxRatesCreatedAfterGivenDatetime: summary: Returns all tax rates created after given datetime value: - id: '475688883320784009' administration_id: 123 name: 21% btw percentage: '21.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-01-08T11:38:12.340Z' updated_at: '2026-01-08T11:38:12.340Z' - id: '475688883329172618' administration_id: 123 name: 9% btw percentage: '9.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-01-08T11:38:12.351Z' updated_at: '2026-01-08T11:38:12.351Z' - id: '475688883330221195' administration_id: 123 name: 0% btw percentage: '0.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-01-08T11:38:12.353Z' updated_at: '2026-01-08T11:38:12.353Z' - id: '475688883332318348' administration_id: 123 name: 21% btw percentage: '21.0' tax_rate_type: purchase_invoice show_tax: true active: true country: null created_at: '2026-01-08T11:38:12.355Z' updated_at: '2026-01-08T11:38:12.355Z' - id: '475688883345949837' administration_id: 123 name: 9% btw percentage: '9.0' tax_rate_type: purchase_invoice show_tax: true active: true country: null created_at: '2026-01-08T11:38:12.367Z' updated_at: '2026-01-08T11:38:12.367Z' ReturnsOnlyTaxRatesUpdatedAfterGivenDatetime: summary: Returns only tax rates updated after given datetime value: - id: '475688883320784009' administration_id: 123 name: foo percentage: '21.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-01-08T11:38:12.340Z' updated_at: '2026-01-08T11:41:58.163Z' ReturnsPaginatedTaxRatesOnPage2: summary: Returns paginated tax rates on page 2 value: - id: '475688883329172618' administration_id: 123 name: 9% btw percentage: '9.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-01-08T11:38:12.351Z' updated_at: '2026-01-08T11:38:12.351Z' ReturnsAllTaxRatesFilteredOnPercentage: summary: Returns all tax rates filtered on percentage value: - id: '475688883320784009' administration_id: 123 name: 21% btw percentage: '21.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-01-08T11:38:12.340Z' updated_at: '2026-01-08T11:38:12.340Z' - id: '475688883332318348' administration_id: 123 name: 21% btw percentage: '21.0' tax_rate_type: purchase_invoice show_tax: true active: true country: null created_at: '2026-01-08T11:38:12.355Z' updated_at: '2026-01-08T11:38:12.355Z' ReturnsAllTaxRatesOfAnAdministration: summary: Returns all tax rates of an administration value: - id: '475688883320784009' administration_id: 123 name: 21% btw percentage: '21.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-01-08T11:38:12.340Z' updated_at: '2026-01-08T11:38:12.340Z' - id: '475688883329172618' administration_id: 123 name: 9% btw percentage: '9.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-01-08T11:38:12.351Z' updated_at: '2026-01-08T11:38:12.351Z' - id: '475688883330221195' administration_id: 123 name: 0% btw percentage: '0.0' tax_rate_type: sales_invoice show_tax: true active: true country: null created_at: '2026-01-08T11:38:12.353Z' updated_at: '2026-01-08T11:38:12.353Z' - id: '475688883332318348' administration_id: 123 name: 21% btw percentage: '21.0' tax_rate_type: purchase_invoice show_tax: true active: true country: null created_at: '2026-01-08T11:38:12.355Z' updated_at: '2026-01-08T11:38:12.355Z' - id: '475688883345949837' administration_id: 123 name: 9% btw percentage: '9.0' tax_rate_type: purchase_invoice show_tax: true active: true country: null created_at: '2026-01-08T11:38:12.367Z' updated_at: '2026-01-08T11:38:12.367Z' '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}{format}: get: summary: Get a time entry by id description: Returns a time entry in the administration. tags: - 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: '475689010148148447' administration_id: 123 contact_id: '475689010130322651' project_id: '475689010140808413' sales_invoice_id: null user_id: 17678722914505 started_at: '2026-01-08T11:40:00.000Z' ended_at: '2026-01-08T12:40:00.000Z' description: Designing the website paused_duration: 0 billable: true created_at: '2026-01-08T11:40:13.295Z' updated_at: '2026-01-08T11:40:13.295Z' contact: id: '475689010130322651' firstname: '' lastname: '' company_name: Foobar Holding B.V. user: id: 17678722914505 name: Moneybird created_at: '2026-01-08T11:38:11.544Z' updated_at: '2026-01-08T11:38:11.946Z' project: id: '475689010140808413' name: Project 1 state: active budget: 10 sales_invoice: null events: - administration_id: 123 user_id: 17678722914505 action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:13.297Z' updated_at: '2026-01-08T11:40:13.297Z' 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. tags: - 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 ended_at: type: string format: date-time description: '**Required**.' 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 billable: type: - boolean - string 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: '475689003372250166' administration_id: 123 contact_id: '475689003356521522' project_id: '475689003365958708' sales_invoice_id: null user_id: 17678722914505 started_at: '2026-01-08T11:40:00.000Z' ended_at: '2026-01-08T12:40:00.000Z' description: Updated description paused_duration: 0 billable: true created_at: '2026-01-08T11:40:06.834Z' updated_at: '2026-01-08T11:40:06.849Z' contact: id: '475689003356521522' firstname: '' lastname: '' company_name: Foobar Holding B.V. user: id: 17678722914505 name: Moneybird created_at: '2026-01-08T11:38:11.544Z' updated_at: '2026-01-08T11:38:11.946Z' project: id: '475689003365958708' name: Project 1 state: active budget: 10 sales_invoice: null events: - administration_id: 123 user_id: 17678722914505 action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:06.835Z' updated_at: '2026-01-08T11:40:06.835Z' - administration_id: 123 user_id: 17678722914505 action: time_entry_updated link_entity_id: null link_entity_type: null data: description: - Designing the website - Updated description updated_at: - '2026-01-08T12:40:06.834+01:00' - '2026-01-08T12:40:06.849+01:00' created_at: '2026-01-08T11:40:06.851Z' updated_at: '2026-01-08T11:40:06.851Z' 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. tags: - 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. tags: - 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. tags: - 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: 475689003476059200 todo: true responses: '201': description: Note created content: application/json: schema: $ref: '#/components/schemas/note_response' examples: CreateANote: summary: Create a note value: id: '475689003522196555' administration_id: 123 entity_id: '475689003506467913' entity_type: TimeEntry user_id: 17678722914505 assignee_id: '475689003476059201' todo: true note: Text of the note completed_at: null completed_by_id: null todo_type: null data: {} created_at: '2026-01-08T11:40:06.976Z' updated_at: '2026-01-08T11:40:06.976Z' '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 all time entries in the administration. The `filter` argument allows you to filter the list of time entries. Filters are a combination of keys and values, separated by a comma: `period:this_year,state:all`. The available options for filtering are: | **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_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`. tags: - Time entries parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' - name: filter in: query required: false schema: type: string 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: ReturnsAllTimeEntriesFilteredOnPeriod: summary: Returns all time entries filtered on period value: - id: '475689003567285331' administration_id: 123 contact_id: '475689003551556687' project_id: '475689003560993873' sales_invoice_id: null user_id: 17678722914505 started_at: '2026-01-08T11:40:00.000Z' ended_at: '2026-01-08T12:40:00.000Z' description: Designing the website paused_duration: 0 billable: true created_at: '2026-01-08T11:40:07.020Z' updated_at: '2026-01-08T11:40:07.020Z' contact: id: '475689003551556687' firstname: '' lastname: '' company_name: Foobar Holding B.V. user: id: 17678722914505 name: Moneybird created_at: '2026-01-08T11:38:11.544Z' updated_at: '2026-01-08T11:38:11.946Z' project: id: '475689003560993873' name: Project 1 state: active budget: 10 sales_invoice: null events: - administration_id: 123 user_id: 17678722914505 action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:07.021Z' updated_at: '2026-01-08T11:40:07.021Z' notes: [] - id: '475689003583013974' administration_id: 123 contact_id: null project_id: null sales_invoice_id: null user_id: 1 started_at: '2026-01-08T11:40:00.000Z' ended_at: '2026-01-08T12:40:00.000Z' description: Designing the website paused_duration: 0 billable: false created_at: '2026-01-08T11:40:07.035Z' updated_at: '2026-01-08T11:40:07.035Z' contact: null user: id: 1 name: Edwin Vlieg created_at: '2026-01-08T11:40:07.028Z' updated_at: '2026-01-08T11:40:07.031Z' 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-01-08T11:40:07.036Z' updated_at: '2026-01-08T11:40:07.036Z' notes: [] - id: '475689003598742617' administration_id: 123 contact_id: null project_id: null sales_invoice_id: null user_id: 2 started_at: '2026-01-08T11:40:00.000Z' ended_at: '2026-01-08T12:40:00.000Z' description: Designing the website paused_duration: 0 billable: true created_at: '2026-01-08T11:40:07.050Z' updated_at: '2026-01-08T11:40:07.050Z' contact: null user: id: 2 name: Edwin Vlieg created_at: '2026-01-08T11:40:07.043Z' updated_at: '2026-01-08T11:40:07.046Z' 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-01-08T11:40:07.051Z' updated_at: '2026-01-08T11:40:07.051Z' notes: [] ReturnsPaginatedTimeEntriesOnPage2: summary: Returns paginated time entries on page 2 value: - id: '475689003814749301' administration_id: 123 contact_id: null project_id: null sales_invoice_id: null user_id: 1 started_at: '2026-01-08T11:40:00.000Z' ended_at: '2026-01-08T12:40:00.000Z' description: Designing the website paused_duration: 0 billable: false created_at: '2026-01-08T11:40:07.255Z' updated_at: '2026-01-08T11:40:07.255Z' contact: null user: id: 1 name: Edwin Vlieg created_at: '2026-01-08T11:40:07.247Z' updated_at: '2026-01-08T11:40:07.252Z' 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-01-08T11:40:07.258Z' updated_at: '2026-01-08T11:40:07.258Z' notes: [] ReturnsPaginatedTimeEntriesOnPage1: summary: Returns paginated time entries on page 1 value: - id: '475689003894441088' administration_id: 123 contact_id: '475689003876615292' project_id: '475689003888149630' sales_invoice_id: null user_id: 17678722914505 started_at: '2026-01-08T11:40:00.000Z' ended_at: '2026-01-08T12:40:00.000Z' description: Designing the website paused_duration: 0 billable: true created_at: '2026-01-08T11:40:07.332Z' updated_at: '2026-01-08T11:40:07.332Z' contact: id: '475689003876615292' firstname: '' lastname: '' company_name: Foobar Holding B.V. user: id: 17678722914505 name: Moneybird created_at: '2026-01-08T11:38:11.544Z' updated_at: '2026-01-08T11:38:11.946Z' project: id: '475689003888149630' name: Project 1 state: active budget: 10 sales_invoice: null events: - administration_id: 123 user_id: 17678722914505 action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:07.333Z' updated_at: '2026-01-08T11:40:07.333Z' notes: [] ReturnsAllTimeEntriesFilteredOnSearchQuery: summary: Returns all time entries filtered on search query value: - id: '475689009607083159' administration_id: 123 contact_id: null project_id: null sales_invoice_id: null user_id: 3 started_at: '2026-01-08T11:40:00.000Z' ended_at: '2026-01-08T12:40:00.000Z' description: Custom description paused_duration: 0 billable: true created_at: '2026-01-08T11:40:12.780Z' updated_at: '2026-01-08T11:40:12.780Z' contact: null user: id: 3 name: Edwin Vlieg created_at: '2026-01-08T11:40:12.771Z' updated_at: '2026-01-08T11:40:12.776Z' 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-01-08T11:40:12.781Z' updated_at: '2026-01-08T11:40:12.781Z' notes: [] ReturnsAllTimeEntriesOfAnAdministration: summary: Returns all time entries of an administration value: - id: '475689009901733051' administration_id: 123 contact_id: '475689009884955831' project_id: '475689009895441593' sales_invoice_id: null user_id: 17678722914505 started_at: '2026-01-08T11:40:00.000Z' ended_at: '2026-01-08T12:40:00.000Z' description: Designing the website paused_duration: 0 billable: true created_at: '2026-01-08T11:40:13.061Z' updated_at: '2026-01-08T11:40:13.061Z' contact: id: '475689009884955831' firstname: '' lastname: '' company_name: Foobar Holding B.V. user: id: 17678722914505 name: Moneybird created_at: '2026-01-08T11:38:11.544Z' updated_at: '2026-01-08T11:38:11.946Z' project: id: '475689009895441593' name: Project 1 state: active budget: 10 sales_invoice: null events: - administration_id: 123 user_id: 17678722914505 action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:13.062Z' updated_at: '2026-01-08T11:40:13.062Z' notes: [] - id: '475689009918510270' administration_id: 123 contact_id: null project_id: null sales_invoice_id: null user_id: 1 started_at: '2026-01-08T11:40:00.000Z' ended_at: '2026-01-08T12:40:00.000Z' description: Designing the website paused_duration: 0 billable: false created_at: '2026-01-08T11:40:13.077Z' updated_at: '2026-01-08T11:40:13.077Z' contact: null user: id: 1 name: Edwin Vlieg created_at: '2026-01-08T11:40:13.069Z' updated_at: '2026-01-08T11:40:13.073Z' 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-01-08T11:40:13.078Z' updated_at: '2026-01-08T11:40:13.078Z' notes: [] - id: '475689009934238913' administration_id: 123 contact_id: null project_id: null sales_invoice_id: null user_id: 2 started_at: '2026-01-08T11:40:00.000Z' ended_at: '2026-01-08T12:40:00.000Z' description: Designing the website paused_duration: 0 billable: true created_at: '2026-01-08T11:40:13.092Z' updated_at: '2026-01-08T11:40:13.092Z' contact: null user: id: 2 name: Edwin Vlieg created_at: '2026-01-08T11:40:13.085Z' updated_at: '2026-01-08T11:40:13.088Z' 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-01-08T11:40:13.093Z' updated_at: '2026-01-08T11:40:13.093Z' notes: [] ReturnsAllTimeEntriesFilteredOnState: summary: Returns all time entries filtered on state value: - id: '475689010017076428' administration_id: 123 contact_id: null project_id: null sales_invoice_id: null user_id: 1 started_at: '2026-01-08T11:40:00.000Z' ended_at: '2026-01-08T12:40:00.000Z' description: Designing the website paused_duration: 0 billable: false created_at: '2026-01-08T11:40:13.171Z' updated_at: '2026-01-08T11:40:13.171Z' contact: null user: id: 1 name: Edwin Vlieg created_at: '2026-01-08T11:40:13.164Z' updated_at: '2026-01-08T11:40:13.168Z' 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-01-08T11:40:13.172Z' updated_at: '2026-01-08T11:40:13.172Z' 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: ReturnsAnErrorMessageIfFilterContactIdIsNotFound: summary: Returns an error message if filter contact id is not found value: error: record not found symbolic: contact_id: not_found ReturnsAnErrorMessageIfFilterUserIdIsNotFound: summary: Returns an error message if filter user id is not found value: error: record not found symbolic: user_id: not_found operationId: get_administration_id_time_entries post: summary: Create a time entry description: |- 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. tags: - 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: Should be a valid user id. started_at: type: string description: | ISO8601 formatted timestamp (e.g., 2023-10-27T10:00:00Z). Other formats are also accepted and will be coerced to a timestamp if possible. ended_at: type: string description: | ISO8601 formatted timestamp (e.g., 2023-10-27T10:00:00Z). Other formats are also accepted and will be coerced to a timestamp if possible. description: type: string 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 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-01-08 11:40:00 UTC ended_at: 2026-01-08 12:40:00 UTC description: Test contact_id: 475689003127931900 project_id: 475689003137369100 user_id: 17678722914505 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: '475689003153097757' administration_id: 123 contact_id: '475689003127931929' project_id: '475689003137369115' sales_invoice_id: null user_id: 17678722914505 started_at: '2026-01-08T11:40:00.000Z' ended_at: '2026-01-08T12:40:00.000Z' description: Test paused_duration: 0 billable: false created_at: '2026-01-08T11:40:06.625Z' updated_at: '2026-01-08T11:40:06.625Z' contact: id: '475689003127931929' firstname: '' lastname: '' company_name: Foobar Holding B.V. user: id: 17678722914505 name: Moneybird created_at: '2026-01-08T11:38:11.544Z' updated_at: '2026-01-08T11:38:11.946Z' project: id: '475689003137369115' name: Project 1 state: active budget: 10 sales_invoice: null events: - administration_id: 123 user_id: 17678722914505 action: time_entry_created link_entity_id: null link_entity_type: null data: {} created_at: '2026-01-08T11:40:06.627Z' updated_at: '2026-01-08T11:40:06.627Z' 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. tags: - Users 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/user_response' examples: ReturnsAllActiveUsersOfAnAdministration: summary: Returns all active users of an administration value: - id: '475688882521769061' name: Mo Neybird created_at: '2026-01-08T11:38:11.579Z' updated_at: '2026-01-08T11:38:11.971Z' 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: '475688898212660473' name: John Doe created_at: '2026-01-08T11:38:26.545Z' updated_at: '2026-01-08T11:38:26.553Z' email: john+3@doe.nl email_validated: true language: nl time_zone: Europe/Amsterdam user_type: employee permissions: - time_entries IncludesApiUsersWhenIncludeApiUsersIsTrue: summary: Includes api users when include api users is true value: - id: '475688882521769061' name: Mo Neybird created_at: '2026-01-08T11:38:11.579Z' updated_at: '2026-01-08T11:38:11.971Z' 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-01-08T11:38:26.640Z' updated_at: '2026-01-08T11:38:26.646Z' email: example+1@dev.null.moneybird.net email_validated: true language: nl time_zone: Europe/Amsterdam user_type: api_user permissions: - time_entries IncludesAccountsWhenIncludeAccountantsIsTrue: summary: Includes accounts when include accountants is true value: - id: '475688882521769061' name: Mo Neybird created_at: '2026-01-08T11:38:11.579Z' updated_at: '2026-01-08T11:38:11.971Z' 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: '475688898379384060' name: A. Accountant. created_at: '2026-01-08T11:38:26.704Z' updated_at: '2026-01-08T11:38:26.709Z' email: john+3@doe.nl email_validated: true language: nl time_zone: Europe/Amsterdam user_type: accountant permissions: - sales_invoices - documents - estimates - bank - settings - time_entries OnlyIncludesPermissionForUsersWithThisAdministration: summary: Only includes permission for users with this administration value: - id: '475688882521769061' name: Mo Neybird created_at: '2026-01-08T11:38:11.579Z' updated_at: '2026-01-08T11:38:11.971Z' 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: '475688898449638654' name: A. Arend. created_at: '2026-01-08T11:38:26.771Z' updated_at: '2026-01-08T11:38:26.992Z' email: john+3@doe.nl email_validated: true language: nl time_zone: Europe/Amsterdam user_type: employee permissions: - time_entries DoesNotIncludeApiUsersWhenIncludeApiUsersIsFalse: summary: Does not include api users when include api users is false value: - id: '475688882521769061' name: Mo Neybird created_at: '2026-01-08T11:38:11.579Z' updated_at: '2026-01-08T11:38:11.971Z' 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 IncludesInactiveUsersWhenIncludeInactiveIsTrue: summary: Includes inactive users when include inactive is true value: - id: '475688882521769061' name: Mo Neybird created_at: '2026-01-08T11:38:11.579Z' updated_at: '2026-01-08T11:38:11.971Z' 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: '475688898800911672' name: A. User. created_at: '2026-01-08T11:38:27.106Z' updated_at: '2026-01-08T11:38:27.124Z' '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. tags: - Verifications 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: 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 IfEmailVerificationsAreStillPending: summary: If email verifications are still pending value: bank_account_numbers: - NL42TEST0000000002 chamber_of_commerce_number: '12345678' tax_number: NL852924574B01 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 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' 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 operationId: get_administration_id_verifications /{administration_id}/webhooks/{id}{format}: delete: summary: Delete a webhook description: Remove a registered webhook. tags: - Webhooks 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. tags: - Webhooks 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: '475689015915316243' administration_id: 123 url: http://example.com/create_webhook enabled_events: [] last_http_status: null last_http_body: null token: rRY7MaFpzEsp5XwWvzK2NERP 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.

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.

tags: - Webhooks parameters: - $ref: '#/components/parameters/administration_id' - $ref: '#/components/parameters/format' requestBody: required: true content: application/*: schema: unevaluatedProperties: false type: object properties: url: type: string enabled_events: type: array items: type: - string required: - url examples: CreatesAWebhookThatIsSubscribedToEnabledEvents: summary: Creates a webhook that is subscribed to enabled events value: url: http://www.mocky.io/v2/5185415ba171ea3a00704eed enabled_events: - contact_created CreatesAWebhook: summary: Creates a webhook value: url: http://www.mocky.io/v2/5185415ba171ea3a00704eed responses: '201': description: Webhook created content: application/json: schema: $ref: '#/components/schemas/webhook_response' examples: CreatesAWebhookThatIsSubscribedToEnabledEvents: summary: Creates a webhook that is subscribed to enabled events value: id: '475689016049533982' administration_id: 123 url: http://www.mocky.io/v2/5185415ba171ea3a00704eed enabled_events: - contact_created last_http_status: null last_http_body: null token: 1gFbTn2dEJ5bQaMcKtrwpV6m CreatesAWebhook: summary: Creates a webhook value: id: '475689016107205668' administration_id: 123 url: http://www.mocky.io/v2/5185415ba171ea3a00704eed enabled_events: [] last_http_status: null last_http_body: null token: jnWHwmNUGqGRoxKfH8NMGwBx '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/symbolic_error' examples: ReturnsAnErrorWhenEventsIsProvided: summary: Returns an error when events is provided value: error: '''events'' has been removed from webhooks, use ''enabled_events''' symbolic: events: removed ReturnsAnErrorWhenFieldsAreNotProvided: summary: Returns an error when fields are not provided value: error: Url is required symbolic: url: required operationId: post_administration_id_webhooks /{administration_id}/workflows{format}: get: summary: Retrieve available workflows description: Returns a list of all the workflows of an administration. tags: - Workflows 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: '475688883794740372' administration_id: 123 type: EstimateWorkflow name: Standaard default: true currency: EUR language: nl active: true prices_are_incl_tax: false created_at: '2026-01-08T11:38:12.793Z' updated_at: '2026-01-08T11:38:12.793Z' - id: '475688883620676750' administration_id: 123 type: InvoiceWorkflow name: Standaard default: true currency: EUR language: nl active: true prices_are_incl_tax: false created_at: '2026-01-08T11:38:12.622Z' updated_at: '2026-01-08T11:38:12.622Z' 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 **Period limits:** - Most endpoints: Maximum 1 month - Profit loss & balance sheet: Maximum 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 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 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' 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' 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' 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 value: type: string required: - id - value - type: array items: type: object properties: id: type: - integer - string value: type: string 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: type: string period: type: string description: 'String with a date range: `20140101..20141231`, presets are also allowed: `this_month`, `prev_month`, `next_month`, etc.' price: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. amount: type: - integer - string tax_rate_id: type: - integer - string description: Should be a valid tax rate id. ledger_account_id: type: - integer - string description: Should be a valid ledger account id. project_id: type: - integer - string description: Should be a valid project id. product_id: type: - integer - string description: Should be a valid product id. row_order: type: - integer - string is_optional: type: - boolean - string is_selected: type: - boolean - string _destroy: type: - boolean - string automated_tax_enabled: type: - boolean - string required: [] - type: array items: type: object properties: id: type: - integer - string description: type: string period: type: string description: 'String with a date range: `20140101..20141231`, presets are also allowed: `this_month`, `prev_month`, `next_month`, etc.' price: $ref: '#/components/schemas/number' description: Both a decimal and a string '10,95' are accepted. amount: type: - integer - string tax_rate_id: type: - integer - string description: Should be a valid tax rate id. ledger_account_id: type: - integer - string description: Should be a valid ledger account id. project_id: type: - integer - string description: Should be a valid project id. product_id: type: - integer - string description: Should be a valid product id. row_order: type: - integer - string is_optional: type: - boolean - string is_selected: type: - boolean - string _destroy: type: - boolean - string automated_tax_enabled: type: - boolean - string 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' 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 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' 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' goal_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' kind: type: string 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 additionalProperties: type: string 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' 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_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_collecting_failed_missing_subscription - sales_invoice_si_delivery_failed_ubl_validation_failed - sales_invoice_email_sender_limit - estimate_email_sender_limit - contact_email_sender_limit - sales_invoice_email_invalid_attachment - estimate_email_invalid_attachment - contact_email_invalid_attachment - sales_invoice_collecting_failed_monthly_limit_exceeded - 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 - 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' period_response: type: string pattern: ^\d{6,8}..\d{6,8}$ example: 20250101..20251231 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' 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' 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' 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' 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' 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' 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' subgoal_response: type: object unevaluatedProperties: false properties: id: $ref: '#/components/schemas/identifier' administration_id: $ref: '#/components/schemas/administration_id' kind: type: string 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 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 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 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 created_at: $ref: '#/components/schemas/timestamp' updated_at: $ref: '#/components/schemas/timestamp' securitySchemes: bearerAuth: type: http scheme: bearer