---
title: "Yuki Platform API Prod"
url: "https://developer.yukisoftware.com/apis/yuki-platform-api-prod-1/versions/1237fe18-1f8f-477a-8f52-b3546dd409bf"
---

# Yuki Platform API Prod

OpenAPI specification document.

```json
{"openapi":"3.0.0","info":{"title":"Yuki Platform API Prod","description":"Unified API specification for all Yuki Platform services. This specification includes 5 APIs with 15 total endpoints.","version":"1.0.52"},"servers":[{"url":"https://apirest.yukiworks.com/api/v1"}],"paths":{"/domains/{domain-id}/companies/{company-id}":{"get":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"],"scope":"portal"}],"summary":"Get Company by ID","description":"Retrieves detailed information about a specific company using its unique identifier. You should have yukiapi:domain:companies:read scope to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one of these roles in the portal: `AccountantManagement`, `Accountant`.\n\n<!-- authorization:end -->","operationId":"getCompanyById","tags":["Company"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/DomainIdPath"},{"$ref":"#/components/parameters/CompanyIdPath"}],"security":[{"vismaConnectPortalUser":["yukiapi:domain:companies:read"]}],"responses":{"200":{"$ref":"#/components/responses/GetCompanyResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"$ref":"#/components/responses/NotFoundResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}},"put":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"],"scope":"portal"}],"summary":"Update Company","description":"This endpoint allows the modification of an existing company's details. Ensure you have the necessary permissions before attempting to update a company. You should have yukiapi:domain:companies:update scope to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one of these roles in the portal: `AccountantManagement`, `Accountant`.\n\n<!-- authorization:end -->","operationId":"updateCompany","tags":["Company"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/DomainIdPath"},{"$ref":"#/components/parameters/CompanyIdPath"}],"security":[{"vismaConnectPortalUser":["yukiapi:domain:companies:update"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCompany"}}}},"responses":{"204":{"description":"Company updated successfully."},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}},"/domains/{domain-id}/companies/{company-id}/settings/peppol":{"patch":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"],"scope":"portal"},{"any-of":["Management","Backoffice"],"scope":"domain","note":"Evaluated on the domain session. Read-only users are rejected."}],"summary":"Patch Company Peppol Settings","description":"Partially updates a company's Peppol settings. You should have yukiapi:domain:companies:update scope to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one role from **each** of the following groups:\n\n- In the portal: `AccountantManagement`, `Accountant`\n- In the target domain: `Management`, `Backoffice` - Evaluated on the domain session. Read-only users are rejected.\n\n<!-- authorization:end -->","operationId":"patchCompanyPeppolSettings","tags":["Company"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/DomainIdPath"},{"$ref":"#/components/parameters/CompanyIdPath"}],"security":[{"vismaConnectPortalUser":["yukiapi:domain:companies:update"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchPeppolSettingsRequest"}}}},"responses":{"204":{"description":"Company Peppol settings patched successfully."},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}},"/domains/{domain-id}/companies":{"get":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"],"scope":"portal"}],"summary":"Get All Companies","description":"Retrieves a paginated list of all companies within the specified domain. Returns basic company information including ID, name, status, and metadata. Use offset and limit parameters for pagination through large result sets.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one of these roles in the portal: `AccountantManagement`, `Accountant`.\n\n<!-- authorization:end -->","operationId":"getAllCompanies","tags":["Company"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/DomainIdPath"},{"$ref":"#/components/parameters/OffsetQuery"},{"$ref":"#/components/parameters/LimitQuery"}],"security":[{"vismaConnectPortalUser":["yukiapi:domain:companies:read"]}],"responses":{"200":{"$ref":"#/components/responses/GetCompanyPagedResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"$ref":"#/components/responses/NotFoundResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}},"/portals/{portal-id}/domains":{"post":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"]}],"summary":"Create Domain","description":"This endpoint allows the creation of a new domain. Ensure you have the necessary permissions before attempting to create a domain. You should have yukiapi:domain:domains:create and yukiapi:domain:domains:write scopes to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one of these roles: `AccountantManagement`, `Accountant`.\n\n<!-- authorization:end -->","operationId":"createDomain","tags":["Domain"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/PortalIdPath"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDomain"}}}},"security":[{"vismaConnectPortalUser":["yukiapi:domain:domains:create","yukiapi:domain:domains:write"]}],"responses":{"201":{"$ref":"#/components/responses/CreateDomainResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}},"get":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"],"scope":"portal"}],"summary":"Get All Domains for a Portal","description":"This endpoint allows the retrieval of all domains belonging to a Portal. Ensure you have the necessary permissions before attempting to retrieve the domains list. You should have yukiapi:portal:portals:read and yukiapi:domain:domains:read scopes to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one of these roles in the portal: `AccountantManagement`, `Accountant`.\n\n<!-- authorization:end -->","operationId":"getAllDomains","tags":["Domain"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/PortalIdPath"},{"$ref":"#/components/parameters/OffsetQuery"},{"$ref":"#/components/parameters/LimitQuery"}],"security":[{"vismaConnectPortalUser":["yukiapi:portal:portals:read","yukiapi:domain:domains:read"]}],"responses":{"200":{"$ref":"#/components/responses/GetDomainsPagedResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}},"/portals/{portal-id}/domains/{domain-id}":{"get":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"],"scope":"portal"}],"summary":"Get domain by ID","description":"Retrieves detailed information about a specific domain using its unique identifier. This includes domain metadata, associated companies, and configuration details. You should have yukiapi:domain:domains:read scope to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one of these roles in the portal: `AccountantManagement`, `Accountant`.\n\n<!-- authorization:end -->","operationId":"getDomainById","tags":["Domain"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/PortalIdPath"},{"$ref":"#/components/parameters/DomainIdPath"}],"security":[{"vismaConnectPortalUser":["yukiapi:domain:domains:read"]}],"responses":{"200":{"$ref":"#/components/responses/GetDomainResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"$ref":"#/components/responses/NotFoundResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}},"put":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"],"scope":"portal"},{"any-of":["BackofficeManager","BackofficeController","AccountantManagement"],"note":"Enforced at the back-office security level and back-office functions layer."}],"summary":"Update Domain by ID","description":"This endpoint allows the modification of an existing domain's details by its ID. Ensure you have the necessary permissions before attempting to update a domain. You should have yukiapi:domain:domains:write and yukiapi:domain:domains:update scopes to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one role from **each** of the following groups:\n\n- In the portal: `AccountantManagement`, `Accountant`\n- `BackofficeManager`, `BackofficeController`, `AccountantManagement` - Enforced at the back-office security level and back-office functions layer.\n\n<!-- authorization:end -->","operationId":"updateDomainById","tags":["Domain"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/PortalIdPath"},{"$ref":"#/components/parameters/DomainIdPath"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDomain"}}}},"security":[{"vismaConnectPortalUser":["yukiapi:domain:domains:write","yukiapi:domain:domains:update"]}],"responses":{"204":{"description":"Domain updated successfully."},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"$ref":"#/components/responses/NotFoundResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}},"/domains/{domain-id}/users":{"get":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"],"scope":"portal"}],"summary":"Get All Domain Users","description":"This endpoint allows retrieving all users within a specific domain. Returns a list of all users with their details including name, email, roles, and language preferences. Users attempting to perform this operation need to ensure they possess the necessary permissions. You should have yukiapi:domain:users:read scope to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one of these roles in the portal: `AccountantManagement`, `Accountant`.\n\n<!-- authorization:end -->","operationId":"getAllDomainUsers","tags":["Domain User"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/DomainIdPath"},{"$ref":"#/components/parameters/OffsetQuery"},{"$ref":"#/components/parameters/LimitQuery"}],"security":[{"vismaConnectPortalUser":["yukiapi:domain:users:read"]}],"responses":{"200":{"$ref":"#/components/responses/DomainUsersPagedResultResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"$ref":"#/components/responses/NotFoundResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}},"post":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"],"scope":"portal"}],"summary":"Create Domain User","description":"This endpoint allows creating a new user for a specific domain. The user can be added with basic information including name, email, language preference, roles, and an optional message. Users attempting to perform this operation need to ensure they possess the necessary permissions. You should have yukiapi:domain:users:write scope to access this endpoint. Returns domains:user_already_exists (409) if a user with the given email already has access to the domain.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one of these roles in the portal: `AccountantManagement`, `Accountant`.\n\n<!-- authorization:end -->","operationId":"createDomainUser","tags":["Domain User"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/DomainIdPath"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDomainUser"}}}},"security":[{"vismaConnectPortalUser":["yukiapi:domain:users:write"]}],"responses":{"201":{"$ref":"#/components/responses/CreateDomainUserResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"$ref":"#/components/responses/NotFoundResponse"},"409":{"$ref":"#/components/responses/ConflictResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}},"/domains/{domain-id}/users/search":{"get":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"],"scope":"portal"}],"summary":"Search Domain Users","description":"This endpoint allows searching for users within a specific domain by email address. Returns the user details if a match is found. Users attempting to perform this operation need to ensure they possess the necessary permissions. You should have yukiapi:domain:users:read scope to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one of these roles in the portal: `AccountantManagement`, `Accountant`.\n\n<!-- authorization:end -->","operationId":"searchDomainUsers","tags":["Domain User"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/DomainIdPath"},{"$ref":"#/components/parameters/EmailQuery"}],"security":[{"vismaConnectPortalUser":["yukiapi:domain:users:read"]}],"responses":{"200":{"$ref":"#/components/responses/DomainUserResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"$ref":"#/components/responses/NotFoundResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}},"/domains/{domain-id}/users/byEmail":{"delete":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"],"scope":"portal"}],"summary":"Delete Domain User","description":"This endpoint allows deleting a user from a specific domain by email. Users attempting to perform this operation need to ensure they possess the necessary permissions. Once deleted, the user information cannot be recovered. You should have yukiapi:domain:users:delete scope to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one of these roles in the portal: `AccountantManagement`, `Accountant`.\n\n<!-- authorization:end -->","operationId":"deleteDomainUser","tags":["Domain User"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/DomainIdPath"},{"$ref":"#/components/parameters/EmailQuery"}],"security":[{"vismaConnectPortalUser":["yukiapi:domain:users:delete"]}],"responses":{"204":{"description":"Domain user successfully deleted"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"$ref":"#/components/responses/NotFoundResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}},"/portals/{portal-id}":{"get":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"],"scope":"portal"}],"summary":"Get Portal info","description":"This endpoint retrieves information about a portal using its unique portal ID. Ensure you have the necessary permissions before accessing this endpoint. You should have yukiapi:portal:portals:read scope to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one of these roles in the portal: `AccountantManagement`, `Accountant`.\n\n<!-- authorization:end -->","operationId":"getPortal","tags":["Portal"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/PortalIdPath"}],"security":[{"vismaConnectPortalUser":["yukiapi:portal:portals:read"]}],"responses":{"200":{"$ref":"#/components/responses/PortalResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"$ref":"#/components/responses/NotFoundResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}},"/portals/{portal-id}/companies/search/byCustomerCode":{"get":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"],"scope":"portal"}],"summary":"Search Company by Customer Code","description":"This endpoint allows searching for a company within a specific portal by its internal customer code. Returns the company details if a match is found. Users attempting to perform this operation need to ensure they possess the necessary permissions. You should have yukiapi:portal:portals:read scope to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one of these roles in the portal: `AccountantManagement`, `Accountant`.\n\n<!-- authorization:end -->","operationId":"searchCompanyByCustomerCode","tags":["Company"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/PortalIdPath"},{"$ref":"#/components/parameters/CustomerCodeQuery"}],"security":[{"vismaConnectPortalUser":["yukiapi:portal:portals:read"]}],"responses":{"200":{"$ref":"#/components/responses/GetCompanyResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"$ref":"#/components/responses/NotFoundResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}},"/portals/{portal-id}/companies/search/byCompanyId":{"get":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"],"scope":"portal"}],"summary":"Search Company by Company ID","description":"This endpoint allows searching for a company within a specific portal by its company ID. Returns the company details if a match is found. Users attempting to perform this operation need to ensure they possess the necessary permissions. You should have yukiapi:portal:portals:read scope to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one of these roles in the portal: `AccountantManagement`, `Accountant`.\n\n<!-- authorization:end -->","operationId":"searchCompanyByCompanyId","tags":["Company"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/PortalIdPath"},{"name":"companyId","in":"query","required":true,"description":"The unique identifier of the company to search for","schema":{"type":"string","format":"uuid"}}],"security":[{"vismaConnectPortalUser":["yukiapi:portal:portals:read"]}],"responses":{"200":{"$ref":"#/components/responses/GetCompanyResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"$ref":"#/components/responses/NotFoundResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}},"/portals/{portal-id}/users":{"get":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"],"scope":"portal"}],"summary":"Get All Portal Users","description":"This endpoint retrieves basic information about users by Portal id. You should have yukiapi:portal:users:read scope to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one of these roles in the portal: `AccountantManagement`, `Accountant`.\n\n<!-- authorization:end -->","operationId":"getUsersByPortalId","tags":["Portal User"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/PortalIdPath"},{"$ref":"#/components/parameters/OffsetQuery"},{"$ref":"#/components/parameters/LimitQuery"}],"security":[{"vismaConnectPortalUser":["yukiapi:portal:users:read"]}],"responses":{"200":{"$ref":"#/components/responses/PortalUsersPagedResultResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"$ref":"#/components/responses/NotFoundResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}},"post":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement"],"scope":"portal"}],"summary":"Create Portal User","description":"This endpoint allows the creation of a user in the portal. Ensure the user has the necessary permissions before attempting to create a user. You should have yukiapi:portal:users:write scope to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold the `AccountantManagement` role in the portal.\n\n<!-- authorization:end -->","operationId":"createUser","tags":["Portal User"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/PortalIdPath"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePortalUser"}}}},"security":[{"vismaConnectPortalUser":["yukiapi:portal:users:write"]}],"responses":{"201":{"$ref":"#/components/responses/PortalUserCreateResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}},"/portals/{portal-id}/users/search":{"get":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"],"scope":"portal"}],"summary":"Search Portal Users","description":"This endpoint allows searching for users within a specific portal by email address. Returns the user details if a match is found. Users attempting to perform this operation need to ensure they possess the necessary permissions. You should have yukiapi:portal:users:read scope to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one of these roles in the portal: `AccountantManagement`, `Accountant`.\n\n<!-- authorization:end -->","operationId":"searchPortalUsers","tags":["Portal User"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/PortalIdPath"},{"$ref":"#/components/parameters/EmailQuery"}],"security":[{"vismaConnectPortalUser":["yukiapi:portal:users:read"]}],"responses":{"200":{"$ref":"#/components/responses/PortalUsersResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"$ref":"#/components/responses/NotFoundResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}},"/portals/{portal-id}/users/byEmail":{"delete":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement"],"scope":"portal"}],"summary":"Delete Portal User by Email","description":"This endpoint allows deleting a user from a specific portal by their email address. Users attempting to perform this operation need to ensure they possess the necessary permissions. Once deleted, the user information cannot be recovered. You should have yukiapi:portal:users:delete scope to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold the `AccountantManagement` role in the portal.\n\n<!-- authorization:end -->","operationId":"deletePortalUserByEmail","tags":["Portal User"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/PortalIdPath"},{"$ref":"#/components/parameters/EmailQuery"}],"security":[{"vismaConnectPortalUser":["yukiapi:portal:users:delete"]}],"responses":{"204":{"description":"Portal user successfully deleted"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"$ref":"#/components/responses/NotFoundResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}},"put":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement"],"scope":"portal"}],"summary":"Update Portal User","description":"This endpoint allows updating a user's information in the portal using the specified user email and portal ID. The update can modify the user's name, language preference, and roles. Users attempting to perform this operation need to ensure they possess the necessary permissions. You should have yukiapi:portal:users:write and yukiapi:portal:users:update scopes to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold the `AccountantManagement` role in the portal.\n\n<!-- authorization:end -->","operationId":"updateUser","tags":["Portal User"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/PortalIdPath"},{"$ref":"#/components/parameters/EmailQuery"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePortalUser"}}}},"security":[{"vismaConnectPortalUser":["yukiapi:portal:users:write","yukiapi:portal:users:update"]}],"responses":{"204":{"description":"User successfully updated"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"$ref":"#/components/responses/NotFoundResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}},"/portals/{portal-id}/users/{user-identifier}":{"get":{"x-environments":["development","pilot","production"],"x-portal-visibility":["internal","trusted","prod"],"x-required-roles":[{"any-of":["AccountantManagement","Accountant"],"scope":"portal"}],"summary":"Get Portal User","description":"This endpoint enables the retrieval of user information from the portal utilizing the specific portalID based on UserId. Users need to confirm they have the required permissions before attempting to access this information. The operation helps in fetching critical user data for administrative or auditing purposes. You should have yukiapi:portal:users:read scope to access this endpoint.\n\n<!-- authorization:start -->\n\n**Authorization**\n\nCalled with a **Portal User** token - an employee of an accounting portal.\n\nThe caller must hold at least one of these roles in the portal: `AccountantManagement`, `Accountant`.\n\n<!-- authorization:end -->","operationId":"getUser","tags":["Portal User"],"parameters":[{"$ref":"#/components/parameters/AuthorizationHeader"},{"$ref":"#/components/parameters/ContentTypeHeader"},{"$ref":"#/components/parameters/PortalIdPath"},{"$ref":"#/components/parameters/GetUserIdPath"}],"security":[{"vismaConnectPortalUser":["yukiapi:portal:users:read"]}],"responses":{"200":{"$ref":"#/components/responses/PortalUsersResponse"},"400":{"$ref":"#/components/responses/BadRequestResponse"},"401":{"$ref":"#/components/responses/UnauthorizedResponse"},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"$ref":"#/components/responses/NotFoundResponse"},"500":{"$ref":"#/components/responses/InternalServerErrorResponse"}}}}},"components":{"schemas":{"CompanyAddress":{"type":"object","properties":{"address":{"type":"string","nullable":true,"description":"Street name and number.","example":"Main Street 123"},"address2":{"type":"string","nullable":true,"description":"Additional address information.","example":"Suite 456"},"postalCode":{"type":"string","nullable":true,"description":"Postal code.","example":"1234AB"},"city":{"type":"string","nullable":true,"description":"City name.","example":"Amsterdam"}},"description":"Address information object."},"LegalForm":{"type":"string","enum":["Unknown","SolePartnership","PrivateLimited","PublicLimited","GeneralPartnership","LimitedPartnership","Partnership","Association","Foundation","Cooperative"],"description":"Legal form of the company. \\\nBE: Unknown, SolePartnership, PrivateLimited, PublicLimited, GeneralPartnership, LimitedPartnership, Partnership, Association, Foundation, Cooperative. \\\nNL: values to be added later\n","example":"PrivateLimited"},"MixedOrPartialLiable":{"type":"string","nullable":true,"enum":["No","Mixed","Partial"],"description":"Mixed or partial liable indicator.","example":"No"},"ICPFrequency":{"type":"string","nullable":true,"enum":["None","Yearly","Quarterly","Monthly"],"description":"ICP frequency indicator.","example":"Monthly"},"VATFrequency":{"type":"string","nullable":true,"enum":["None","Yearly","Quarterly","Monthly"],"description":"VAT frequency indicator.","example":"Monthly"},"PettyCashOption":{"type":"string","nullable":true,"enum":["Unknown","Regularly","Petty","None"],"description":"Cash usage option: Unknown, Regularly, Petty, None\n","example":"Regularly"},"CompanyFinancials":{"type":"object","properties":{"vatNumber":{"type":"string","nullable":true,"description":"VAT number.","example":"NL123456789B01"},"fiscalNumber":{"type":"string","nullable":true,"description":"Fiscal number.","example":"123456789"},"payrollTaxNumber":{"type":"string","nullable":true,"description":"Payroll tax number.","example":"987654321"},"vatLiable":{"type":"boolean","nullable":true,"description":"VAT liable indicator.","example":true},"mixedOrPartialLiable":{"$ref":"#/components/schemas/MixedOrPartialLiable"},"icpFrequency":{"$ref":"#/components/schemas/ICPFrequency"},"vatFrequency":{"$ref":"#/components/schemas/VATFrequency"},"pettyCash":{"$ref":"#/components/schemas/PettyCashOption"},"financialYearFollowsCalendarMonths":{"type":"boolean","description":"Whether the financial year follows calendar months.","example":true},"yukiStartKeepingFinancialRecordsYear":{"type":"string","description":"The year when Yuki started keeping financial records.","example":"2023"},"yukiStartKeepingFinancialRecordsDate":{"type":"string","format":"date-time","description":"The date when Yuki started keeping financial records.","example":"2023-01-01T00:00:00Z"}},"description":"Financial object containing financial-related settings."},"PeppolConfiguration":{"type":"object","required":["enableSending","enableReceiving"],"properties":{"enableSending":{"type":"boolean","description":"Whether Peppol sending is enabled for this company. Defaults to false when the company is not registered on Peppol.","default":false},"enableReceiving":{"type":"boolean","description":"Whether Peppol receiving is enabled for this company. Defaults to false when the company is not registered on Peppol.","default":false}},"description":"Peppol configuration object containing Peppol-related settings."},"Company":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the company.","example":"123e4567-e89b-12d3-a456-426614174000"},"companyName":{"type":"string","description":"The name of the company.","example":"Example Corp"},"companyDescription":{"type":"string","description":"A brief description of the company.","example":"Example Corp is a leading provider of innovative solutions."},"address":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/CompanyAddress"}]},"mailingAddress":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/CompanyAddress"}]},"country":{"type":"string","nullable":true,"description":"Country ISO code.","example":"NL"},"emailAddress":{"type":"string","description":"Email address.","example":"info@example.com"},"phone":{"type":"string","description":"Phone number.","example":"+31 20 123 4567"},"website":{"type":"string","description":"Company website (optional).","example":"https://example.com"},"legalForm":{"$ref":"#/components/schemas/LegalForm"},"cocNumber":{"type":"string","description":"Chamber of Commerce number.","example":"12345678"},"internalCustomerCode":{"type":"string","description":"Internal customer code (optional).","example":"CUST001"},"accountingStartingDate":{"type":"string","format":"date","description":"Accounting starting date.","example":"2024-01-01"},"financial":{"$ref":"#/components/schemas/CompanyFinancials"},"peppolConfiguration":{"$ref":"#/components/schemas/PeppolConfiguration"},"domainId":{"type":"string","format":"uuid","description":"The unique identifier of the domain where the company belongs.","example":"456e5678-f90c-23e4-b567-537725285111"}},"required":["peppolConfiguration"],"description":"Company information object."},"ProblemDetails":{"type":"object","properties":{"type":{"type":"string","example":"https://dev.yuki.nl/errors/problem"},"title":{"type":"string","example":"Problem"},"status":{"type":"integer","example":500},"detail":{"type":"string","example":"An unexpected error occurred."},"instance":{"type":"string","example":"/example/endpoint"}}},"BadRequestError":{"allOf":[{"$ref":"#/components/schemas/ProblemDetails"}],"example":{"type":"https://example.com/errors/bad-request","title":"Bad Request","status":400,"detail":"The request is invalid or malformed.","instance":"/example/bad-request"}},"UnauthorizedError":{"allOf":[{"$ref":"#/components/schemas/ProblemDetails"}],"example":{"type":"https://example.com/errors/unauthorized","title":"Unauthorized","status":401,"detail":"Authentication is required.","instance":"/example/unauthorized"}},"ForbiddenError":{"allOf":[{"$ref":"#/components/schemas/ProblemDetails"}],"example":{"type":"https://example.com/errors/forbidden","title":"Forbidden","status":403,"detail":"You do not have permission to access this resource.","instance":"/example/forbidden"}},"NotFoundError":{"allOf":[{"$ref":"#/components/schemas/ProblemDetails"}],"example":{"type":"https://example.com/errors/not-found","title":"Not Found","status":404,"detail":"The requested resource could not be found.","instance":"/example/not-found"}},"InternalServerError":{"allOf":[{"$ref":"#/components/schemas/ProblemDetails"}],"example":{"type":"https://example.com/errors/internal-server-error","title":"Internal Server Error","status":500,"detail":"An unexpected error occurred.","instance":"/example/internal-server-error"}},"UpdateCompany":{"type":"object","properties":{"companyName":{"type":"string","nullable":true,"description":"The name of the company.","example":"Example Corp"},"companyDescription":{"type":"string","nullable":true,"description":"A brief description of the company.","example":"Example Corp is a leading provider of innovative solutions."},"address":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/CompanyAddress"}]},"mailingAddress":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/CompanyAddress"}]},"country":{"type":"string","nullable":true,"description":"Country ISO code.","example":"NL"},"emailAddress":{"type":"string","nullable":true,"description":"Email address.","example":"info@example.com"},"phone":{"type":"string","nullable":true,"description":"Phone number.","example":"+31 20 123 4567"},"website":{"type":"string","nullable":true,"description":"Company website (optional).","example":"https://example.com"},"legalForm":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/LegalForm"}]},"cocNumber":{"type":"string","nullable":true,"description":"Chamber of Commerce number.","example":"12345678"},"internalCustomerCode":{"type":"string","nullable":true,"description":"Internal customer code (optional).","example":"CUST001"},"accountingStartingDate":{"type":"string","format":"date","nullable":true,"description":"Accounting starting date.","example":"2024-01-01"},"financial":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/CompanyFinancials"}]}},"description":"Company information object."},"PatchPeppolSettingsRequest":{"type":"object","properties":{"enableSending":{"type":"boolean","nullable":true,"description":"Enables or disables Peppol sending."},"enableReceiving":{"type":"boolean","nullable":true,"description":"Enables or disables Peppol receiving."}},"description":"Request body for partially updating company Peppol settings."},"PagedResult":{"type":"object","properties":{"totalItems":{"type":"integer","description":"Total number of items available","example":100},"offset":{"type":"integer","description":"Current offset in the list","example":10},"limit":{"type":"integer","description":"Maximum number of items returned","example":20},"items":{"type":"array","items":{"type":"object"}}}},"ContactBase":{"type":"object","description":"Base schema for a contact in the system. Contains all common properties shared between ContactPerson and ContactCompany.","required":["contactType","id","fullName"],"properties":{"contactType":{"type":"string","enum":["person","company"],"description":"Indicates whether this contact is a natural person or a company/organization"},"id":{"type":"string","format":"uuid","description":"The unique identifier of the contact","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479"},"hid":{"type":"integer","description":"The human-readable identifier of the contact","example":123456},"code":{"type":"string","description":"The external code of the contact","example":"EXT001"},"fullName":{"type":"string","description":"The full name of the contact (person or company name)","example":"Acme Corporation"},"addressLine1":{"type":"string","description":"The first line of the contact address","example":"123 Main Street"},"addressLine2":{"type":"string","description":"The second line of the contact address","example":"Suite 100"},"postcode":{"type":"string","description":"The postal code of the contact address","example":"1234 AB"},"city":{"type":"string","description":"The city of the contact address","example":"Amsterdam"},"country":{"type":"string","description":"The country code of the contact address","example":"NL"},"phoneHome":{"type":"string","description":"The home phone number of the contact","example":"+31 20 123 4567"},"phoneWork":{"type":"string","description":"The work phone number of the contact","example":"+31 20 765 4321"},"mobileHome":{"type":"string","description":"The personal mobile phone number of the contact","example":"+31 6 12345678"},"mobileWork":{"type":"string","description":"The work mobile phone number of the contact","example":"+31 6 87654321"},"emailHome":{"type":"string","format":"email","description":"The personal email address of the contact","example":"personal@example.com"},"emailWork":{"type":"string","format":"email","description":"The work email address of the contact","example":"work@example.com"},"website":{"type":"string","format":"uri","description":"The website of the contact","example":"https://example.com"},"tags":{"type":"array","items":{"type":"string"},"description":"Labels/tags associated with this contact","example":["important","vip"]},"created":{"type":"string","format":"date-time","description":"Timestamp when the contact was created","example":"2024-01-01T12:00:00Z"},"modified":{"type":"string","format":"date-time","description":"Timestamp when the contact was last modified","example":"2024-01-15T14:30:00Z"}}},"ContactPerson":{"description":"A contact of type Person (natural person)","allOf":[{"$ref":"#/components/schemas/ContactBase"},{"type":"object","properties":{"contactType":{"type":"string","enum":["person"]},"firstName":{"type":"string","description":"The first name of the person","example":"John"},"middleName":{"type":"string","description":"The middle name of the person","example":"William"},"lastName":{"type":"string","description":"The last name of the person","example":"Doe"},"nationalRegisterNumber":{"type":"string","description":"The national register / social security number of the person","example":"12345678901"},"incomeTaxNumber":{"type":"string","description":"The income tax number of the person","example":"123456789"}}}]},"ContactCompany":{"description":"A contact of type Company (organization)","allOf":[{"$ref":"#/components/schemas/ContactBase"},{"type":"object","properties":{"contactType":{"type":"string","enum":["company"]},"vatNumber":{"type":"string","description":"The VAT number of the company","example":"NL123456789B01"},"cocNumber":{"type":"string","description":"The Chamber of Commerce number of the company","example":"12345678"},"incomeTaxNumber":{"type":"string","description":"The income tax number of the company","example":"123456789"},"mainContactPersonId":{"type":"string","format":"uuid","description":"The unique identifier of the main contact person for this company","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"},"mainContactPersonName":{"type":"string","description":"The full name of the main contact person for this company","example":"Jane Smith"}}}]},"Contact":{"description":"Represents a contact in the system. Can be either a ContactPerson (natural person) or a ContactCompany (organization). Use the contactType discriminator to determine the type.","oneOf":[{"$ref":"#/components/schemas/ContactPerson"},{"$ref":"#/components/schemas/ContactCompany"}],"discriminator":{"propertyName":"contactType","mapping":{"person":"#/components/schemas/ContactPerson","company":"#/components/schemas/ContactCompany"}}},"ContactAddress":{"type":"object","properties":{"address":{"type":"string","description":"Street name and number.","example":"Main Street 123"},"address2":{"type":"string","description":"Additional address information.","example":"Suite 456"},"postalCode":{"type":"string","description":"Postal code.","example":"1234AB"},"city":{"type":"string","description":"City name.","example":"Amsterdam"}},"required":["address","postalCode","city"],"description":"Address information object."},"ContactRequestBase":{"type":"object","description":"Base schema for contact request bodies. Contains all common properties shared between Person and Company contact types.","properties":{"type":{"type":"string","enum":["Person","Company"],"description":"Indicates whether this contact is a natural person or a company/organization"},"name":{"type":"string","description":"Full name of the contact","example":"John Doe"},"code":{"type":"string","description":"External code of the contact","example":"EXT001"},"address":{"$ref":"#/components/schemas/ContactAddress"},"mailAddress":{"$ref":"#/components/schemas/ContactAddress"},"country":{"type":"string","description":"Country of the contact","example":"NL"},"phoneHome":{"type":"string","description":"Phone number","example":"+31 20 123 4567"},"emailWork":{"type":"string","format":"email","description":"Email address","example":"contact@example.com"},"website":{"type":"string","description":"Website","example":"https://example.com"},"tags":{"type":"array","description":"Tags associated with the contact","items":{"type":"string"},"example":["important","vip"]}}},"ContactRequestPerson":{"description":"Contact request body for a Person (natural person)","allOf":[{"$ref":"#/components/schemas/ContactRequestBase"},{"type":"object","properties":{"type":{"type":"string","enum":["Person"]},"nationalRegisterNumber":{"type":"string","description":"The national register / social security number of the person","example":"12345678901"}}}]},"ContactRequestCompany":{"description":"Contact request body for a Company (organization)","allOf":[{"$ref":"#/components/schemas/ContactRequestBase"},{"type":"object","properties":{"type":{"type":"string","enum":["Company"]},"vatNumber":{"type":"string","description":"VAT Number","example":"NL123456789B01"},"coCNumber":{"type":"string","description":"CoC number (Chamber of Commerce number)","example":"12345678"},"incomeTaxNumber":{"type":"string","description":"Income tax number","example":"123456789"},"mainContactPerson":{"type":"string","description":"Contact person of the company","example":"John Doe"}}}]},"CreateContact":{"description":"Request body for creating a new contact. Use the type discriminator to specify Person or Company. Fields name, type, and country are required.","oneOf":[{"$ref":"#/components/schemas/ContactRequestPerson"},{"$ref":"#/components/schemas/ContactRequestCompany"}],"discriminator":{"propertyName":"type","mapping":{"Person":"#/components/schemas/ContactRequestPerson","Company":"#/components/schemas/ContactRequestCompany"}},"required":["name","type","country"]},"ConflictError":{"allOf":[{"$ref":"#/components/schemas/ProblemDetails"}],"example":{"type":"https://example.com/errors/conflict","title":"Conflict","status":409,"detail":"The request could not be completed due to a conflict with the current state of the resource.","instance":"/example/conflict"}},"UpdateContact":{"description":"Request body for updating an existing contact. Use the type discriminator to specify Person or Company. Only type is required; all other fields are optional for partial updates.","oneOf":[{"$ref":"#/components/schemas/ContactRequestPerson"},{"$ref":"#/components/schemas/ContactRequestCompany"}],"discriminator":{"propertyName":"type","mapping":{"Person":"#/components/schemas/ContactRequestPerson","Company":"#/components/schemas/ContactRequestCompany"}},"required":["type"]},"VatCode":{"type":"object","description":"VAT code definition available within an administration.","properties":{"id":{"type":"string","format":"uuid","nullable":true,"description":"Unique identifier of the VAT code.","example":"b1f3c1d5-3c76-4d07-9f8a-3a0ac2b502ae"},"type":{"type":"string","nullable":true,"description":"Indicates whether the VAT code is used for sales or purchases.","enum":["Sales","Purchase"],"example":"Sales"},"vatType":{"type":"string","nullable":true,"description":"Specifies the VAT type configured for the code.","enum":["VATExempt","VATHigh","VATLow","VATOther","VATZeroPercent","VATReverseCharged","ExportOutsideTheEU","ExportInsideTheEU","InstallationOrDistanceSalesInsideTheEU","VATAgricultureRegulation","LocalVATInOtherEUCountries","AdvanceTax","ImportOutsideTheEU","AcquisitionsInsideTheEU","PrivateUse","RulesForSmallTraders","NonDeductible","VATZeroPercentReverseCharged","VatZeroPercentPurchase","ExportInsideTheEUSupplies","ExportInsideTheEUServices","VATMedium","VariousVATRegulationsInFavor","ImportInsideTheEUSupplies","ImportInsideTheEUServices","VATDigitalServicesAndOrDistanceSelling","ExportOfGoodsInsideTheEUTriangularTrade"],"example":"VATHigh"},"description":{"type":"string","nullable":true,"description":"Human readable description of the VAT code.","example":"Standard rate NL"},"vatRate":{"type":"number","format":"double","nullable":true,"description":"VAT rate configured for the code.","example":21},"active":{"type":"boolean","nullable":true,"description":"Indicates whether the VAT code is currently active.","example":true},"country":{"type":"string","nullable":true,"description":"Country where the VAT code applies (ISO 3166-1 alpha-2).","example":"NL"}}},"SalesInvoiceLine":{"type":"object","description":"Single invoice line containing product quantities, pricing and VAT details.","properties":{"description":{"type":"string","description":"Description of the invoice line.","example":"Consulting services March"},"productQuantity":{"type":"number","format":"double","description":"Quantity of units sold in this invoice line.","example":5},"productSalesPrice":{"type":"number","format":"double","description":"Sales price per unit for the line.","example":125.5},"vatCode":{"type":"string","description":"Identifier of the VAT code applied to the line.","example":"VATExempt"},"totalAmount":{"type":"number","format":"double","description":"Total amount of the invoice line including VAT when applicable.","example":756.25},"vatAmount":{"type":"number","format":"double","description":"VAT amount applied to the invoice line.","example":131.25},"amountExcludingVat":{"type":"number","format":"double","description":"Amount of the invoice line excluding VAT.","example":625},"itemDescription":{"type":"string","description":"Description of the item used in the invoice line.","example":"Consulting hourly package"},"itemReference":{"type":"string","description":"Reference of the item used in the invoice line.","example":"CONS-001"},"glAccountCode":{"type":"string","description":"GL account on which the invoice line is booked.","example":"8000"},"remarks":{"type":"string","description":"Additional remarks for the invoice line.","example":"Urgent processing required"}}},"SalesInvoice":{"type":"object","description":"Represents a sales invoice including totals, contact details and invoice lines.","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the sales invoice.","example":"8c2d1c2f-9c55-4a5e-9b71-8b2db4a23e91"},"reference":{"type":"string","description":"Reference or invoice number of the sales invoice.","example":"INV-2025-00045"},"subject":{"type":"string","description":"Subject of the sales invoice.","example":"Consulting services"},"invoiceDate":{"type":"string","format":"date","description":"Date of the invoice.","example":"2025-01-10"},"dueDate":{"type":"string","format":"date","description":"Due date of the invoice.","example":"2025-02-09"},"invoiceAmount":{"type":"number","format":"double","description":"Total invoice amount including VAT.","example":756.25},"invoiceVatAmount":{"type":"number","format":"double","description":"Total VAT amount of the invoice.","example":131.25},"invoiceAmountExcludingVat":{"type":"number","format":"double","description":"Invoice amount without VAT.","example":625},"paymentMethod":{"type":"string","description":"Payment method used for the sales invoice.","example":"ElectronicTransfer"},"paymentId":{"type":"string","description":"Payment identifier of the sales invoice.","example":"PAY-88391"},"paymentStatus":{"type":"string","description":"Payment status of the invoice.","enum":["NotYetPaid","PartiallyPaid","Paid"],"example":"NotYetPaid"},"openAmount":{"type":"number","format":"double","description":"Open amount remaining on the invoice.","example":756.25},"currency":{"type":"string","description":"Currency of the invoice"},"projectId":{"type":"string","format":"uuid","nullable":true,"description":"Identifier of the project the invoice is assigned to.","example":"b6a2b240-1f1b-4a44-90d9-97b9c2e6c0f7"},"projectCode":{"type":"string","nullable":true,"description":"Code of the project the invoice is assigned to."},"remarks":{"type":"string","nullable":true,"description":"Additional remarks of the invoice.","example":"Pay within 30 days"},"priceList":{"type":"string","nullable":true,"description":"Price list used for the invoice.","example":"Standard"},"created":{"type":"string","format":"date-time","description":"Timestamp when the invoice was created.","example":"2025-01-10T10:00:00Z"},"modified":{"type":"string","format":"date-time","description":"Timestamp when the invoice was last modified.","example":"2025-01-11T14:30:00Z"},"contact":{"type":"object","description":"Contact associated with the sales invoice.","properties":{"id":{"type":"string","format":"uuid","description":"GUID of the contact.","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479"},"name":{"type":"string","description":"Name of the contact.","example":"John Doe"}}},"invoiceLines":{"type":"array","description":"Invoice lines that make up the sales invoice.","items":{"$ref":"#/components/schemas/SalesInvoiceLine"},"minItems":1}}},"SalesInvoicePagedResult":{"allOf":[{"$ref":"#/components/schemas/PagedResult"},{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SalesInvoice"}}}}]},"CreateSalesInvoiceRequest":{"type":"object","description":"Request payload to create a sales invoice for an administration.","properties":{"reference":{"type":"string","description":"Reference or invoice number of the sales invoice.","example":"INV-2025-00045"},"subject":{"type":"string","description":"Subject of the sales invoice.","example":"Consulting services"},"process":{"type":"boolean","description":"Should the invoice be processed out of the box."},"sendToPeppol":{"type":"boolean","description":"Indicates whether the invoice should be sent via Peppol."},"emailToCustomer":{"type":"boolean","description":"Indicates whether the invoice should be emailed to the customer."},"invoiceDate":{"type":"string","format":"date","description":"Date of the invoice.","example":"2025-01-10"},"dueDate":{"type":"string","format":"date","description":"Due date of the invoice.","example":"2025-02-09"},"paymentMethod":{"type":"string","description":"Payment method used for the sales invoice."},"paymentId":{"type":"string","description":"Payment identifier of the sales invoice.","example":"PAY-88391"},"currency":{"type":"string","description":"Currency of the invoice."},"documentFileName":{"type":"string","description":"File name of the PDF visualization."},"documentBase64":{"type":"string","description":"Base64 string of the PDF visualization."},"layout":{"type":"string","description":"Yuki layout to be used for the invoice."},"projectId":{"type":"string","format":"uuid","description":"Identifier of the project the invoice is assigned to.","example":"b6a2b240-1f1b-4a44-90d9-97b9c2e6c0f7"},"projectCode":{"type":"string","description":"Code of the project the invoice is assigned to.","example":"PRJ-001"},"remarks":{"type":"string","description":"Additional remarks of the invoice."},"priceList":{"type":"string","description":"Price list used for the invoice.","example":"Standard"},"contactId":{"type":"string","format":"uuid","description":"GUID of the contact linked to the invoice.","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479"},"invoiceLines":{"type":"array","description":"Lines to be included in the sales invoice.","items":{"type":"object","properties":{"description":{"type":"string","description":"GUID of the contact."},"productQuantity":{"type":"number","description":"Quantity of units sold in this invoice line.","example":5},"productSalesPrice":{"type":"number","description":"Sales price per unit for the line.","example":125.5},"vatCode":{"type":"string","description":"VAT Code for the invoice line."},"vatIncluded":{"type":"boolean","description":"Indicates whether VAT is included in the sales price."},"itemDescription":{"type":"string","description":"Description of the item used in the invoice line."},"itemReference":{"type":"string","description":"Reference of the item used in the invoice line."},"glAccountCode":{"type":"string","description":"GL account on which the invoice line is booked."},"remarks":{"type":"string","description":"Additional remarks for the invoice line."}}}}},"required":["invoiceDate","contactId","invoiceLines"]},"ValidationProblemDetails":{"allOf":[{"$ref":"#/components/schemas/ProblemDetails"},{"type":"object","properties":{"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"example":{"fieldName":["Error message for the field"]}}}}]},"DomainStatusRead":{"type":"string","enum":["Startup","Active","Inactive","Archived"],"description":"The status of the domain for read purposes.","example":"Active"},"Domain":{"type":"object","properties":{"id":{"type":"string","example":"e7ff8d6e-d82a-4649-be6e-523db02052d3"},"name":{"type":"string","example":"Example Domain"},"hid":{"type":"string","example":"abcd1234"},"type":{"type":"string","example":"Business"},"status":{"$ref":"#/components/schemas/DomainStatusRead"},"country":{"type":"string","example":"Netherlands"},"owner":{"type":"object","properties":{"name":{"type":"string","example":"John Doe"},"email":{"type":"string","format":"email","example":"john.doe@yuki.nl"}}},"backoffice":{"type":"object","properties":{"selfAccountingActive":{"type":"boolean","example":true},"message":{"type":"string","example":"All systems operation"},"responsible":{"type":"object","properties":{"id":{"type":"string","example":"user1"},"name":{"type":"string","example":"JaneSmith"}}},"backupResponsible":{"type":"object","properties":{"id":{"type":"string","example":"user1"},"name":{"type":"string","example":"JaneSmith"}}},"controller":{"type":"object","properties":{"id":{"type":"string","example":"user1"},"name":{"type":"string","example":"JaneSmith"}}},"accountManager":{"type":"object","properties":{"id":{"type":"string","example":"user1"},"name":{"type":"string","example":"JaneSmith"}}}}},"createdDate":{"type":"string","format":"date-time","example":"2023-01-01T10:00:00Z"},"createdBy":{"type":"string","example":"Admin User"},"modifiedDate":{"type":"string","format":"date-time","example":"2023-01-15T15:30:00Z"},"modifiedBy":{"type":"string","example":"Moderator"},"lastUserLogin":{"type":"string","format":"date-time","example":"2023-01-20T09:00:00Z"},"lastDocumentUpload":{"type":"string","format":"date-time","example":"2023-01-18T14:45:00Z"},"contract":{"type":"object","properties":{"bundle":{"type":"string","example":"Premium"},"startDate":{"type":"string","format":"date","example":"2023-01-01"},"endDate":{"type":"string","format":"date","example":"2024-01-01"}}}}},"DomainStatusCreate":{"type":"string","enum":["Startup","Active"],"description":"The status of the domain for creation purposes.","example":"Active"},"DomainBundle":{"type":"string","enum":["Minimal","Small","Medium","Large","Unlimited"],"description":"The bundle type for the domain.","example":"Medium"},"Language":{"type":"string","enum":["nl-BE","en-US","fr-BE","nl-NL"],"description":"The locale for the domain. \\\nBE: nl-BE, en-US, fr-BE. \\\nNL: en-US, nl-NL\n","example":"en-US"},"CreateDomainCompanyDetails":{"type":"object","properties":{"coCNumber":{"type":"string","description":"The legal identifier of the company.","example":"BE0123456789"},"country":{"type":"string","description":"Country ISO code. Must match the country of the portal in which the domain is created.","example":"NL"}},"required":["country"],"description":"Company details information object."},"CompanyLegalInformation":{"type":"object","properties":{"type":{"type":"integer","enum":[0,1,2,3,4,5,6,7,8,9],"description":"Legal form of the company:\n0 - Unknown\n1 - SolePartnership\n2 - PrivateLimited\n3 - PublicLimited\n4 - GeneralPartnership\n5 - LimitedPartnership\n6 - Partnership\n7 - Association\n8 - Foundation\n9 - Cooperative\n","example":2}},"description":"Company legal information object."},"DomainCompanyFinancials":{"type":"object","properties":{"pettyCashOption":{"$ref":"#/components/schemas/PettyCashOption"},"financialYearFollowsCalendarMonths":{"type":"boolean","description":"Whether the financial year follows calendar months.","example":true},"yukiStartKeepingFinancialRecordsYear":{"type":"string","description":"The year when Yuki started keeping financial records.","example":"2023"},"yukiStartKeepingFinancialRecordsDate":{"type":"string","format":"date-time","description":"The date when Yuki started keeping financial records.","example":"2023-01-01T00:00:00Z"}},"description":"Financial object containing financial-related settings."},"CompanyTaxInformation":{"type":"object","properties":{"vatLiable":{"type":"boolean","description":"Whether the company is VAT liable.","example":true},"vatNumber":{"type":"string","description":"VAT number.","example":"NL123456789B01"},"showVatReturn":{"type":"boolean","description":"Whether to show VAT return.","example":true},"autoICPDeclaration":{"type":"boolean","description":"Whether to automatically generate ICP declaration.","example":false}},"description":"Company tax information object."},"CreateCompany":{"type":"object","properties":{"name":{"type":"string","description":"The name of the company.","example":"Example Corp"},"internalCustomerCode":{"type":"string","description":"The internal code that a company is defined with by the user.","example":"CUST-001"},"details":{"$ref":"#/components/schemas/CreateDomainCompanyDetails"},"legalInformation":{"$ref":"#/components/schemas/CompanyLegalInformation"},"address":{"$ref":"#/components/schemas/ContactAddress"},"mailingAddress":{"$ref":"#/components/schemas/ContactAddress"},"financials":{"$ref":"#/components/schemas/DomainCompanyFinancials"},"taxInformation":{"$ref":"#/components/schemas/CompanyTaxInformation"}},"required":["name","details"],"description":"Company information object."},"BackOffice":{"type":"object","description":"Back office configuration settings.","required":["access"],"properties":{"access":{"type":"string","enum":["AllEmployees","EmployeesBODomain","AllEmployeesSupport","EmployeesBODomainSupport"],"description":"Access level for the back office. Determines who can access the back office. Possible values: - AllEmployees: All employees have access. - EmployeesBODomain: Only employees of the BO domain have access. - AllEmployeesSupport: All employees have access, including support. - EmployeesBODomainSupport: Only employees of the BO domain and support have access.\n","example":"AllEmployees"},"responsible":{"type":"string","nullable":true,"description":"BO Responsible user ID.\nIf value is filled it will be updated, if empty string it will be disassociated, and if null no value will be created.\n","example":"user123"},"backup":{"type":"string","nullable":true,"description":"BO Backup user ID.\nIf value is filled it will be updated, if empty string it will be disassociated, and if null no value will be created.\n","example":"user456"},"controller":{"type":"string","nullable":true,"description":"BO Controller user ID.\nIf value is filled it will be updated, if empty string it will be disassociated, and if null no value will be created.\n","example":"user789"},"accountManager":{"type":"string","nullable":true,"description":"BO Account manager user ID.\nIf value is filled it will be updated, if empty string it will be disassociated, and if null no value will be created.\n","example":"user012"}}},"CreateDomain":{"type":"object","properties":{"name":{"type":"string","description":"The domain name. Only lowercase letters, numbers and dashes are allowed, and it must start with a letter or number.","example":"my-company-name"},"status":{"$ref":"#/components/schemas/DomainStatusCreate"},"bundle":{"$ref":"#/components/schemas/DomainBundle"},"language":{"$ref":"#/components/schemas/Language"},"company":{"$ref":"#/components/schemas/CreateCompany"},"createCustomerUser":{"type":"boolean","description":"Whether to also create a user account for the customer. When true, the customer (customerName/customerEmail) is invited as the first user of the domain: an invitation email is sent and, once accepted, the customer can log in with management permissions. When false, no user account is created and no email is sent. In both cases the customer is registered as the main contact person of the company created together with the domain.","example":true},"customerName":{"type":"string","description":"The full name of the customer. Always required, regardless of createCustomerUser: together with customerEmail it identifies the main contact person of the company created together with the domain.","example":"John Doe"},"customerEmail":{"type":"string","format":"email","description":"The email address of the customer. Always required, regardless of createCustomerUser: it is stored on the main contact person of the company created together with the domain and, when createCustomerUser is true, it is also used to send the invitation email.","example":"john.doe@yuki.nl"},"backoffice":{"$ref":"#/components/schemas/BackOffice"}},"required":["name","status","bundle","language","company","createCustomerUser","customerName","customerEmail"],"additionalProperties":false,"title":"CreateDomain","description":"Schema for creating a new domain."},"UpdateBackOffice":{"type":"object","description":"Back office configuration settings for updating a domain. All fields are optional; only the fields that are supplied are updated.\n","properties":{"access":{"type":"string","enum":["AllEmployees","EmployeesBODomain","AllEmployeesSupport","EmployeesBODomainSupport"],"description":"Access level for the back office. Determines who can access the back office. If omitted, the access level is left unchanged. Possible values: - AllEmployees: All employees have access. - EmployeesBODomain: Only employees of the BO domain have access. - AllEmployeesSupport: All employees have access, including support. - EmployeesBODomainSupport: Only employees of the BO domain and support have access.\n","example":"AllEmployees"},"responsible":{"type":"string","nullable":true,"description":"BO Responsible user ID.\nIf value is filled it will be updated, if empty string it will be disassociated, and if null no value will be created.\n","example":"user123"},"backup":{"type":"string","nullable":true,"description":"BO Backup user ID.\nIf value is filled it will be updated, if empty string it will be disassociated, and if null no value will be created.\n","example":"user456"},"controller":{"type":"string","nullable":true,"description":"BO Controller user ID.\nIf value is filled it will be updated, if empty string it will be disassociated, and if null no value will be created.\n","example":"user789"},"accountManager":{"type":"string","nullable":true,"description":"BO Account manager user ID.\nIf value is filled it will be updated, if empty string it will be disassociated, and if null no value will be created.\n","example":"user012"}}},"UpdateDomain":{"type":"object","properties":{"backOffice":{"$ref":"#/components/schemas/UpdateBackOffice"}},"required":["backOffice"],"additionalProperties":false,"title":"UpdateDomain","description":"Schema for updating an existing domain."},"Dummy":{"type":"object","properties":{"message":{"type":"string","example":"Hello from the Yuki domain API dummy endpoint"},"timestamp":{"type":"string","format":"date-time","example":"2026-07-07T10:00:00Z"}}},"CancellationEffectiveDate":{"type":"string","description":"When the cancellation should become effective","enum":["CurrentMonth","NextMonth"],"x-enum-descriptions":["Last day of the current month","Last day of next month"]},"NotificationUser":{"type":"object","properties":{"name":{"type":"string","description":"User's name"},"email":{"type":"string","format":"email","description":"User's email"}},"required":["name","email"]},"DomainStatusCancel":{"type":"string","enum":["Inactive","Archived"],"description":"The status of the domain for cancel purposes.","example":"Inactive"},"DomainCancellationRequest":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/DomainStatusCancel"},"effectiveDate":{"$ref":"#/components/schemas/CancellationEffectiveDate"},"reason":{"type":"string","description":"Reason for cancellation"},"notifyUsers":{"type":"array","description":"List of users to notify about the cancellation","items":{"$ref":"#/components/schemas/NotificationUser"}}},"required":["status","effectiveDate"]},"DomainRoles":{"type":"array","description":"User roles for the domain","items":{"type":"string","enum":["Accountant","Backoffice","BackofficeController","FinAdmin","HRM","Management","Procurement","Purchase","Sales","SecurityManager","ReadOnlyUser"]}},"DomainUser":{"type":"object","properties":{"userId":{"type":"string","description":"The unique identifier of the user"},"name":{"type":"string","description":"Full name of the user","example":"John Doe"},"email":{"type":"string","format":"email","description":"User email","example":"john.doe@yuki.nl"},"roles":{"$ref":"#/components/schemas/DomainRoles"},"language":{"$ref":"#/components/schemas/Language"}},"required":["userId","name","email"]},"CreateDomainUser":{"type":"object","properties":{"firstName":{"type":"string","description":"First name of the user"},"lastName":{"type":"string","description":"Last name of the user"},"email":{"type":"string","format":"email","description":"User email","example":"john.doe@yuki.nl"},"language":{"$ref":"#/components/schemas/Language"},"roles":{"$ref":"#/components/schemas/DomainRoles"},"message":{"type":"string","description":"Additional message from the user"},"companiesIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"List of company identifiers to grant access to. \nIf not provided or empty, the user will be granted access to all companies in the domain.\n","example":["123e4567-e89b-12d3-a456-426614174000","987fcdeb-51a2-3bc4-d567-890123456789"]}},"required":["firstName","lastName","email","language","roles"]},"Portal":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the Portal","example":"3afb7b54-6144-4561-9a29-1148006f2375"},"name":{"type":"string","description":"Name of the Portal","example":"Example Portal"},"country":{"type":"string","description":"Country of the Portal in ISO-3166 (2 char) format"},"contact":{"type":"object","description":"Contact of the Portal","properties":{"id":{"type":"string","description":"ID of the contact","example":"3afb7b54-6144-4561-9a29-1148006f2375"},"name":{"type":"string","description":"Name of the contact"}}},"subPortals":{"type":"array","description":"The Portal's direct (1st generation) child portals","items":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the child Portal","example":"3afb7b54-6144-4561-9a29-1148006f2375"},"name":{"type":"string","description":"Name of the child Portal"}}}}}},"PortalUserRoles":{"type":"array","description":"User roles for portal users","items":{"type":"string","enum":["PortalAdministrator","PortalBackoffice","PortalBackofficeController","PortalDataEntry"]}},"PortalUser":{"type":"object","properties":{"id":{"type":"string","description":"The user's ID","example":"3afb7b54-6144-4561-9a29-1148006f2375"},"name":{"type":"string","description":"Full name of the user","example":"John Doe"},"email":{"type":"string","format":"email","description":"User email","example":"john.doe@yuki.nl"},"language":{"$ref":"#/components/schemas/Language"},"roles":{"$ref":"#/components/schemas/PortalUserRoles"}}},"CreatePortalUser":{"type":"object","properties":{"firstName":{"type":"string","description":"First name of the user"},"lastName":{"type":"string","description":"Last name of the user"},"email":{"type":"string","format":"email","description":"User email","example":"john.doe@yuki.nl"},"language":{"$ref":"#/components/schemas/Language"},"role":{"type":"string","description":"Role of the user","enum":["PortalAdministrator","PortalBackoffice","PortalDataEntry"]},"message":{"type":"string","description":"User message"}},"required":["firstName","lastName","email","language","role"]},"UpdatePortalUser":{"type":"object","properties":{"firstName":{"type":"string","description":"First name of the user"},"lastName":{"type":"string","description":"Last name of the user"},"language":{"$ref":"#/components/schemas/Language"},"roles":{"$ref":"#/components/schemas/PortalUserRoles"}},"required":["firstName","lastName","language","roles"]}},"responses":{"GetCompanyResponse":{"description":"Company object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Company"}}}},"BadRequestResponse":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"UnauthorizedResponse":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"}}}},"ForbiddenResponse":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"}}}},"NotFoundResponse":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundError"}}}},"InternalServerErrorResponse":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/InternalServerError"}}}},"GetContactsResponse":{"description":"Paged result of contacts","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PagedResult"},{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Contact"}}}}]},"examples":{"PagedContactsExample":{"summary":"A paged result containing both person and company contacts","value":{"totalItems":2,"offset":0,"limit":10,"items":[{"contactType":"person","id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","hid":123456,"code":"EXT001","fullName":"John William Doe","firstName":"John","middleName":"William","lastName":"Doe","addressLine1":"123 Main Street","postcode":"1234 AB","city":"Amsterdam","country":"NL","emailWork":"work@example.com","nationalRegisterNumber":"12345678901","created":"2024-01-01T12:00:00Z","modified":"2024-01-15T14:30:00Z"},{"contactType":"company","id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","hid":654321,"code":"EXT002","fullName":"Acme Corporation","addressLine1":"123 Main Street","postcode":"1234 AB","city":"Amsterdam","country":"NL","vatNumber":"NL123456789B01","cocNumber":"12345678","mainContactPersonId":"f47ac10b-58cc-4372-a567-0e02b2c3d479","mainContactPersonName":"John Doe","created":"2024-01-01T12:00:00Z","modified":"2024-01-15T14:30:00Z"}]}}}}}},"CreateContactResponse":{"description":"Contact created successfully. Returns the ID of the newly created contact.","content":{"application/json":{"schema":{"type":"object","description":"Response containing the unique identifier of the newly created contact.","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the newly created contact","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479"}},"required":["id"]}}}},"GetContactResponse":{"description":"Single contact object retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"},"examples":{"ContactPersonExample":{"summary":"A contact of type Person","value":{"contactType":"person","id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","hid":123456,"code":"EXT001","fullName":"John William Doe","firstName":"John","middleName":"William","lastName":"Doe","addressLine1":"123 Main Street","postcode":"1234 AB","city":"Amsterdam","country":"NL","emailWork":"work@example.com","nationalRegisterNumber":"12345678901","created":"2024-01-01T12:00:00Z","modified":"2024-01-15T14:30:00Z"}},"ContactCompanyExample":{"summary":"A contact of type Company","value":{"contactType":"company","id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","hid":654321,"code":"EXT002","fullName":"Acme Corporation","addressLine1":"123 Main Street","postcode":"1234 AB","city":"Amsterdam","country":"NL","vatNumber":"NL123456789B01","cocNumber":"12345678","mainContactPersonId":"f47ac10b-58cc-4372-a567-0e02b2c3d479","mainContactPersonName":"John Doe","created":"2024-01-01T12:00:00Z","modified":"2024-01-15T14:30:00Z"}}}}}},"DeleteContactResponse":{"description":"Contact deleted successfully"},"ConflictResponse":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConflictError"}}}},"GetVatCodesResponse":{"description":"VAT codes retrieved successfully","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PagedResult"},{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/VatCode"}}}}]}}}},"SalesInvoicesResponse":{"description":"Paged result of sales invoices","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalesInvoicePagedResult"}}}},"CreateSalesInvoiceResponse":{"description":"Sales invoice created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalesInvoice"}}}},"SalesInvoiceResponse":{"description":"Sales invoice retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SalesInvoice"}}}},"DeleteSalesInvoiceResponse":{"description":"Sales invoice deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Success message","example":"Sales invoice deleted successfully"}}}}}},"GetCompanyPagedResponse":{"description":"Paged result of companies","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PagedResult"},{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Company"}}}}]}}}},"GetDomainsPagedResponse":{"description":"Paged result of domains","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PagedResult"},{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Domain"}}}}]}}}},"CreateDomainResponse":{"description":"Domain successfully created","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the created domain","example":"3afb7b54-6144-4561-9a29-1148006f2375"},"companyId":{"type":"string","description":"The unique identifier of the company created together with the domain","example":"8c2e0d11-4b7a-4f3e-9d02-5a6f31c9e842"}}}}}},"GetDomainResponse":{"description":"Domain object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Domain"}}}},"GetDummyResponse":{"description":"Static dummy payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dummy"}}}},"DomainUsersPagedResultResponse":{"description":"Paged result of domain users","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PagedResult"},{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DomainUser"}}}}]}}}},"CreateDomainUserResponse":{"description":"Domain user successfully created","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the created domain user","example":"3afb7b54-6144-4561-9a29-1148006f2375"}}}}}},"DomainUserResponse":{"description":"Successful domain user search response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainUser"}}}},"PortalResponse":{"description":"Portal object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Portal"}}}},"PortalUsersPagedResultResponse":{"description":"Paged result of portal users","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/PagedResult"},{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PortalUser"}}}}]}}}},"PortalUserCreateResponse":{"description":"Portal user created successfully","headers":{"Location":{"description":"The URL of the newly created user resource","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the created user","example":"3afb7b54-6144-4561-9a29-1148006f2375"}}}}}},"PortalUsersResponse":{"description":"Portal user object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortalUser"}}}}},"parameters":{"AuthorizationHeader":{"name":"Authorization","in":"header","required":true,"description":"Bearer token for authentication","schema":{"type":"string"}},"ContentTypeHeader":{"name":"Content-Type","in":"header","required":true,"description":"Content type of the request body","schema":{"type":"string","default":"application/json"}},"DomainIdPath":{"name":"domain-id","in":"path","required":true,"description":"The domain name","example":"3afb7b54-6144-4561-9a29-1148006f2375","schema":{"type":"string"}},"CompanyIdPath":{"name":"company-id","in":"path","required":true,"description":"The company ID","example":"3afb7b54-6144-4561-9a29-1148006f2375","schema":{"type":"string"}},"parameters_CompanyIdPath":{"name":"company-id","in":"path","required":true,"description":"The ID of the company","schema":{"type":"string","format":"uuid"}},"OffsetQuery":{"name":"offset","in":"query","required":false,"description":"The number of items to skip before starting to collect the result set","schema":{"type":"integer"}},"LimitQuery":{"name":"limit","in":"query","required":false,"description":"The numbers of items to return","schema":{"type":"integer"}},"ContactIdPath":{"name":"contact-id","in":"path","required":true,"description":"The ID of the contact","schema":{"type":"string","format":"uuid"}},"SalesInvoiceIdPath":{"name":"sales-invoice-id","in":"path","required":true,"description":"Unique identifier of the sales invoice within the administration","schema":{"type":"string","format":"uuid"}},"SalesInvoiceReferenceQuery":{"name":"reference","in":"query","required":true,"description":"Reference or invoice number to look up a sales invoice","schema":{"type":"string"}},"PortalIdPath":{"name":"portal-id","in":"path","required":true,"description":"The portal id","example":"3afb7b54-6144-4561-9a29-1148006f2375","schema":{"type":"string"}},"EmailQuery":{"name":"email","in":"query","required":true,"description":"Email address to search for","schema":{"type":"string","format":"email"}},"UserIdPath":{"name":"user-id","in":"path","required":true,"description":"The user id","example":"3afb7b54-6144-4561-9a29-1148006f2375","schema":{"type":"string"}},"GetUserIdPath":{"name":"user-identifier","in":"path","required":true,"description":"The user id","example":"3afb7b54-6144-4561-9a29-1148006f2375","schema":{"type":"string"}},"DomainNamePath":{"name":"domain-name","in":"path","required":true,"description":"The domain name","schema":{"type":"string"}},"DomainNameQuery":{"name":"domain-name","in":"query","required":true,"description":"The domain name","schema":{"type":"string"}},"CustomerCodeQuery":{"name":"customerCode","in":"query","required":true,"description":"The internal customer code to search for","schema":{"type":"string"}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT"},"vismaConnectPortalUser":{"type":"oauth2","description":"Visma Connect token belonging to a **Portal User** - an employee of an accounting portal. The token carries a `portal-id` claim, and the portal it identifies must match the portal in the route. Unless an endpoint says otherwise, the caller's roles are resolved against the portal.\n","flows":{"authorizationCode":{"authorizationUrl":"https://connect.identity.stagaws.visma.com/connect/authorize","tokenUrl":"https://connect.identity.stagaws.visma.com/connect/token","scopes":{"yukiapi:domain:companies:read":"Allows reading information of a Company","yukiapi:domain:companies:update":"Allows the update of a Company","yukiapi:portal:portals:read":"Allows reading portal information","yukiapi:domain:domains:read":"Allows reading domains information","yukiapi:domain:domains:write":"Allows modifications of domain information, may include create/update","yukiapi:domain:domains:create":"Allows the creation of new domains","yukiapi:domain:domains:update":"Allows updating existing domain information","yukiapi:domain:domains:delete":"Allows the deletion of domain data","yukiapi:domain:users:read":"Allows reading of domain user data","yukiapi:domain:users:write":"Allows the update of domain user data, may include create/update","yukiapi:domain:users:update":"Allows updating a Domain User","yukiapi:domain:users:delete":"Allows the deletion of Domain Users","yukiapi:portal:portals:write":"Allows updating existing portal information","yukiapi:portal:users:read":"Allows reading Portal user data","yukiapi:portal:users:write":"Allows the update of Portal user, may include create/update","yukiapi:portal:users:update":"Allows updating an existing Portal User","yukiapi:portal:users:delete":"Allows the deletion of a Portal User"}}}},"vismaConnectDomainUser":{"type":"oauth2","description":"Visma Connect token belonging to a **Domain User** - a user in a domain with access to one or more companies. The company the token was issued for must  match the `company-id` in the route. The caller's roles are resolved in that company's domain.\n","flows":{"authorizationCode":{"authorizationUrl":"https://connect.identity.stagaws.visma.com/connect/authorize","tokenUrl":"https://connect.identity.stagaws.visma.com/connect/token","scopes":{"yukidev:invoices:read":"Allows reading VAT code information","yukiapi:company:contacts:read":"Allows reading contacts information","yukiapi:company:contacts:write":"Allows modifications of contacts information, may include create/update","yukiapi:company:contacts:create":"Allows the creation of new contacts","yukiapi:company:contacts:update":"Allows updating existing contacts information","yukiapi:company:contacts:delete":"Allows the deletion of contacts data","yukiapi:invoices:delete":"Allows the deletion of a contact","yukiapi:invoices:write":"Allows creating and modifying invoices and contacts","yukiapi:company:sales-invoices:read":"Allows reading sales invoices","yukiapi:company:sales-invoices:write":"Allows modifications of sales invoices","yukiapi:company:sales-invoices:create":"Allows creation of sales invoices","yukiapi:company:sales-invoices:delete":"Allows deletion of sales invoices","yukiapi:invoices:read":"Allows reading invoices and contacts"}}}}}},"tags":[{"name":"Company","description":"Operations related to companies"},{"name":"Contact","description":"Operations related to contacts"},{"name":"VAT","description":"Operations related to VAT codes of an administration"},{"name":"Sales Invoice","description":"Operations for managing sales invoices"},{"name":"Domain","description":"Operations related to domains"},{"name":"Domain User","description":"Operations related to users of domain"},{"name":"Portal","description":"Operations related to portals"},{"name":"Portal User","description":"Operations related to portal users"}],"security":[{"bearerAuth":[]}]}
```
