### Example Relation Object Source: https://api.e-boekhouden.nl/swagger/v1/swagger Provides a complete example of a relation object, demonstrating the expected data types and formats for various fields including personal and business information, and mandate details. ```json { "id": 1, "type": "B", "code": "REL123", "date": "2025-11-28T00:00:00+01:00", "name": "Company", "salutation": "Mr.", "contact": "John Doe", "gender": "m", "address": "Company Street 2", "postalCode": "1000 AB", "city": "Amsterdam", "country": "Netherlands", "address2": "Secondary Street 5", "postalCode2": "2000 CD", "city2": "Rotterdam", "country2": "Netherlands", "phoneNumber": "+31612345678", "mobilePhoneNumber": "+31687654321", "faxNumber": "+31201234567", "emailAddress": "contact@company.com", "emailAddressInvoice": "invoice@company.com", "emailAddressReminder": "reminder@company.com", "website": "https://www.e-boekhouden.nl/", "note": "This is a test note.", "vatNumber": "NL123456789B01", "inactive": false, "termOfPayment": 30, "companyRegistrationNumber": "12345678", "iban": "NL91ABNA0417164300", "bic": "ABNANL2A", "freeText1": "", "freeText2": "", "freeText3": "", "freeText4": "", "freeText5": "", "freeText6": "", "freeText7": "", "freeText8": "", "freeText9": "", "freeText10": "", "isClubOrAssociationMember": 0, "doNotReceiveNewsletters": 0, "ledgerId": 101, "mandate": true, "mandateType": "D", "mandateId": "MAND12345", "mandateSignedDate": "2023-10-01" } ``` -------------------------------- ### GET /Product Source: https://api.e-boekhouden.nl/swagger/v1/swagger Retrieves a list of products. Supports filtering and pagination. ```APIDOC ## GET /Product ### Description Retrieves a list of products. Supports filtering and pagination. ### Method GET ### Endpoint /Product ### Parameters #### Query Parameters - **skip** (integer) - Optional - The number of items to skip. - **take** (integer) - Optional - The number of items to take. ### Request Example ```json { "example": "" } ``` ### Response #### Success Response (200) - **items** (array) - A list of product objects. - **id** (integer) - The unique identifier of the product. - **code** (string) - The code of the product. - **description** (string) - The description of the product. - **unitId** (integer) - The unit ID of the product. - **active** (boolean) - Whether the product is active. - **count** (integer) - The number of retrieved items. #### Response Example ```json { "example": { "items": [ { "id": 1, "code": "Fiets001", "description": "Fiets001", "unitId": 25, "active": true } ], "count": 1 } } ``` #### Error Response (400) - **errors** (object) - Contains validation errors. - **type** (string) - The type of error. - **propertyName** (string) - The name of the property with the error. - **code** (string) - The error code. - **message** (string) - A message describing the error. - **status** (integer) - The HTTP status code. - **traceId** (string) - The trace ID for the request. #### Error Response (401) - Description: Unauthorized ``` -------------------------------- ### Get Product List - API Response Example Source: https://api.e-boekhouden.nl/swagger/v1/swagger This JSON represents a successful response when retrieving a list of products. It includes an array of product objects and the total count of items. Each product object contains details such as ID, code, description, unit ID, and active status. ```json { "items": [ { "id": 1, "code": "Fiets001", "description": "Fiets001", "unitId": 25, "active": true } ], "count": 1 } ``` -------------------------------- ### Create Mutation Request Example Source: https://api.e-boekhouden.nl/swagger/v1/swagger An example JSON payload for creating a mutation. It includes mutation details such as type, date, ledger ID, and an array of rows, each with its own ledger, VAT code, cost center, amount, and description. ```json { "type": 2, "date": "2025-11-28", "ledgerId": 10111230, "invoiceNumber": "INV-001", "entryNumber": "VOU-001", "termOfPayment": 14, "inExVat": "IN", "description": "Example description", "relationId": 1, "rows": [ { "ledgerId": 2, "vatCode": "LAAG_VERK_9", "costCenterId": 12, "amount": 12.20, "description": "Description 1" }, { "ledgerId": 3, "vatCode": "LAAG_VERK_9", "costCenterId": 12, "amount": 14.40, "description": "Description 2" } ] } ``` -------------------------------- ### GET /v1/administration Source: https://api.e-boekhouden.nl/swagger/v1/swagger Retrieves a list of administrations accessible to the authenticated user. Supports filtering and pagination. ```APIDOC ## GET /v1/administration ### Description Retrieves a list of administrations. This endpoint allows fetching administrations with optional filtering and pagination. ### Method GET ### Endpoint /v1/administration ### Parameters #### Query Parameters - **limit** (integer) - Optional - The maximum number of administrations to retrieve. - **offset** (integer) - Optional - The number of administrations to skip. - **company** (string) - Optional - Filters administrations by company name. ### Request Example ``` GET /v1/administration?limit=10&offset=0&company=Example%20Corp ``` ### Response #### Success Response (200) - **items** (array) - An array of administration objects. - **guid** (object) - The unique identifier of the administration. - **company** (string) - The company name of the administration. - **count** (integer) - The total number of administrations retrieved. #### Response Example ```json { "items": [ { "guid": "00000000-0000-0000-0000-000000000000", "company": "Company Name" } ], "count": 1 } ``` #### Error Response (400) - **errors** (object) - Contains details about validation errors. - **type** (string) - The type of error. - **propertyName** (string) - The name of the property with the error. - **code** (string) - An error code. - **title** (string) - A brief title for the error. - **message** (string) - A detailed error message. - **status** (integer) - The HTTP status code. - **traceId** (string) - A unique identifier for the request trace. #### Error Response Example (400) ```json { "errors": { "object.field": [ "Field is missing." ] }, "type": "validation", "propertyName": "object.field", "code": "EXAMPLE_001", "title": "Field is missing.", "message": "Extended error information.", "status": 400, "traceId": "ABCDEF-123456." } ``` #### Error Response (401) - **description** (string) - Indicates an unauthorized access attempt. ``` -------------------------------- ### GET /v1/product Source: https://api.e-boekhouden.nl/swagger/v1/swagger Retrieves a list of products based on specified filters. Supports pagination and filtering by product code or group code. ```APIDOC ## GET /v1/product ### Description Retrieves a list of products. You can filter the results using query parameters such as `code` and `groupCode`. Pagination is supported via `limit` and `offset` parameters. ### Method GET ### Endpoint /v1/product ### Parameters #### Query Parameters - **limit** (integer) - Optional - The number of items to retrieve. Maximum value is 2000. - **offset** (integer) - Optional - The number of items to skip. Minimum value is 0. - **code** (string) - Optional - The code of the product for filtering. - **groupCode** (string) - Optional - The product group code for filtering. #### Request Body None ### Request Example ```json { "example": "GET /v1/product?limit=10&offset=0&code=ABC&groupCode=XYZ" } ``` ### Response #### Success Response (200) - **items** (array) - A list of product items. - **id** (integer) - The ID of the product. - **code** (string) - The code of the product. #### Response Example ```json { "items": [ { "id": 1, "code": "PROD001" } ] } ``` #### Error Response (401) - Description: Unauthorized ``` -------------------------------- ### CostCenterResponse Schema and Example Source: https://api.e-boekhouden.nl/swagger/v1/swagger Defines the structure for a CostCenterResponse object, including its properties like id, description, parentId, active status, and fullPath. An example of a CostCenterResponse is provided, illustrating typical data values. This schema is used for GET requests or responses that return cost center details. ```json { "title": "CostCenterResponse", "properties": { "id": { "type": "integer", "description": "The ID of the cost center.", "format": "int32" }, "description": { "type": "string", "description": "The description of the cost center.", "format": "string" }, "parentId": { "type": "integer", "description": "The parent ID of the cost center.", "format": "int32" }, "active": { "type": "boolean", "description": "Whether the cost center is active." }, "fullPath": { "type": "string", "description": "The full path to the cost center, including parents.", "format": "string" } }, "example": {"id":1,"description":"Buy","parentId":12,"active":true,"fullPath":"Buy>Inventory"} } ``` -------------------------------- ### Product API Source: https://api.e-boekhouden.nl/swagger/v1/swagger/index__gl=1_1jkxhl3__up_MQ..__gs_MQ..&gclid=CjwKCAiAraXJBhBJEiwAjz7MZZzRgiAU-clq1IA1Yws7QjjzgOlFJQQ2K921pNYNAb2DPJwJhJzJeRoCVyQQAvD_BwE&gbraid=0AAAAAD5jnt_vwavvBiqSPPDWuGVWTDgMl Endpoints for managing products, including retrieval, creation, updates, and deletion. ```APIDOC ## GET /v1/product ### Description Retrieves a list of all products. ### Method GET ### Endpoint /v1/product ### Response #### Success Response (200) - **products** (array) - A list of product objects. #### Response Example ```json { "products": [ { "product_id": "prod_1", "name": "Widget", "price": 19.99 } ] } ``` ``` ```APIDOC ## POST /v1/product ### Description Creates a new product. ### Method POST ### Endpoint /v1/product ### Parameters #### Request Body - **product_data** (object) - Required - The data for the new product. ### Request Example ```json { "product_data": { "name": "Gadget", "price": 29.99, "sku": "GDT001" } } ``` ### Response #### Success Response (201) - **product_id** (string) - The ID of the newly created product. #### Response Example ```json { "product_id": "prod_2" } ``` ``` ```APIDOC ## GET /v1/product/groups ### Description Retrieves a list of product groups. ### Method GET ### Endpoint /v1/product/groups ### Response #### Success Response (200) - **groups** (array) - A list of product group names. #### Response Example ```json { "groups": [ "Electronics", "Apparel" ] } ``` ``` ```APIDOC ## GET /v1/product/{id} ### Description Retrieves a specific product by its ID. ### Method GET ### Endpoint /v1/product/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the product to retrieve. ### Response #### Success Response (200) - **product** (object) - The product object. #### Response Example ```json { "product": { "product_id": "prod_1", "name": "Widget", "price": 19.99 } } ``` ``` ```APIDOC ## PATCH /v1/product/{id} ### Description Updates an existing product. ### Method PATCH ### Endpoint /v1/product/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the product to update. #### Request Body - **product_data** (object) - Optional - The updated data for the product. ### Request Example ```json { "product_data": { "price": 21.99 } } ``` ### Response #### Success Response (200) - **message** (string) - Confirmation message. #### Response Example ```json { "message": "Product updated successfully." } ``` ``` ```APIDOC ## DELETE /v1/product/{id} ### Description Deletes a product by its ID. ### Method DELETE ### Endpoint /v1/product/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the product to delete. ### Response #### Success Response (200) - **message** (string) - Confirmation message. #### Response Example ```json { "message": "Product deleted successfully." } ``` ``` -------------------------------- ### POST /Product Source: https://api.e-boekhouden.nl/swagger/v1/swagger Creates a new product with the provided details. ```APIDOC ## POST /Product ### Description Creates a new product with the provided details. ### Method POST ### Endpoint /Product ### Parameters #### Request Body - **code** (string) - Required - The code of the product. Max length: 20. Error codes: ART_004, ART_007. - **description** (string) - Required - The description of the product. Max length: 35000. Error codes: ART_005. - **unitId** (integer) - Optional - The unit ID of the product. Error codes: ART_011. - **active** (boolean) - Optional - Whether the product is active. Defaults to true. - **groupId** (integer) - Optional - The group ID of the product. Error codes: ART_012. - **purchasePriceExcl** (number) - Optional - The purchase price (excluding VAT) of the product. Error codes: ART_027, ART_032. - **priceExcl** (number) - Optional - The selling price (excluding VAT) of the product. - **vat** (number) - Required - The VAT percentage for the product. - **ledgerId** (integer) - Required - The ledger ID associated with the product. ### Request Example ```json { "code": "ExampleProduct", "description": "This is an example product.", "unitId": 1, "active": true, "groupId": 10, "purchasePriceExcl": 50.00, "priceExcl": 75.00, "vat": 21, "ledgerId": 100 } ``` ### Response #### Success Response (200) - No specific response body defined for success. Typically, a 200 OK with an empty body or a confirmation message indicates success. #### Error Response (400) - **errors** (object) - Contains validation errors. - **type** (string) - The type of error. - **propertyName** (string) - The name of the property with the error. - **code** (string) - The error code. - **message** (string) - A message describing the error. - **status** (integer) - The HTTP status code. - **traceId** (string) - The trace ID for the request. #### Error Response (401) - Description: Unauthorized ``` -------------------------------- ### Get Administrations (GET /v1/administration) Source: https://api.e-boekhouden.nl/swagger/v1/swagger Retrieves a list of all administrations managed by the authorized accountant. Supports pagination via 'limit' and 'offset' query parameters. Returns a list of administrations with their GUID and company name, along with the total count. Handles bad requests (400) with detailed error information and unauthorized access (401). ```json { "tags": [ "Administration" ], "description": "Get all administrations managed by the authorized accountant.", "operationId": "GetAdministrations", "parameters": [ { "name": "limit", "in": "query", "description": "The number of items to retrieve.", "schema": { "maximum": 2000, "minimum": 1, "type": "integer", "format": "int32" } }, { "name": "offset", "in": "query", "description": "The number of items to skip.", "schema": { "minimum": 0, "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "title": "AdministrationList", "properties": { "items": { "type": "array", "items": { "title": "AdministrationListItem", "properties": { "guid": { "type": "object", "description": "The unique identifier of the administration." }, "company": { "type": "string", "description": "The company name of the administration.", "format": "string" } } } }, "count": { "type": "integer", "description": "The number of retrieved items.", "format": "int32" } } }, "example": {"items":[{"guid":"00000000-0000-0000-0000-000000000000","company":"Company Name"}],"count":1} } } }, "400": { "description": "Bad Request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "example": {"errors":{"object.field":["Field is missing."]},"type":"validation","propertyName":"object.field","code":"EXAMPLE_001","title":"Field is missing.","message":"Extended error information.","status":400,"traceId":"ABCDEF-123456.","errors":{"object.field":["Field is missing."]}} } } }, "401": { "description": "Unauthorized" } }, "security": [ { "bearer": [ "EB.WebAPI.Core.Attributes.EbAuthAttribute" ] } ] } ``` -------------------------------- ### Administration Endpoints Source: https://api.e-boekhouden.nl/swagger/v1/swagger/index__gl=1_1jkxhl3__up_MQ..__gs_MQ..&gclid=CjwKCAiAraXJBhBJEiwAjz7MZZzRgiAU-clq1IA1Yws7QjjzgOlFJQQ2K921pNYNAb2DPJwJhJzJeRoCVyQQAvD_BwE&gbraid=0AAAAAD5jnt_vwavvBiqSPPDWuGVWTDgMl Endpoints for retrieving administration details and linked administrations. ```APIDOC ## GET /v1/administration ### Description Retrieves a list of all administrations associated with the authenticated user. ### Method GET ### Endpoint /v1/administration ### Parameters #### Headers - **Authorization** (string) - Required - The session token for authentication. ### Response #### Success Response (200) - **administrations** (array) - A list of administration objects. - **id** (string) - The unique identifier for the administration. - **name** (string) - The name of the administration. #### Response Example ```json { "administrations": [ { "id": "admin_123", "name": "Company A" }, { "id": "admin_456", "name": "Company B" } ] } ``` ``` ```APIDOC ## GET /v1/administration/linked ### Description Retrieves a list of administrations that the current administration is linked to. ### Method GET ### Endpoint /v1/administration/linked ### Parameters #### Headers - **Authorization** (string) - Required - The session token for authentication. ### Response #### Success Response (200) - **linked_administrations** (array) - A list of linked administration objects. - **id** (string) - The unique identifier for the linked administration. - **name** (string) - The name of the linked administration. #### Response Example ```json { "linked_administrations": [ { "id": "linked_admin_789", "name": "Parent Company" } ] } ``` ``` -------------------------------- ### Member API Source: https://api.e-boekhouden.nl/swagger/v1/swagger/index__gl=1_1jkxhl3__up_MQ..__gs_MQ..&gclid=CjwKCAiAraXJBhBJEiwAjz7MZZzRgiAU-clq1IA1Yws7QjjzgOlFJQQ2K921pNYNAb2DPJwJhJzJeRoCVyQQAvD_BwE&gbraid=0AAAAAD5jnt_vwavvBiqSPPDWuGVWTDgMl Endpoints for managing members, including retrieval, creation, and updates. ```APIDOC ## GET /v1/member/{id} ### Description Retrieves a specific member by their ID. ### Method GET ### Endpoint /v1/member/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the member to retrieve. ### Response #### Success Response (200) - **member** (object) - The member object. #### Response Example ```json { "member": { "member_id": "mem_1", "name": "John Doe" } } ``` ``` ```APIDOC ## PATCH /v1/member/{id} ### Description Updates an existing member. ### Method PATCH ### Endpoint /v1/member/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the member to update. #### Request Body - **member_data** (object) - Optional - The updated data for the member. ### Request Example ```json { "member_data": { "email": "john.doe.updated@example.com" } } ``` ### Response #### Success Response (200) - **message** (string) - Confirmation message. #### Response Example ```json { "message": "Member updated successfully." } ``` ``` ```APIDOC ## GET /v1/member ### Description Retrieves a list of all members. ### Method GET ### Endpoint /v1/member ### Response #### Success Response (200) - **members** (array) - A list of member objects. #### Response Example ```json { "members": [ { "member_id": "mem_1", "name": "John Doe" }, { "member_id": "mem_2", "name": "Jane Smith" } ] } ``` ``` ```APIDOC ## POST /v1/member ### Description Creates a new member. ### Method POST ### Endpoint /v1/member ### Parameters #### Request Body - **member_data** (object) - Required - The data for the new member. ### Request Example ```json { "member_data": { "name": "New Member", "email": "new.member@example.com" } } ``` ### Response #### Success Response (201) - **member_id** (string) - The ID of the newly created member. #### Response Example ```json { "member_id": "mem_3" } ``` ``` -------------------------------- ### API Error Response Example (JSON) Source: https://api.e-boekhouden.nl/swagger/v1/swagger Provides an example of a validation error response from the API. It includes details about the specific errors, the type of error, the propertyName involved, and a unique trace ID. ```json { "errors": { "object.field": [ "Field is missing." ] }, "type": "validation", "propertyName": "object.field", "code": "EXAMPLE_001", "title": "Field is missing.", "message": "Extended error information.", "status": 400, "traceId": "ABCDEF-123456." } ``` -------------------------------- ### Relation List Schema and Example (JSON) Source: https://api.e-boekhouden.nl/swagger/v1/swagger Defines the schema for a list of relations, including individual relation items with ID, type, and code, along with the total count. An example response for a successful retrieval is provided. ```json { "items": [ { "id": 1, "type": "B", "code": "R0001" } ], "count": 1 } ``` -------------------------------- ### Cost Center Management Source: https://api.e-boekhouden.nl/swagger/v1/swagger/index__gl=1_1jkxhl3__up_MQ..__gs_MQ..&gclid=CjwKCAiAraXJBhBJEiwAjz7MZZzRgiAU-clq1IA1Yws7QjjzgOlFJQQ2K921pNYNAb2DPJwJhJzJeRoCVyQQAvD_BwE&gbraid=0AAAAAD5jnt_vwavvBiqSPPDWuGVWTDgMl Endpoints for managing cost centers, including creation, retrieval, update, and deletion. ```APIDOC ## GET /v1/costcenter ### Description Retrieves a list of all cost centers for the current administration. ### Method GET ### Endpoint /v1/costcenter ### Parameters #### Headers - **Authorization** (string) - Required - The session token for authentication. ### Response #### Success Response (200) - **cost_centers** (array) - A list of cost center objects. - **id** (string) - The unique identifier for the cost center. - **name** (string) - The name of the cost center. #### Response Example ```json { "cost_centers": [ { "id": "cc_001", "name": "Marketing" }, { "id": "cc_002", "name": "Sales" } ] } ``` ``` ```APIDOC ## POST /v1/costcenter ### Description Creates a new cost center for the current administration. ### Method POST ### Endpoint /v1/costcenter ### Parameters #### Headers - **Authorization** (string) - Required - The session token for authentication. #### Request Body - **name** (string) - Required - The name of the cost center. ### Request Example ```json { "name": "Research and Development" } ``` ### Response #### Success Response (200) - **message** (string) - Indicates the cost center was created successfully. - **id** (string) - The unique identifier for the newly created cost center. #### Response Example ```json { "message": "Cost center created successfully.", "id": "cc_003" } ``` ``` ```APIDOC ## GET /v1/costcenter/{id} ### Description Retrieves details for a specific cost center. ### Method GET ### Endpoint /v1/costcenter/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the cost center to retrieve. #### Headers - **Authorization** (string) - Required - The session token for authentication. ### Response #### Success Response (200) - **id** (string) - The unique identifier for the cost center. - **name** (string) - The name of the cost center. #### Response Example ```json { "id": "cc_001", "name": "Marketing" } ``` ``` ```APIDOC ## PATCH /v1/costcenter/{id} ### Description Updates an existing cost center. ### Method PATCH ### Endpoint /v1/costcenter/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the cost center to update. #### Headers - **Authorization** (string) - Required - The session token for authentication. #### Request Body - **name** (string) - Optional - The new name for the cost center. ### Request Example ```json { "name": "Updated Marketing" } ``` ### Response #### Success Response (200) - **message** (string) - Indicates the cost center was updated successfully. #### Response Example ```json { "message": "Cost center updated successfully." } ``` ``` ```APIDOC ## DELETE /v1/costcenter/{id} ### Description Deletes a specific cost center. ### Method DELETE ### Endpoint /v1/costcenter/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the cost center to delete. #### Headers - **Authorization** (string) - Required - The session token for authentication. ### Response #### Success Response (200) - **message** (string) - Indicates the cost center was deleted successfully. #### Response Example ```json { "message": "Cost center deleted successfully." } ``` ``` -------------------------------- ### Paging Parameters Source: https://api.e-boekhouden.nl/swagger/v1/swagger/index__gl=1_1jkxhl3__up_MQ..__gs_MQ..&gclid=CjwKCAiAraXJBhBJEiwAjz7MZZzRgiAU-clq1IA1Yws7QjjzgOlFJQQ2K921pNYNAb2DPJwJhJzJeRoCVyQQAvD_BwE&gbraid=0AAAAAD5jnt_vwavvBiqSPPDWuGVWTDgMl Information on how to use the `limit` and `offset` parameters for paginating results from search endpoints. ```APIDOC ## Paging Parameters ### Description Most search endpoints support pagination using the `limit` and `offset` query parameters. ### Parameters #### Query Parameters - **limit** (integer) - Optional - Defaults to 100. Must be an integer between 1 and 2000. - **offset** (integer) - Optional - Defaults to 0. Must be a positive integer. ### Example Usage To retrieve the first 50 results: ``` ?limit=50&offset=0 ``` To retrieve the next 50 results: ``` ?limit=50&offset=50 ``` ``` -------------------------------- ### Ledger API Source: https://api.e-boekhouden.nl/swagger/v1/swagger/index__gl=1_1jkxhl3__up_MQ..__gs_MQ..&gclid=CjwKCAiAraXJBhBJEiwAjz7MZZzRgiAU-clq1IA1Yws7QjjzgOlFJQQ2K921pNYNAb2DPJwJhJzJeRoCVyQQAvD_BwE&gbraid=0AAAAAD5jnt_vwavvBiqSPPDWuGVWTDgMl Endpoints for managing ledger accounts and their balances. ```APIDOC ## GET /v1/ledger ### Description Retrieves a list of all ledger accounts. ### Method GET ### Endpoint /v1/ledger ### Response #### Success Response (200) - **ledgers** (array) - A list of ledger account objects. #### Response Example ```json { "ledgers": [ { "ledger_id": "ldg_1", "name": "Sales Revenue" } ] } ``` ``` ```APIDOC ## POST /v1/ledger ### Description Creates a new ledger account. ### Method POST ### Endpoint /v1/ledger ### Parameters #### Request Body - **name** (string) - Required - The name of the new ledger account. ### Request Example ```json { "name": "Expenses" } ``` ### Response #### Success Response (201) - **ledger_id** (string) - The ID of the newly created ledger account. #### Response Example ```json { "ledger_id": "ldg_2" } ``` ``` ```APIDOC ## GET /v1/ledger/{id} ### Description Retrieves a specific ledger account by its ID. ### Method GET ### Endpoint /v1/ledger/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the ledger account to retrieve. ### Response #### Success Response (200) - **ledger** (object) - The ledger account object. #### Response Example ```json { "ledger": { "ledger_id": "ldg_1", "name": "Sales Revenue" } } ``` ``` ```APIDOC ## PATCH /v1/ledger/{id} ### Description Updates an existing ledger account. ### Method PATCH ### Endpoint /v1/ledger/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the ledger account to update. #### Request Body - **name** (string) - Optional - The new name for the ledger account. ### Request Example ```json { "name": "Updated Sales Revenue" } ``` ### Response #### Success Response (200) - **message** (string) - Confirmation message. #### Response Example ```json { "message": "Ledger account updated successfully." } ``` ``` ```APIDOC ## GET /v1/ledger/{id}/balance ### Description Retrieves the balance of a specific ledger account. ### Method GET ### Endpoint /v1/ledger/{id}/balance ### Parameters #### Path Parameters - **id** (string) - Required - The ID of the ledger account to get the balance for. ### Response #### Success Response (200) - **balance** (number) - The current balance of the ledger account. #### Response Example ```json { "balance": 5000.50 } ``` ``` -------------------------------- ### Get Linked Administrations (GET /v1/administration/linked) Source: https://api.e-boekhouden.nl/swagger/v1/swagger Retrieves administrations linked to the authorized administration, based on the user who created the API credentials. Supports pagination via 'limit' and 'offset' query parameters. Returns a list of administrations and their count. Handles unauthorized access (401). ```json { "tags": [ "Administration" ], "description": "Get all administrations that are linked to the authorized administration.
Please note that this endpoint will always return administrations linked to the administration of the user that created the API credentials.", "operationId": "GetLinkedAdministrations", "parameters": [ { "name": "limit", "in": "query", "description": "The number of items to retrieve.", "schema": { "maximum": 2000, "minimum": 1, "type": "integer", "format": "int32" } }, { "name": "offset", "in": "query", "description": "The number of items to skip.", "schema": { "minimum": 0, "type": "integer", "format": "int32" } } ], "responses": { "401": { "description": "Unauthorized" } } } ``` -------------------------------- ### Authentication and Session Management Source: https://api.e-boekhouden.nl/swagger/v1/swagger This section outlines the process for obtaining an API token and initiating a session to access the e-Boekhouden API. ```APIDOC ## Authentication and Session Management ### Description To access the e-Boekhouden API, you first need to obtain an API-token from the e-Boekhouden website. This token is then used to create a short-lived session token via a POST request to the `/v1/session` endpoint. The session token must be included in the `Authorization` header for subsequent API requests. ### Quick Start 1. **Create API Token**: Obtain an API-token from your e-Boekhouden account settings. Store it securely as it will not be shown again. 2. **Create Session**: Send a POST request to `/v1/session` with your API-token in the request body. ```json { "accessToken": "YOUR_API_TOKEN", "source": "YourSourceName" } ``` 3. **Authorize Requests**: Include the received session token in the `Authorization` header of your requests. ``` Authorization: YOUR_SESSION_TOKEN ``` ### Endpoint POST `/v1/session` ### Request Body - **accessToken** (string) - Required - Your generated API token. - **source** (string) - Optional - A unique identifier for your application or tool, useful for troubleshooting. ### Response #### Success Response (200 OK) - **sessionToken** (string) - The token used for authorizing subsequent API requests. #### Response Example ```json { "sessionToken": "EXAMPLE_SESSION_TOKEN" } ``` ``` -------------------------------- ### Create Invoice Mutation Example Source: https://api.e-boekhouden.nl/swagger/v1/swagger This example demonstrates how to create an invoice mutation in the E-Boekhouden API. It includes details such as the invoice ID, type, date, description, payment terms, ledger, relation ID, VAT information, and line items. The `inExVat` field specifies whether the amounts include or exclude VAT. ```json { "id": 12, "type": 2, "date": "2025-11-28", "description": "Description", "termOfPayment": 12, "ledgerId": 40444521, "relationId": 111, "inExVat": "EX", "invoiceNumber": "F00001", "entryNumber": "ENTR001", "rows": [ { "ledgerId": 2001, "vatCode": "NL21", "vatAmount": 2.10, "costCenterId": 10, "amount": 10.00, "description": "Row 1 description", "invoiceNumber": "F00001", "relationId": 111 } ], "vat": [ { "vatCode": "NL21", "amount": 2.10 } ] } ``` -------------------------------- ### Error Response Schema and Example (404, 400) Source: https://api.e-boekhouden.nl/swagger/v1/swagger Details the structure of an error response, typically returned for 'Not Found' (404) or 'Bad Request' (400) errors. It includes fields like errors, type, propertyName, code, title, message, status, and traceId. An example error response is provided for context. ```json { "description": "Not Found", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Error" }, "example": {"errors":{"object.field":["Field is missing."]},"type":"validation","propertyName":"object.field","code":"EXAMPLE_001","title":"Field is missing.","message":"Extended error information.","status":400,"traceId":"ABCDEF-123456."} } } } ```