{ "openapi": "3.0.0", "info": { "title": "Candis API", "description": "Candis API for exporting approved invoices and postings, managing master core data (contacts, general ledger accounts, cost dimensions, delivery costs), and reading invoice, reimbursement item, and purchase request data. Reconstructed by the API Evangelist enrichment pipeline from the per-operation OpenAPI fragments embedded in the Candis ReadMe developer reference (developer.candis.io).", "version": "1.0.0", "contact": { "name": "Candis", "url": "https://developer.candis.io/" }, "x-apievangelist": { "method": "searched", "source": "Reconstructed from per-operation OpenAPI fragments published in the Candis developer reference (https://developer.candis.io/reference/*) via ReadMe; merged and filtered to Candis /v1/organizations operations by the API Evangelist enrichment pipeline.", "generated": "2026-07-18" } }, "servers": [ { "url": "https://api.candis.io", "description": "Production" } ], "paths": { "/v1/organizations/{organizationId}/imports/cost-centers": { "post": { "operationId": "createCostCenter", "summary": "Create Cost Dimensions", "description": "Receive requests and attempts to create Cost Dimensions in Candis", "parameters": [ { "name": "organizationId", "required": true, "in": "path", "description": "The organization ID.", "example": "alpha-organization", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "oneOf": [ { "title": "Cost Center", "type": "object", "properties": { "code": { "type": "string", "description": "The unique code of the cost dimension", "example": "ABC-000" }, "name": { "type": "string", "description": "Name of the cost dimension", "example": "ABC-000" }, "type": { "type": "string", "description": "Type of the cost dimension", "example": "COST_CENTER", "enum": [ "COST_CENTER" ] } }, "required": [ "code", "name", "type" ] }, { "title": "Cost Object", "type": "object", "properties": { "code": { "type": "string", "description": "The unique code of the cost dimension", "example": "ABC-000" }, "name": { "type": "string", "description": "Name of the cost dimension", "example": "ABC-000" }, "type": { "type": "string", "description": "Type of the cost dimension", "example": "COST_OBJECT", "enum": [ "COST_OBJECT" ] } }, "required": [ "code", "name", "type" ] }, { "title": "Custom Cost Dimension", "type": "object", "properties": { "code": { "type": "string", "description": "The unique code of the cost dimension", "example": "ABC-000" }, "name": { "type": "string", "description": "Name of the cost dimension", "example": "ABC-000" }, "type": { "type": "string", "description": "Type of the cost dimension", "example": "CUSTOM_COST_DIMENSION", "enum": [ "CUSTOM_COST_DIMENSION" ] } }, "required": [ "code", "name", "type" ] } ] } } } } }, "responses": { "202": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "processId": { "type": "string", "description": "The unique identifier of the import request.", "example": "9924bb4a-7ee9-4b6a-ac7b-30fdbe6b0031" } }, "required": [ "processId" ] } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "503": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } } }, "tags": [ "Core Data" ], "security": [ { "bearer": [] } ] }, "put": { "operationId": "updateCostCenter", "summary": "Update Cost Dimensions", "description": "Receive requests and attempts to update Cost Dimensions in Candis", "parameters": [ { "name": "organizationId", "required": true, "in": "path", "description": "The organization ID.", "example": "alpha-organization", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "oneOf": [ { "title": "Cost Center", "type": "object", "properties": { "code": { "type": "string", "description": "The unique code of the cost dimension", "example": "ABC-000" }, "name": { "type": "string", "description": "Name of the cost dimension", "example": "ABC-000", "nullable": true }, "isArchived": { "type": "boolean", "description": "Flag to deactivate or activate a cost dimension", "example": true }, "type": { "type": "string", "description": "Type of the cost dimension", "example": "COST_CENTER", "enum": [ "COST_CENTER" ] } }, "required": [ "code", "type" ] }, { "title": "Cost Object", "type": "object", "properties": { "code": { "type": "string", "description": "The unique code of the cost dimension", "example": "ABC-000" }, "name": { "type": "string", "description": "Name of the cost dimension", "example": "ABC-000", "nullable": true }, "isArchived": { "type": "boolean", "description": "Flag to deactivate or activate a cost dimension", "example": true }, "type": { "type": "string", "description": "Type of the cost dimension", "example": "COST_OBJECT", "enum": [ "COST_OBJECT" ] } }, "required": [ "code", "type" ] }, { "title": "Custom Cost Dimension", "type": "object", "properties": { "code": { "type": "string", "description": "The unique code of the cost dimension", "example": "ABC-000" }, "name": { "type": "string", "description": "Name of the cost dimension", "example": "ABC-000", "nullable": true }, "isArchived": { "type": "boolean", "description": "Flag to deactivate or activate a cost dimension", "example": true }, "type": { "type": "string", "description": "Type of the cost dimension", "example": "CUSTOM_COST_DIMENSION", "enum": [ "CUSTOM_COST_DIMENSION" ] } }, "required": [ "code", "type" ] } ] } } } } }, "responses": { "202": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "processId": { "type": "string", "description": "The unique identifier of the import request.", "example": "9924bb4a-7ee9-4b6a-ac7b-30fdbe6b0031" } }, "required": [ "processId" ] } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "503": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } } }, "tags": [ "Core Data" ], "security": [ { "bearer": [] } ] } }, "/v1/organizations/{organizationId}/exports": { "post": { "operationId": "createExport", "summary": "Create an Export", "description": "Create an Export and return basic details. Initial status of the Export will be \"EXPORTING\".", "parameters": [ { "name": "organizationId", "required": true, "in": "path", "description": "The organization ID.", "example": "alpha-organization", "schema": { "format": "slug", "type": "string" } } ], "requestBody": { "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { "entityType": { "type": "string", "description": "Posting Type for which you need to create an Export for.", "example": "DOCUMENT", "default": "DOCUMENT", "enum": [ "DOCUMENT", "REIMBURSEMENT_ITEM", "CARD_TRANSACTION" ], "nullable": true } } } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "The unique identifier of the export.", "example": "86e29aff-ba75-492d-85f6-80d802c4fe69" }, "postingsCount": { "type": "number", "description": "The number of postings in the export.", "example": 10 }, "status": { "type": "string", "description": "Current status of the export.

EXPORTING: The export is in progress.", "example": "EXPORTING", "enum": [ "EXPORTING" ] }, "createdAt": { "format": "date-time", "type": "string", "description": "The date and time when the export was initiated.", "example": "2021-08-31T12:00:00Z" } }, "required": [ "id", "postingsCount", "status", "createdAt" ] } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "503": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } } }, "tags": [ "Exports" ], "security": [ { "bearer": [] } ] }, "get": { "operationId": "getExports", "summary": "Get a list Exports", "description": "Get a list of past Exports in the Organization.", "parameters": [ { "name": "offset", "required": false, "in": "query", "description": "The offset of the first element in the list.", "example": 0, "schema": { "minimum": 0, "default": 0, "type": "number" } }, { "name": "limit", "required": false, "in": "query", "description": "The maximum number of elements to return.", "example": 50, "schema": { "minimum": 1, "default": 50, "type": "number" } }, { "name": "organizationId", "required": true, "in": "path", "description": "The organization ID.", "example": "alpha-organization", "schema": { "format": "slug" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "exports": { "description": "List of exports.", "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The unique identifier of the export.", "example": "86e29aff-ba75-492d-85f6-80d802c4fe69" }, "postingsCount": { "type": "number", "description": "The number of postings in the export.", "example": 10 }, "status": { "type": "string", "description": "Current status of the export.

EXPORTING: The export processing is still in progress.
EXPORTED: The export is completed.
FAILED: The export failed.
PARTIALLY_EXPORTED: The export was partially successful.", "example": "EXPORTED", "enum": [ "EXPORTING", "EXPORTED", "FAILED", "PARTIALLY_EXPORTED" ] }, "createdAt": { "format": "date-time", "type": "string", "description": "The date and time when the export was initiated.", "example": "2024-01-01T12:00:00Z" } }, "required": [ "id", "postingsCount", "status", "createdAt" ] } }, "pagination": { "description": "Pagination Data providing information and the record count, page size and total count", "allOf": [ { "type": "object", "properties": { "pageCount": { "type": "number", "example": 10, "description": "This is the total number of pages available with records" }, "pageSize": { "type": "number", "example": 50, "description": "This is the length of size of the current page" }, "totalCount": { "type": "number", "example": 500, "description": "This is the total count of export records available" } }, "required": [ "pageCount", "pageSize", "totalCount" ] } ] } }, "required": [ "exports", "pagination" ] } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "503": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } } }, "tags": [ "Exports" ], "security": [ { "bearer": [] } ] } }, "/v1/organizations/{organizationId}/imports/general-ledger-accounts": { "post": { "operationId": "createGeneralLedgerAccounts", "summary": "Create General Ledger Accounts", "description": "Receive requests and attempts to create General Ledger Accounts in Candis", "parameters": [ { "name": "organizationId", "required": true, "in": "path", "description": "The organization ID.", "example": "alpha-organization", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "accountCode": { "type": "string", "description": "The unique General Ledger Account Code", "example": "ABC-000" }, "name": { "type": "string", "description": "General Ledger Account Label", "example": "ABC-000" } }, "required": [ "accountCode", "name" ] } } } } }, "responses": { "202": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "processId": { "type": "string", "description": "The unique identifier of the import request.", "example": "9924bb4a-7ee9-4b6a-ac7b-30fdbe6b0031" } }, "required": [ "processId" ] } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "503": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } } }, "tags": [ "Core Data" ], "security": [ { "bearer": [] } ] }, "put": { "operationId": "updateGeneralLedgerAccounts", "summary": "Update General Ledger Accounts", "description": "Receive requests and attempts to update General Ledger Accounts in Candis", "parameters": [ { "name": "organizationId", "required": true, "in": "path", "description": "The organization ID.", "example": "alpha-organization", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "accountCode": { "type": "string", "description": "The unique General Ledger Account Code", "example": "ABC-000" }, "name": { "type": "string", "description": "General Ledger Account Label", "example": "ABC-000", "nullable": true }, "isArchived": { "type": "boolean", "description": "Flag to deactivate a General Ledger Account entry", "example": true, "default": false } }, "required": [ "accountCode" ] } } } } }, "responses": { "202": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "processId": { "type": "string", "description": "The unique identifier of the import request.", "example": "9924bb4a-7ee9-4b6a-ac7b-30fdbe6b0031" } }, "required": [ "processId" ] } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "503": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } } }, "tags": [ "Core Data" ], "security": [ { "bearer": [] } ] } }, "/v1/organizations/{organizationId}/files/{fileId}": { "get": { "operationId": "downloadFile", "summary": "Download file by ID", "description": "Download PDF or XML file by ID.", "parameters": [ { "name": "fileId", "required": true, "in": "path", "description": "File ID", "schema": { "type": "string" } }, { "name": "organizationId", "required": true, "in": "path", "description": "The organization ID.", "example": "alpha-organization", "schema": {} } ], "responses": { "200": { "content": { "application/json": { "schema": { "type": "string", "format": "binary" } } }, "description": "" }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "503": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } } }, "security": [ { "bearer": [] } ], "tags": [ "Exports" ] } }, "/v1/organizations/{organizationId}/exports/{exportId}": { "get": { "operationId": "getExport", "summary": "Get an Export", "description": "Get an Export details by ID.", "parameters": [ { "name": "exportId", "required": true, "in": "path", "description": "The export ID.", "example": "86e29aff-ba75-492d-85f6-80d802c4fe69", "schema": { "type": "string" } }, { "name": "organizationId", "required": true, "in": "path", "description": "The organization ID.", "example": "alpha-organization", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "The unique identifier of the export.", "example": "86e29aff-ba75-492d-85f6-80d802c4fe69" }, "postingsCount": { "type": "number", "description": "The number of postings in the export.", "example": 10 }, "status": { "type": "string", "description": "Current status of the export.

EXPORTING: The export processing is still in progress.
EXPORTED: The export is completed.
FAILED: The export failed.
PARTIALLY_EXPORTED: The export was partially successful.", "example": "EXPORTED", "enum": [ "EXPORTING", "EXPORTED", "FAILED", "PARTIALLY_EXPORTED" ] }, "createdAt": { "format": "date-time", "type": "string", "description": "The date and time when the export was initiated.", "example": "2024-01-01T12:00:00Z" } }, "required": [ "id", "postingsCount", "status", "createdAt" ] } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "404": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "503": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } } }, "tags": [ "Exports" ], "security": [ { "bearer": [] } ] } }, "/v1/organizations/info": { "get": { "operationId": "getOrganization", "summary": "Get Organization", "description": "Get Organization details in which the User is a member.", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "description": "Candis unique identifier of the organization.", "example": "alpha-organization" }, "name": { "type": "string", "description": "Name of the organization.", "example": "Alpha Organization" } }, "required": [ "id", "name" ] } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } }, "403": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } }, "404": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } }, "500": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } } }, "security": [ { "bearer": [] } ], "tags": [ "Organizations" ] } }, "/v1/organizations/{organizationId}/imports/{processId}": { "get": { "operationId": "getImportLogs", "summary": "Get Import Logs", "description": "Returns Status Summary on Core data Import Request received", "parameters": [ { "name": "organizationId", "required": true, "in": "path", "description": "The organization ID.", "example": "alpha-organization", "schema": { "type": "string" } }, { "name": "processId", "required": true, "in": "path", "description": "The import Request ID.", "example": "9924bb4a-7ee9-4b6a-ac7b-30fdbe6b0031", "schema": { "type": "string" } }, { "name": "offset", "required": false, "in": "query", "description": "The offset of the first element in the list.", "example": 0, "schema": { "minimum": 0, "default": 0, "type": "number" } }, { "name": "limit", "required": false, "in": "query", "description": "The maximum number of elements to return.", "example": 50, "schema": { "minimum": 1, "default": 50, "type": "number" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "jobStatus": { "type": "string", "description": "The status of the import job request.", "example": "PROCESSED", "enum": [ "PROCESSED", "PROCESSING" ] }, "events": { "description": "List of Import Logs.", "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "The unique identifier for the code data", "example": "ABC-000" }, "processId": { "type": "string", "description": "The unique identifier of the import request.", "example": "9924bb4a-7ee9-4b6a-ac7b-30fdbe6b0031" }, "organizationId": { "type": "string", "description": "The organization ID.", "example": "alpha-organization" }, "status": { "type": "string", "description": "The status of the core data entity import.", "example": "FAILED", "enum": [ "FAILED", "IMPORTED" ] }, "importErrors": { "type": "array", "description": "The Error encountered while trying to process the request.\n`ACCOUNT_CODE_ALREADY_EXIST` `ACCOUNT_CODE_NOT_EXISTING` `COST_CENTER_ALREADY_EXIST` `COST_CENTER_NOT_EXISTING` `BOOKING_KEY_ALREADY_EXIST` `BOOKING_KEY_NOT_FOUND` `CONTACT_ALREADY_EXIST` `CONTACT_NOT_EXISTING` `DUPLICATE_CONTACT_NAME` `NO_UPDATABLE_INPUT` `PAYMENT_CONDITION_ALREADY_EXIST` `PAYMENT_CONDITION_NOT_FOUND` `PAYMENT_CONDITION_IS_ARCHIVED` `UNKNOWN_ERROR` `INVALID_INPUT` `INVALID_TAX_NUMBER` `INVALID_IBAN`", "example": [ "ACCOUNT_CODE_ALREADY_EXIST" ], "items": { "type": "string", "enum": [ "ACCOUNT_CODE_ALREADY_EXIST", "ACCOUNT_CODE_NOT_EXISTING", "COST_CENTER_ALREADY_EXIST", "COST_CENTER_NOT_EXISTING", "BOOKING_KEY_ALREADY_EXIST", "BOOKING_KEY_NOT_FOUND", "CONTACT_ALREADY_EXIST", "CONTACT_NOT_EXISTING", "DUPLICATE_CONTACT_NAME", "NO_UPDATABLE_INPUT", "PAYMENT_CONDITION_ALREADY_EXIST", "PAYMENT_CONDITION_NOT_FOUND", "PAYMENT_CONDITION_IS_ARCHIVED", "UNKNOWN_ERROR", "INVALID_INPUT", "INVALID_TAX_NUMBER", "INVALID_IBAN" ] } }, "operation": { "type": "string", "description": "The import request operation", "example": "CREATE", "enum": [ "CREATE", "UPDATE" ] }, "createdAt": { "format": "date-time", "type": "string", "description": "The date and time when the import was processed.", "example": "2024-01-01T12:00:00Z" } }, "required": [ "id", "processId", "organizationId", "status", "operation", "createdAt" ] } }, "pagination": { "description": "Pagination Data providing information and the record count, page size and total count", "allOf": [ { "type": "object", "properties": { "pageCount": { "type": "number", "example": 10, "description": "This is the total number of pages available with records" }, "pageSize": { "type": "number", "example": 50, "description": "This is the length of size of the current page" }, "totalCount": { "type": "number", "example": 500, "description": "This is the total count of export records available" } }, "required": [ "pageCount", "pageSize", "totalCount" ] } ] } }, "required": [ "jobStatus", "events", "pagination" ] } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "503": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } } }, "tags": [ "Core Data" ], "security": [ { "bearer": [] } ] } }, "/v1/organizations/{organizationId}/exports/{exportId}/postings": { "get": { "operationId": "getExportPostings", "summary": "Get a list of Export Postings", "description": "Get a list of Postings that were exported in the Export.", "parameters": [ { "name": "exportId", "required": true, "in": "path", "description": "The export ID.", "example": "86e29aff-ba75-492d-85f6-80d802c4fe69", "schema": { "type": "string" } }, { "name": "organizationId", "required": true, "in": "path", "description": "The organization ID.", "example": "alpha-organization", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "successfulPostings": { "type": "array", "description": "Successfully exported invoices", "items": { "oneOf": [ { "title": "Invoice Posting", "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of Entity", "example": "e4cf0d1b-8514-4437-9b7f-2648b87ec8f5" }, "entityGuid": { "type": "string", "description": "Candis Unique identifier of the posting.", "example": "e4cf0d1b-8514-4437-9b7f-2648b87ec8f5" }, "status": { "type": "string", "description": "Status of the posting.
Exported: The posting was successfully exported.", "enum": [ "EXPORTED" ], "example": "EXPORTED" }, "amount": { "description": "Total Amount information of the posting.", "allOf": [ { "type": "object", "properties": { "value": { "type": "number", "description": "Total amount of the posting.", "example": 100 }, "currencyCode": { "type": "string", "description": "ISO 4217 currency code.", "example": "EUR" } }, "required": [ "value", "currencyCode" ] } ] }, "contact": { "description": "Contact information.", "allOf": [ { "type": "object", "properties": { "accountsPayableNumber": { "type": "string", "description": "Accounts payable number.", "example": "7000001" }, "accountsReceivableNumber": { "type": "string", "description": "Accounts receivable number.", "example": "7000004" }, "name": { "type": "string", "description": "Name of the contact.", "example": "John Doe" } } } ] }, "invoiceId": { "type": "string", "description": "Invoice ID / Invoice Number mentioned on the invoice.", "example": "1234" }, "invoiceDate": { "type": "string", "format": "date-time", "description": "Date of the posting.", "example": "2024-01-01T00:00:00Z" }, "purchaseOrder": { "description": "Purchase Order Information.", "allOf": [ { "type": "object", "properties": { "orderNumber": { "type": "string", "description": "Purchase Order number attached to the Posting.", "example": "PO-001" } }, "required": [ "orderNumber" ] } ] }, "files": { "description": "Downloadable files information.", "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "File id", "example": "60ace9d227d897fc64add503" }, "url": { "type": "string", "description": "Download URL of the file.", "example": "https://api.candis.io/v1/organization/org-id/files/60ace9d227d897fc64add503" }, "name": { "type": "string", "description": "Name of the file.", "example": "invoice.pdf" }, "type": { "type": "string", "enum": [ "AUDIT_TRAIL", "ATTACHMENT", "INVOICE", "XRECHNUNG" ], "description": "Type of the file.

AUDIT_TRAIL: Contains all the activity related to processing of the posting.
ATTACHMENT: Contains additional information related to the posting.
INVOICE: The invoice pdf document.
XRECHNUNG: The XRechnung xml document.", "example": "INVOICE" } }, "required": [ "id", "url", "name", "type" ] } }, "url": { "type": "string", "description": "Candis URL of the posting.", "example": "https://my.candis.io/alpha-organization/archive/e4cf0d1b-8514-4437-9b7f-2648b87ec8f5" }, "accountingArea": { "description": "Accounting Area Information.", "allOf": [ { "type": "object", "properties": { "name": { "type": "string", "description": "Accounting Area attached to the Posting.", "example": "AA-001" }, "description": { "type": "string", "description": "Description of Accounting Area attached to the Posting.", "example": "Accounting Area 1" } }, "required": [ "name", "description" ] } ] }, "deliveryDate": { "type": "string", "format": "date-time", "description": "Date of the posting.", "example": "2024-01-01T00:00:00Z" }, "invoiceFormat": { "type": "string", "enum": [ "REGULAR", "XRECHNUNG", "ZUGFERD" ], "description": "Format of the invoice.
REGULAR: Regular invoice format.
XRECHNUNG: XRechnung invoice format.
ZUGFERD: ZUGFeRD invoice format.", "example": "REGULAR" }, "dueDate": { "type": "string", "format": "date-time", "description": "Due date of the booking.", "example": "2024-01-01T00:00:00Z" }, "paymentCondition": { "description": "Payment Condition Details", "allOf": [ { "type": "object", "properties": { "name": { "type": "string", "description": "Payment Condition Name", "example": "Credit Card Discount", "nullable": true }, "discountPercentage": { "type": "number", "description": "Discount Percentage", "example": 10, "nullable": true }, "discountPaymentDate": { "type": "string", "format": "date-time", "description": "Discount Payment Date", "example": "2024-01-01T00:00:00Z" } } } ] }, "documentType": { "type": "string", "description": "Document type of the Posting.", "example": "Incoming Invoice, Outgoing Invoice" }, "splitPostings": { "description": "Split-postings can be a part of a posting. A split-posting contains a specific portion of an invoice, which could be necessary due to the need for a different GLA (General Ledger Account) for an amount or when more than one tax is applicable to an invoice.", "type": "array", "items": { "type": "object", "properties": { "note": { "type": "string", "description": "Note for the split-posting.", "example": "Some note" }, "amount": { "type": "number", "description": "Amount of the split-posting.", "example": 100 }, "costCenter": { "description": "Cost center.", "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "description": "Code of the cost center.", "example": "CC-123" } }, "required": [ "code" ] } ] }, "costObject": { "description": "Cost object.", "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "description": "Code of the cost center.", "example": "CC-123" } }, "required": [ "code" ] } ] }, "customCostDimension": { "description": "Custom cost dimension.", "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "description": "Code of the cost center.", "example": "CC-123" } }, "required": [ "code" ] } ] }, "bookingKey": { "description": "Booking key.", "allOf": [ { "type": "object", "properties": { "taxCode": { "type": "string", "description": "Tax code.", "example": "9" } }, "required": [ "taxCode" ] } ] }, "postingText": { "type": "string", "description": "Posting text.", "example": "Some text" }, "unitPrice": { "type": "number", "description": "Unit price of the booking.", "example": 10.5 }, "quantity": { "type": "number", "description": "Quantity of the booking.", "example": 4 }, "netAmount": { "type": "number", "description": "Net amount of the booking.", "example": 42.02 }, "taxAmount": { "type": "number", "description": "Tax amount of the booking.", "example": 7.98 }, "type": { "type": "string", "description": "Booking association type. ITEM: Line item booking. ADDITIONAL_DELIVERY_COST: Additional delivery cost booking.", "example": "ITEM" }, "purchaseOrderMetadata": { "description": "Purchase order metadata associated with the booking.", "type": "array", "items": { "type": "object", "properties": { "orderNumber": { "type": "string", "description": "Purchase order number.", "example": "PO-001" }, "lineNumber": { "type": "number", "description": "Purchase order line number.", "example": 1 }, "itemNumber": { "type": "string", "description": "Purchase order item number.", "example": "1000" }, "locationCode": { "type": "string", "description": "Purchase order location code.", "example": "LOC-001", "nullable": true }, "externalLineId": { "type": "string", "description": "Purchase order external line ID.", "example": "e4cf0d1b-8514-4437-9b7f-2648b87ec8f5", "nullable": true } }, "required": [ "orderNumber", "lineNumber", "itemNumber" ] } }, "goodsReceiptMetadata": { "description": "Goods receipt metadata associated with the booking.", "type": "array", "items": { "type": "object", "properties": { "receiptNumber": { "type": "string", "description": "Goods receipt number.", "example": "GR-001" }, "lineNumber": { "type": "number", "description": "Goods receipt line number.", "example": 1 }, "itemNumber": { "type": "string", "description": "Goods receipt item number.", "example": "1000" }, "locationCode": { "type": "string", "description": "Goods receipt location code.", "example": "LOC-001", "nullable": true }, "externalLineId": { "type": "string", "description": "Goods receipt external line ID.", "example": "e4cf0d1b-8514-4437-9b7f-2648b87ec8f5", "nullable": true } }, "required": [ "receiptNumber", "lineNumber", "itemNumber" ] } }, "additionalDeliveryCostsMetadata": { "description": "Additional delivery costs metadata associated with the booking.", "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string", "description": "Additional delivery cost code.", "example": "FREIGHT" } }, "required": [ "code" ] } }, "generalLedgerAccount": { "type": "string", "description": "General ledger account.", "example": "8400" } }, "required": [ "amount", "generalLedgerAccount" ] } }, "type": { "type": "string", "enum": [ "DOCUMENT" ] } }, "required": [ "id", "entityGuid", "status", "amount", "contact", "invoiceId", "invoiceDate", "files", "url", "invoiceFormat", "documentType", "splitPostings", "type" ] }, { "title": "Credit Cards Posting", "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of Entity", "example": "e4cf0d1b-8514-4437-9b7f-2648b87ec8f5" }, "entityGuid": { "type": "string", "description": "Candis Unique identifier of the posting.", "example": "e4cf0d1b-8514-4437-9b7f-2648b87ec8f5" }, "status": { "type": "string", "description": "Status of the posting.
Exported: The posting was successfully exported.", "enum": [ "EXPORTED" ], "example": "EXPORTED" }, "amount": { "description": "Total Amount information of the posting.", "allOf": [ { "type": "object", "properties": { "value": { "type": "number", "description": "Total amount of the posting.", "example": 100 }, "currencyCode": { "type": "string", "description": "ISO 4217 currency code.", "example": "EUR" } }, "required": [ "value", "currencyCode" ] } ] }, "contact": { "description": "Contact information.", "allOf": [ { "type": "object", "properties": { "accountsPayableNumber": { "type": "string", "description": "Accounts payable number.", "example": "7000001" }, "accountsReceivableNumber": { "type": "string", "description": "Accounts receivable number.", "example": "7000004" }, "name": { "type": "string", "description": "Name of the contact.", "example": "John Doe" } } } ] }, "invoiceId": { "type": "string", "description": "Invoice ID / Invoice Number mentioned on the invoice or Transaction number for posting without invoice", "example": "1234" }, "invoiceDate": { "type": "string", "format": "date-time", "description": "Date of the posting.", "example": "2024-01-01T00:00:00Z" }, "purchaseOrder": { "description": "Purchase Order Information.", "allOf": [ { "type": "object", "properties": { "orderNumber": { "type": "string", "description": "Purchase Order number attached to the Posting.", "example": "PO-001" } }, "required": [ "orderNumber" ] } ] }, "files": { "description": "Downloadable files information.", "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "File id", "example": "60ace9d227d897fc64add503" }, "url": { "type": "string", "description": "Download URL of the file.", "example": "https://api.candis.io/v1/organization/org-id/files/60ace9d227d897fc64add503" }, "name": { "type": "string", "description": "Name of the file.", "example": "invoice.pdf" }, "type": { "type": "string", "enum": [ "AUDIT_TRAIL", "ATTACHMENT", "INVOICE", "XRECHNUNG" ], "description": "Type of the file.

AUDIT_TRAIL: Contains all the activity related to processing of the posting.
ATTACHMENT: Contains additional information related to the posting.
INVOICE: The invoice pdf document.
XRECHNUNG: The XRechnung xml document.", "example": "INVOICE" } }, "required": [ "id", "url", "name", "type" ] } }, "url": { "type": "string", "description": "Candis URL of the posting.", "example": "https://my.candis.io/alpha-organization/archive/e4cf0d1b-8514-4437-9b7f-2648b87ec8f5" }, "accountingArea": { "description": "Accounting Area Information.", "allOf": [ { "type": "object", "properties": { "name": { "type": "string", "description": "Accounting Area attached to the Posting.", "example": "AA-001" }, "description": { "type": "string", "description": "Description of Accounting Area attached to the Posting.", "example": "Accounting Area 1" } }, "required": [ "name", "description" ] } ] }, "deliveryDate": { "type": "string", "format": "date-time", "description": "Date of the posting.", "example": "2024-01-01T00:00:00Z" }, "invoiceFormat": { "type": "string", "enum": [ "REGULAR", "XRECHNUNG", "ZUGFERD" ], "description": "Format of the invoice.
REGULAR: Regular invoice format.
XRECHNUNG: XRechnung invoice format.
ZUGFERD: ZUGFeRD invoice format.", "example": "REGULAR" }, "dueDate": { "type": "string", "format": "date-time", "description": "Due date of the booking.", "example": "2024-01-01T00:00:00Z" }, "paymentCondition": { "description": "Payment Condition Details", "allOf": [ { "type": "object", "properties": { "name": { "type": "string", "description": "Payment Condition Name", "example": "Credit Card Discount", "nullable": true }, "discountPercentage": { "type": "number", "description": "Discount Percentage", "example": 10, "nullable": true }, "discountPaymentDate": { "type": "string", "format": "date-time", "description": "Discount Payment Date", "example": "2024-01-01T00:00:00Z" } } } ] }, "documentType": { "type": "string", "description": "Document type of the Posting.", "example": "Incoming Invoice, Outgoing Invoice" }, "splitPostings": { "description": "Split-postings can be a part of a posting. A split-posting contains a specific portion of an invoice, which could be necessary due to the need for a different GLA (General Ledger Account) for an amount or when more than one tax is applicable to an invoice.", "type": "array", "items": { "type": "object", "properties": { "note": { "type": "string", "description": "Note for the split-posting.", "example": "Some note" }, "amount": { "type": "number", "description": "Amount of the split-posting.", "example": 100 }, "costCenter": { "description": "Cost center.", "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "description": "Code of the cost center.", "example": "CC-123" } }, "required": [ "code" ] } ] }, "costObject": { "description": "Cost object.", "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "description": "Code of the cost center.", "example": "CC-123" } }, "required": [ "code" ] } ] }, "customCostDimension": { "description": "Custom cost dimension.", "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "description": "Code of the cost center.", "example": "CC-123" } }, "required": [ "code" ] } ] }, "bookingKey": { "description": "Booking key.", "allOf": [ { "type": "object", "properties": { "taxCode": { "type": "string", "description": "Tax code.", "example": "9" } }, "required": [ "taxCode" ] } ] }, "postingText": { "type": "string", "description": "Posting text.", "example": "Some text" }, "unitPrice": { "type": "number", "description": "Unit price of the booking.", "example": 10.5 }, "quantity": { "type": "number", "description": "Quantity of the booking.", "example": 4 }, "netAmount": { "type": "number", "description": "Net amount of the booking.", "example": 42.02 }, "taxAmount": { "type": "number", "description": "Tax amount of the booking.", "example": 7.98 }, "type": { "type": "string", "description": "Booking association type. ITEM: Line item booking. ADDITIONAL_DELIVERY_COST: Additional delivery cost booking.", "example": "ITEM" }, "purchaseOrderMetadata": { "description": "Purchase order metadata associated with the booking.", "type": "array", "items": { "type": "object", "properties": { "orderNumber": { "type": "string", "description": "Purchase order number.", "example": "PO-001" }, "lineNumber": { "type": "number", "description": "Purchase order line number.", "example": 1 }, "itemNumber": { "type": "string", "description": "Purchase order item number.", "example": "1000" }, "locationCode": { "type": "string", "description": "Purchase order location code.", "example": "LOC-001", "nullable": true }, "externalLineId": { "type": "string", "description": "Purchase order external line ID.", "example": "e4cf0d1b-8514-4437-9b7f-2648b87ec8f5", "nullable": true } }, "required": [ "orderNumber", "lineNumber", "itemNumber" ] } }, "goodsReceiptMetadata": { "description": "Goods receipt metadata associated with the booking.", "type": "array", "items": { "type": "object", "properties": { "receiptNumber": { "type": "string", "description": "Goods receipt number.", "example": "GR-001" }, "lineNumber": { "type": "number", "description": "Goods receipt line number.", "example": 1 }, "itemNumber": { "type": "string", "description": "Goods receipt item number.", "example": "1000" }, "locationCode": { "type": "string", "description": "Goods receipt location code.", "example": "LOC-001", "nullable": true }, "externalLineId": { "type": "string", "description": "Goods receipt external line ID.", "example": "e4cf0d1b-8514-4437-9b7f-2648b87ec8f5", "nullable": true } }, "required": [ "receiptNumber", "lineNumber", "itemNumber" ] } }, "additionalDeliveryCostsMetadata": { "description": "Additional delivery costs metadata associated with the booking.", "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string", "description": "Additional delivery cost code.", "example": "FREIGHT" } }, "required": [ "code" ] } }, "generalLedgerAccount": { "type": "string", "description": "General ledger account.", "example": "8400" } }, "required": [ "amount", "generalLedgerAccount" ] } }, "type": { "type": "string", "enum": [ "DOCUMENT", "CARD_TRANSACTION", "CARD_SETTLEMENT" ] }, "creditCardSettings": { "type": "object", "properties": { "bookingAccount": { "type": "string", "nullable": true }, "transitAccount": { "type": "string", "nullable": true } } }, "payment": { "type": "object", "properties": { "method": { "type": "string", "enum": [ "CARD_TRANSACTION" ], "nullable": true }, "paidAt": { "type": "string", "format": "date-time", "example": "2024-01-01T00:00:00Z" } } } }, "required": [ "id", "entityGuid", "status", "amount", "contact", "invoiceId", "invoiceDate", "files", "url", "invoiceFormat", "documentType", "splitPostings", "type", "creditCardSettings" ] }, { "title": "Reimbursement Posting", "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of Entity", "example": "e4cf0d1b-8514-4437-9b7f-2648b87ec8f5" }, "entityGuid": { "type": "string", "description": "Candis Unique identifier of the posting.", "example": "e4cf0d1b-8514-4437-9b7f-2648b87ec8f5" }, "status": { "type": "string", "description": "Status of the posting.
Exported: The posting was successfully exported.", "enum": [ "EXPORTED" ], "example": "EXPORTED" }, "amount": { "description": "Total Amount information of the posting.", "allOf": [ { "type": "object", "properties": { "value": { "type": "number", "description": "Total amount of the posting.", "example": 100 }, "currencyCode": { "type": "string", "description": "ISO 4217 currency code.", "example": "EUR" } }, "required": [ "value", "currencyCode" ] } ] }, "invoiceId": { "type": "string", "description": "Invoice ID / Invoice Number mentioned on the invoice.", "example": "1234" }, "invoiceDate": { "type": "string", "format": "date-time", "description": "Date of the posting.", "example": "2024-01-01T00:00:00Z" }, "files": { "description": "Downloadable files information.", "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "File id", "example": "60ace9d227d897fc64add503" }, "url": { "type": "string", "description": "Download URL of the file.", "example": "https://api.candis.io/v1/organization/org-id/files/60ace9d227d897fc64add503" }, "name": { "type": "string", "description": "Name of the file.", "example": "invoice.pdf" }, "type": { "type": "string", "enum": [ "AUDIT_TRAIL", "ATTACHMENT", "INVOICE", "XRECHNUNG" ], "description": "Type of the file.

AUDIT_TRAIL: Contains all the activity related to processing of the posting.
ATTACHMENT: Contains additional information related to the posting.
INVOICE: The invoice pdf document.
XRECHNUNG: The XRechnung xml document.", "example": "INVOICE" } }, "required": [ "id", "url", "name", "type" ] } }, "url": { "type": "string", "description": "Candis URL of the posting.", "example": "https://my.candis.io/alpha-organization/archive/e4cf0d1b-8514-4437-9b7f-2648b87ec8f5" }, "splitPostings": { "description": "Split-postings can be a part of a posting. A split-posting contains a specific portion of an invoice, which could be necessary due to the need for a different GLA (General Ledger Account) for an amount or when more than one tax is applicable to an invoice.", "type": "array", "items": { "type": "object", "properties": { "note": { "type": "string", "description": "Note for the split-posting.", "example": "Some note" }, "amount": { "type": "number", "description": "Amount of the split-posting.", "example": 100 }, "costCenter": { "description": "Cost center.", "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "description": "Code of the cost center.", "example": "CC-123" } }, "required": [ "code" ] } ] }, "costObject": { "description": "Cost object.", "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "description": "Code of the cost center.", "example": "CC-123" } }, "required": [ "code" ] } ] }, "customCostDimension": { "description": "Custom cost dimension.", "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "description": "Code of the cost center.", "example": "CC-123" } }, "required": [ "code" ] } ] }, "bookingKey": { "description": "Booking key.", "allOf": [ { "type": "object", "properties": { "taxCode": { "type": "string", "description": "Tax code.", "example": "9" } }, "required": [ "taxCode" ] } ] }, "postingText": { "type": "string", "description": "Posting text.", "example": "Some text" }, "unitPrice": { "type": "number", "description": "Unit price of the booking.", "example": 10.5 }, "quantity": { "type": "number", "description": "Quantity of the booking.", "example": 4 }, "netAmount": { "type": "number", "description": "Net amount of the booking.", "example": 42.02 }, "taxAmount": { "type": "number", "description": "Tax amount of the booking.", "example": 7.98 }, "type": { "type": "string", "description": "Booking association type. ITEM: Line item booking. ADDITIONAL_DELIVERY_COST: Additional delivery cost booking.", "example": "ITEM" }, "purchaseOrderMetadata": { "description": "Purchase order metadata associated with the booking.", "type": "array", "items": { "type": "object", "properties": { "orderNumber": { "type": "string", "description": "Purchase order number.", "example": "PO-001" }, "lineNumber": { "type": "number", "description": "Purchase order line number.", "example": 1 }, "itemNumber": { "type": "string", "description": "Purchase order item number.", "example": "1000" }, "locationCode": { "type": "string", "description": "Purchase order location code.", "example": "LOC-001", "nullable": true }, "externalLineId": { "type": "string", "description": "Purchase order external line ID.", "example": "e4cf0d1b-8514-4437-9b7f-2648b87ec8f5", "nullable": true } }, "required": [ "orderNumber", "lineNumber", "itemNumber" ] } }, "goodsReceiptMetadata": { "description": "Goods receipt metadata associated with the booking.", "type": "array", "items": { "type": "object", "properties": { "receiptNumber": { "type": "string", "description": "Goods receipt number.", "example": "GR-001" }, "lineNumber": { "type": "number", "description": "Goods receipt line number.", "example": 1 }, "itemNumber": { "type": "string", "description": "Goods receipt item number.", "example": "1000" }, "locationCode": { "type": "string", "description": "Goods receipt location code.", "example": "LOC-001", "nullable": true }, "externalLineId": { "type": "string", "description": "Goods receipt external line ID.", "example": "e4cf0d1b-8514-4437-9b7f-2648b87ec8f5", "nullable": true } }, "required": [ "receiptNumber", "lineNumber", "itemNumber" ] } }, "additionalDeliveryCostsMetadata": { "description": "Additional delivery costs metadata associated with the booking.", "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string", "description": "Additional delivery cost code.", "example": "FREIGHT" } }, "required": [ "code" ] } }, "generalLedgerAccount": { "type": "string", "description": "General ledger account.", "example": "8400" } }, "required": [ "amount", "generalLedgerAccount" ] } }, "type": { "type": "string", "enum": [ "REIMBURSEMENT_ITEM" ], "description": "Type of the posting entity", "example": "REIMBURSEMENT_ITEM" }, "reason": { "type": "string", "description": "Reason for the reimbursement", "example": "Business trip to Berlin" }, "reimbursementType": { "type": "string", "enum": [ "GENERAL_EXPENSE", "HOSPITALITY_EXPENSE", "PER_DIEM", "MILEAGE" ], "description": "Type of the reimbursement item", "example": "GENERAL_EXPENSE" }, "employee": { "description": "Employee information associated with the reimbursement", "allOf": [ { "type": "object", "properties": { "name": { "type": "string", "description": "Employee name" }, "accountsPayableNumber": { "type": "string", "description": "Employee account payable number" } }, "required": [ "name" ] } ] }, "reimbursementDate": { "type": "string", "format": "date-time", "description": "Date of the reimbursement", "example": "2024-01-01T00:00:00Z" }, "reimbursementCase": { "description": "Reimbursement case information", "allOf": [ { "type": "object", "properties": { "id": { "type": "string" }, "title": { "type": "string" } }, "required": [ "id", "title" ] } ] } }, "required": [ "id", "entityGuid", "status", "amount", "invoiceId", "invoiceDate", "files", "url", "splitPostings", "type", "reason", "reimbursementType", "employee", "reimbursementDate", "reimbursementCase" ] } ] } }, "failedPostings": { "description": "Failed entities", "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the entity", "example": "1234" }, "entityId": { "type": "string", "description": "Identifier of the entity (e.g., invoice ID, transaction ID)", "example": "1234" }, "errorCode": { "type": "string", "description": "Candis error code", "example": "EXPORTABLE_ENTITY_NOT_FOUND" } }, "required": [ "id", "errorCode" ] } } }, "required": [ "successfulPostings", "failedPostings" ] } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "404": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "503": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } } }, "tags": [ "Exports" ], "security": [ { "bearer": [] } ] } }, "/v1/organizations/{organizationId}/invoices": { "get": { "operationId": "listInvoices", "summary": "List invoices of the organization", "parameters": [ { "name": "organizationId", "required": true, "in": "path", "description": "The organization ID.", "example": "alpha-organization", "schema": { "type": "string" } }, { "name": "offset", "required": false, "in": "query", "description": "The offset of the first element in the list.", "example": 0, "schema": { "minimum": 0, "default": 0, "type": "number" } }, { "name": "limit", "required": false, "in": "query", "description": "The maximum number of elements to return.", "example": 50, "schema": { "minimum": 1, "default": 50, "type": "number" } }, { "name": "status", "required": false, "in": "query", "description": "Current status of the invoice. Comma separated values.", "example": "APPROVED", "schema": { "enum": [ "APPROVED", "EXPORTED" ], "type": "string" } }, { "name": "invoiceDateFrom", "required": false, "in": "query", "description": "From date and time when the invoice was issued.", "example": "2024-01-01T12:00:00Z", "schema": { "type": "string" } }, { "name": "invoiceDateTo", "required": false, "in": "query", "description": "To date and time when the invoice was issued.", "example": "2024-01-01T12:00:00Z", "schema": { "type": "string" } }, { "name": "updatedDateFrom", "required": false, "in": "query", "description": "From date and time when the invoice was updated.", "example": "2024-01-01T12:00:00Z", "schema": { "type": "string" } }, { "name": "updatedDateTo", "required": false, "in": "query", "description": "To date and time when the invoice was updated.", "example": "2024-01-01T12:00:00Z", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "invoices": { "description": "Records of invoices.", "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the invoice.", "example": "8341a018-6196-47cb-8fa2-3ad40983be24" }, "organizationId": { "type": "string", "description": "Candis unique identifier of the organization.", "example": "alpha-organization" }, "status": { "type": "string", "description": "Current status of the invoice.", "example": "APPROVED", "enum": [ "APPROVED", "EXPORTED" ] }, "createdAt": { "type": "string", "description": "The date and time when the invoice was created.", "example": "2024-01-01T12:00:00Z" }, "updatedAt": { "type": "string", "description": "The date and time when the invoice was updated.", "example": "2024-01-01T12:00:00Z" }, "requestedAt": { "type": "string", "description": "The date and time when the invoice was requested for approval.", "example": "2024-01-01T12:00:00Z" }, "approvedAt": { "type": "string", "description": "The date and time when the invoice was approved.", "example": "2024-01-01T12:00:00Z" }, "amount": { "type": "object", "properties": { "value": { "type": "number", "description": "Amount", "example": 100 }, "currencyCode": { "type": "string", "description": "Currency code.", "example": "EUR" } } }, "automaticPayment": { "type": "boolean", "description": "Automatic payment is enabled or not.", "example": false }, "bankAccount": { "type": "object", "properties": { "iban": { "type": "string", "description": "IBAN of the bank account.", "example": "DE89370400440532013000" }, "swiftCode": { "type": "string", "description": "SWIFT code of the bank account.", "example": "COBADEFFXXX" } } }, "bookings": { "type": "array", "items": { "type": "object", "properties": { "dueDate": { "type": "string", "description": "Discount payment date", "example": "2022-09-15T22:00:00.000Z" }, "amount": { "type": "number", "description": "Amount of split booking.", "example": 2784 }, "costCenter": { "type": "object", "properties": { "code": { "type": "string", "example": "KOST2" }, "name": { "type": "string", "example": "booking-1-cs-2-name" } }, "required": [ "code" ] }, "costObject": { "type": "object", "properties": { "code": { "type": "string", "example": "KOST2" }, "name": { "type": "string", "example": "booking-1-cs-2-name" } }, "required": [ "code" ] }, "generalLedgerAccount": { "type": "object", "properties": { "accountCode": { "type": "string", "description": "General ledger account code", "example": "1100" }, "name": { "type": "string", "description": "General ledger account name", "example": "electricity" } }, "required": [ "accountCode", "name" ] }, "extraCostInfo": { "type": "object", "properties": { "code": { "type": "string", "example": "KOST2" }, "name": { "type": "string", "example": "booking-1-cs-2-name" } }, "required": [ "code" ] }, "artistSocialInsuranceCode": { "type": "string", "description": "Artist social insurance code.", "example": "W" }, "bookingKey": { "type": "object", "properties": { "taxCode": { "type": "string", "description": "Tax Code", "example": "40" }, "description": { "type": "string", "description": "Tax code description", "example": "Tax Code 40" } }, "required": [ "taxCode", "description" ] }, "vatRate": { "type": "number", "description": "Vat rate" }, "note": { "type": "string", "description": "Note", "example": "This is a note." }, "postingText": { "type": "string", "description": "Posting text", "example": "This is a posting text." }, "paymentCondition": { "type": "object", "properties": { "discountAmount": { "type": "number", "description": "Discount amount", "example": 1.56 }, "discountPaymentDate": { "type": "string", "description": "Discount payment date", "example": "2022-09-15T22:00:00.000Z" }, "discountPercentage": { "type": "number", "description": "Discount percentage", "example": 12 } } } } } }, "category": { "type": "object", "properties": { "documentType": { "type": "string", "description": "Document type.", "example": "Kasse" } } }, "contact": { "description": "Contact information.", "allOf": [ { "type": "object", "properties": { "name": { "type": "string", "description": "Contact name", "example": "John Doe" }, "accountPayableNumber": { "type": "string", "description": "Contact payable number", "example": "K1349234" }, "accountReceivableNumber": { "type": "string", "description": "Contact receivable number", "example": "J1349456" } } } ] }, "deliveryDate": { "type": "string", "description": "The date and time when item was delivered.", "example": "2024-01-01T12:00:00Z" }, "invoiceDate": { "type": "string", "description": "The date and time when invoice was issued.", "example": "2024-01-01T12:00:00Z" }, "invoiceId": { "type": "string", "description": "Invoice ID / Invoice Number mentioned on the invoice.", "example": "2024-INVOICE-123" }, "payment": { "description": "Payment related information.", "allOf": [ { "type": "object", "properties": { "method": { "type": "string", "enum": [ "CARD_TRANSACTION" ], "nullable": true }, "paidAt": { "type": "string", "format": "date-time", "example": "2024-01-01T00:00:00Z" } } } ] }, "purchaseOrderNumber": { "type": "string", "description": "Purchase Order Number", "example": "PO1234" }, "archiveUrl": { "type": "string", "description": "URL to the archive of the document.", "example": "https://my.candis.io/alpha-organization/archive/6595441163501d8c055d4af0" } }, "required": [ "id", "organizationId", "status", "createdAt" ] } }, "pagination": { "description": "Pagination Data providing information and the record count, page size and total count", "allOf": [ { "type": "object", "properties": { "pageCount": { "type": "number", "example": 10, "description": "This is the total number of pages available with records" }, "pageSize": { "type": "number", "example": 50, "description": "This is the length of size of the current page" }, "totalCount": { "type": "number", "example": 500, "description": "This is the total count of export records available" } }, "required": [ "pageCount", "pageSize", "totalCount" ] } ] } }, "required": [ "pagination" ] } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "503": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } } }, "tags": [ "Invoices" ], "security": [ { "bearer": [] } ] } }, "/v1/organizations/{organizationId}/purchase-requests": { "get": { "operationId": "listPurchaseRequests", "summary": "List purchase requests of the organization", "parameters": [ { "name": "organizationId", "required": true, "in": "path", "description": "The organization ID.", "example": "alpha-organization", "schema": { "type": "string" } }, { "name": "offset", "required": false, "in": "query", "description": "The offset of the first element in the list.", "example": 0, "schema": { "minimum": 0, "default": 0, "type": "number" } }, { "name": "limit", "required": false, "in": "query", "description": "The maximum number of elements to return.", "example": 50, "schema": { "minimum": 1, "default": 50, "type": "number" } }, { "name": "sortField", "required": false, "in": "query", "description": "The field to sort by.", "example": "CREATED_AT", "schema": { "default": "CREATED_AT", "enum": [ "CREATED_AT", "UPDATED_AT" ], "type": "string" } }, { "name": "sortDirection", "required": false, "in": "query", "description": "The direction to sort by.", "example": "ASC", "schema": { "default": "ASC", "enum": [ "ASC", "DESC" ], "type": "string" } }, { "name": "status", "required": false, "in": "query", "description": "Filter by one or more purchase request statuses. Comma separated values.", "example": "APPROVED", "schema": { "enum": [ "APPROVING", "APPROVED", "REJECTED", "FULFILLED", "PARTIALLY_FULFILLED", "CANCELLED" ], "type": "string" } }, { "name": "createdAtFrom", "required": false, "in": "query", "description": "From date and time when the purchase request was created.", "example": "2024-01-01T12:00:00.000Z", "schema": { "type": "string" } }, { "name": "createdAtTo", "required": false, "in": "query", "description": "To date and time when the purchase request was created.", "example": "2024-01-31T12:00:00.000Z", "schema": { "type": "string" } }, { "name": "updatedAtFrom", "required": false, "in": "query", "description": "From date and time when the purchase request was updated.", "example": "2024-01-01T12:00:00.000Z", "schema": { "type": "string" } }, { "name": "updatedAtTo", "required": false, "in": "query", "description": "To date and time when the purchase request was updated.", "example": "2024-01-31T12:00:00.000Z", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "purchaseRequests": { "description": "Records of purchase requests.", "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the purchase request.", "example": "d851a73e-94d6-4f4b-babc-ef9314fc8184" }, "status": { "type": "string", "description": "Current status of the purchase request.", "example": "APPROVED", "enum": [ "APPROVING", "APPROVED", "REJECTED", "FULFILLED", "PARTIALLY_FULFILLED", "CANCELLED" ] }, "supplier": { "description": "Supplier contact details.", "allOf": [ { "type": "object", "properties": { "name": { "type": "string", "description": "Supplier name.", "example": "ACME Supplies GmbH" }, "accountPayableNumber": { "type": "string", "description": "Supplier accounts payable number.", "example": "AP-1001" }, "accountReceivableNumber": { "type": "string", "description": "Supplier accounts receivable number.", "example": "AR-1001" } }, "required": [ "name" ] } ] }, "title": { "type": "string", "description": "Title of the purchase request.", "example": "Office Chairs" }, "description": { "type": "string", "description": "Description of the purchase request.", "example": "Ergonomic chairs for the Berlin office" }, "requestNumber": { "type": "string", "description": "Purchase request number.", "example": "PR-2024-001" }, "grossAmount": { "description": "Gross amount.", "allOf": [ { "type": "object", "properties": { "value": { "type": "number", "description": "Amount value as decimal number.", "example": 123.12 }, "currencyCode": { "type": "string", "description": "ISO currency code.", "example": "EUR" } }, "required": [ "value", "currencyCode" ] } ] }, "netAmount": { "description": "Net amount.", "allOf": [ { "type": "object", "properties": { "value": { "type": "number", "description": "Amount value as decimal number.", "example": 123.12 }, "currencyCode": { "type": "string", "description": "ISO currency code.", "example": "EUR" } }, "required": [ "value", "currencyCode" ] } ] }, "deliveryDate": { "type": "string", "description": "Delivery date as ISO 8601 datetime string.", "example": "2022-09-15T22:00:00.000Z" }, "notes": { "type": "string", "description": "Additional notes for the purchase request.", "example": "Please prioritize delivery this week." }, "costCenter": { "description": "Cost center.", "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "description": "Cost dimension code.", "example": "CC-1000" }, "name": { "type": "string", "description": "Cost dimension name.", "example": "Operations" } }, "required": [ "code" ] } ] }, "costObject": { "description": "Cost object.", "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "description": "Cost dimension code.", "example": "CC-1000" }, "name": { "type": "string", "description": "Cost dimension name.", "example": "Operations" } }, "required": [ "code" ] } ] }, "generalLedgerAccount": { "description": "General ledger account.", "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "description": "Cost dimension code.", "example": "CC-1000" }, "name": { "type": "string", "description": "Cost dimension name.", "example": "Operations" } }, "required": [ "code" ] } ] }, "extraCostInfo": { "description": "Extra cost info.", "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "description": "Cost dimension code.", "example": "CC-1000" }, "name": { "type": "string", "description": "Cost dimension name.", "example": "Operations" } }, "required": [ "code" ] } ] }, "customCategory": { "description": "Custom category.", "allOf": [ { "type": "object", "properties": { "id": { "type": "string", "description": "Custom category identifier.", "example": "cat-001" }, "value": { "type": "string", "description": "Custom category value.", "example": "Marketing" } }, "required": [ "id", "value" ] } ] }, "outstandingNetAmount": { "description": "Outstanding net amount.", "allOf": [ { "type": "object", "properties": { "value": { "type": "number", "description": "Amount value as decimal number.", "example": 123.12 }, "currencyCode": { "type": "string", "description": "ISO currency code.", "example": "EUR" } }, "required": [ "value", "currencyCode" ] } ] }, "createdAt": { "type": "string", "description": "Creation timestamp of the purchase request in ISO 8601.", "example": "2022-09-15T22:00:00.000Z" }, "updatedAt": { "type": "string", "description": "Last update timestamp of the purchase request in ISO 8601.", "example": "2022-09-16T22:00:00.000Z" } }, "required": [ "id", "status", "createdAt", "updatedAt" ] } }, "pagination": { "description": "Pagination data providing information and the record count, page size and total count.", "allOf": [ { "type": "object", "properties": { "pageCount": { "type": "number", "example": 10, "description": "This is the total number of pages available with records" }, "pageSize": { "type": "number", "example": 50, "description": "This is the length of size of the current page" }, "totalCount": { "type": "number", "example": 500, "description": "This is the total count of export records available" } }, "required": [ "pageCount", "pageSize", "totalCount" ] } ] } }, "required": [ "purchaseRequests", "pagination" ] } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "503": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } } }, "tags": [ "Purchase Requests" ], "security": [ { "bearer": [] } ] } }, "/v1/organizations/{organizationId}/reimbursement-items": { "get": { "operationId": "listReimbursementItems", "summary": "List reimbursement items of the organization", "parameters": [ { "name": "organizationId", "required": true, "in": "path", "description": "The organization ID.", "example": "alpha-organization", "schema": { "type": "string" } }, { "name": "offset", "required": false, "in": "query", "description": "The offset of the first element in the list.", "example": 0, "schema": { "minimum": 0, "default": 0, "type": "number" } }, { "name": "limit", "required": false, "in": "query", "description": "The maximum number of elements to return.", "example": 50, "schema": { "minimum": 1, "default": 50, "type": "number" } }, { "name": "sortField", "required": false, "in": "query", "description": "The field to sort by.", "example": "REIMBURSEMENT_ITEM_DATE", "schema": { "enum": [ "REIMBURSEMENT_ITEM_DATE", "UPDATED_AT" ], "type": "string" } }, { "name": "sortDirection", "required": false, "in": "query", "description": "The direction to sort by.", "example": "ASC", "schema": { "enum": [ "ASC", "DESC" ], "type": "string" } }, { "name": "status", "required": false, "in": "query", "description": "Current status of the reimbursement item. Comma separated values.", "example": "EXPORTED", "schema": { "enum": [ "APPROVED", "EXPORTED" ], "type": "string" } }, { "name": "types", "required": false, "in": "query", "description": "Type of the reimbursement item. Comma separated values.", "example": "GENERAL_EXPENSE", "schema": { "enum": [ "GENERAL_EXPENSE", "HOSPITALITY_EXPENSE", "PER_DIEM", "MILEAGE" ], "type": "string" } }, { "name": "reimbursementItemDateFrom", "required": false, "in": "query", "description": "From date and time for reimbursement item date.", "example": "2024-01-01T12:00:00Z", "schema": { "type": "string" } }, { "name": "reimbursementItemDateTo", "required": false, "in": "query", "description": "To date and time for reimbursement item date.", "example": "2024-01-01T12:00:00Z", "schema": { "type": "string" } }, { "name": "updatedAtFrom", "required": false, "in": "query", "description": "From date and time when the reimbursement item was updated.", "example": "2024-01-01T12:00:00Z", "schema": { "type": "string" } }, { "name": "updatedAtTo", "required": false, "in": "query", "description": "To date and time when the reimbursement item was updated.", "example": "2024-01-01T12:00:00Z", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "reimbursementItems": { "type": "array", "description": "Records of reimbursement items.", "items": { "oneOf": [ { "title": "Hospitality Expense", "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the reimbursement item.", "example": "8341a018-6196-47cb-8fa2-3ad40983be24" }, "status": { "type": "string", "enum": [ "APPROVED", "EXPORTED" ] }, "createdAt": { "type": "string", "description": "Created at.", "example": "2024-01-01T12:00:00Z" }, "updatedAt": { "type": "string", "description": "Updated at.", "example": "2024-01-01T12:00:00Z" }, "title": { "type": "string", "description": "Title of the reimbursement item.", "example": "Reimbursement Item Title" }, "totalAmount": { "description": "Total amount of the reimbursement item.", "example": 10000, "allOf": [ { "type": "object", "properties": { "amount": { "type": "number", "description": "Original amount before currency conversion" }, "currency": { "type": "string", "description": "Original currency before conversion to base currency" }, "baseAmount": { "type": "number", "description": "Amount after currency conversion to base currency (EUR)", "nullable": true }, "baseCurrency": { "type": "string", "description": "Base currency for conversion", "nullable": true }, "exchangeRate": { "type": "number", "description": "Exchange rate used for currency conversion", "nullable": true }, "exchangeRateDate": { "type": "string", "description": "Date for exchange rate calculation", "nullable": true } }, "required": [ "amount", "currency" ] } ] }, "reimbursementCase": { "description": "Reimbursement item case.", "allOf": [ { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the reimbursement item case.", "example": "8341a018-6196-47cb-8fa2-3ad40983be24" }, "title": { "type": "string", "description": "Title of the reimbursement item case.", "example": "Reimbursement Item Case Title" }, "submittedForReviewAt": { "type": "string", "description": "Submitted for review at.", "example": "2024-01-01T12:00:00Z" } }, "required": [ "id", "title", "submittedForReviewAt" ] } ] }, "contact": { "description": "Contact of the reimbursement item.", "allOf": [ { "type": "object", "properties": { "name": { "type": "string", "description": "Contact name", "example": "John Doe" }, "accountsPayableNumber": { "type": "string", "description": "Contact payable number", "example": "K1349234", "nullable": true }, "paymentInfo": { "type": "object", "properties": { "iban": { "type": "string", "description": "IBAN", "example": "DE12345678901234567890" }, "swiftCode": { "type": "string", "description": "SWIFT code", "example": "BIC123456789", "nullable": true }, "bankAccountNumber": { "type": "string", "description": "Bank account number", "example": "1234567890", "nullable": true }, "accountHolder": { "type": "string", "description": "Account holder", "example": "John Doe", "nullable": true } }, "required": [ "iban" ] } } } ] }, "bookings": { "description": "Bookings of the reimbursement item.", "type": "array", "items": { "type": "object", "properties": { "dueDate": { "type": "string", "description": "Discount payment date", "example": "2022-09-15T22:00:00.000Z", "nullable": true }, "amount": { "type": "number", "description": "Amount in original currency.", "example": 2784 }, "baseAmount": { "type": "number", "description": "Amount in base currency (EUR).", "example": 2784, "nullable": true }, "costCenter": { "description": "Cost center", "nullable": true, "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "example": "KOST2" }, "name": { "type": "string", "example": "booking-1-cs-2-name" } }, "required": [ "code" ] } ] }, "costObject": { "description": "Cost object", "nullable": true, "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "example": "KOST2" }, "name": { "type": "string", "example": "booking-1-cs-2-name" } }, "required": [ "code" ] } ] }, "generalLedgerAccount": { "description": "General ledger account", "nullable": true, "allOf": [ { "type": "object", "properties": { "accountCode": { "type": "string", "description": "General ledger account code", "example": "1100" }, "name": { "type": "string", "description": "General ledger account name", "example": "electricity" } }, "required": [ "accountCode", "name" ] } ] }, "extraCostInfo": { "description": "Extra cost info", "nullable": true, "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "example": "KOST2" }, "name": { "type": "string", "example": "booking-1-cs-2-name" } }, "required": [ "code" ] } ] }, "artistSocialInsuranceCode": { "type": "string", "description": "Artist social insurance code.", "example": "W", "nullable": true }, "bookingKey": { "description": "Booking key", "nullable": true, "allOf": [ { "type": "object", "properties": { "taxCode": { "type": "string", "description": "Tax Code", "example": "40" }, "description": { "type": "string", "description": "Tax code description", "example": "Tax Code 40" } }, "required": [ "taxCode", "description" ] } ] }, "vatRate": { "type": "number", "description": "Vat rate", "nullable": true }, "note": { "type": "string", "description": "Note", "example": "This is a note.", "nullable": true }, "postingText": { "type": "string", "description": "Posting text", "example": "This is a posting text.", "nullable": true } }, "required": [ "amount" ] } }, "invoiceNumber": { "type": "string", "description": "Invoice number of the reimbursement item.", "example": "1234567890" }, "expenseDate": { "type": "string", "description": "Expense date of the reimbursement item.", "example": "2024-01-01T12:00:00Z" }, "type": { "type": "string", "enum": [ "HOSPITALITY_EXPENSE" ] }, "location": { "type": "string", "description": "Location of the reimbursement item.", "example": "Berlin", "nullable": true }, "internalGuests": { "description": "Internal guests of the reimbursement item.", "example": [ "John Doe", "Jane Doe" ], "nullable": true, "type": "array", "items": { "type": "string" } }, "externalGuests": { "description": "External guests of the reimbursement item.", "example": [ "John Doe", "Jane Doe" ], "nullable": true, "type": "array", "items": { "type": "string" } }, "tipAmount": { "description": "Tip amount of the reimbursement item.", "example": 10000, "nullable": true, "allOf": [ { "type": "object", "properties": { "amount": { "type": "number", "description": "Original amount before currency conversion" }, "currency": { "type": "string", "description": "Original currency before conversion to base currency" }, "baseAmount": { "type": "number", "description": "Amount after currency conversion to base currency (EUR)", "nullable": true }, "baseCurrency": { "type": "string", "description": "Base currency for conversion", "nullable": true }, "exchangeRate": { "type": "number", "description": "Exchange rate used for currency conversion", "nullable": true }, "exchangeRateDate": { "type": "string", "description": "Date for exchange rate calculation", "nullable": true } }, "required": [ "amount", "currency" ] } ] }, "receiptAmount": { "description": "Receipt amount of the reimbursement item.", "example": 10000, "allOf": [ { "type": "object", "properties": { "amount": { "type": "number", "description": "Original amount before currency conversion" }, "currency": { "type": "string", "description": "Original currency before conversion to base currency" }, "baseAmount": { "type": "number", "description": "Amount after currency conversion to base currency (EUR)", "nullable": true }, "baseCurrency": { "type": "string", "description": "Base currency for conversion", "nullable": true }, "exchangeRate": { "type": "number", "description": "Exchange rate used for currency conversion", "nullable": true }, "exchangeRateDate": { "type": "string", "description": "Date for exchange rate calculation", "nullable": true } }, "required": [ "amount", "currency" ] } ] } }, "required": [ "id", "status", "createdAt", "updatedAt", "title", "totalAmount", "reimbursementCase", "contact", "bookings", "invoiceNumber", "expenseDate", "type", "receiptAmount" ] }, { "title": "General Expense", "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the reimbursement item.", "example": "8341a018-6196-47cb-8fa2-3ad40983be24" }, "status": { "type": "string", "enum": [ "APPROVED", "EXPORTED" ] }, "createdAt": { "type": "string", "description": "Created at.", "example": "2024-01-01T12:00:00Z" }, "updatedAt": { "type": "string", "description": "Updated at.", "example": "2024-01-01T12:00:00Z" }, "title": { "type": "string", "description": "Title of the reimbursement item.", "example": "Reimbursement Item Title" }, "totalAmount": { "description": "Total amount of the reimbursement item.", "example": 10000, "allOf": [ { "type": "object", "properties": { "amount": { "type": "number", "description": "Original amount before currency conversion" }, "currency": { "type": "string", "description": "Original currency before conversion to base currency" }, "baseAmount": { "type": "number", "description": "Amount after currency conversion to base currency (EUR)", "nullable": true }, "baseCurrency": { "type": "string", "description": "Base currency for conversion", "nullable": true }, "exchangeRate": { "type": "number", "description": "Exchange rate used for currency conversion", "nullable": true }, "exchangeRateDate": { "type": "string", "description": "Date for exchange rate calculation", "nullable": true } }, "required": [ "amount", "currency" ] } ] }, "reimbursementCase": { "description": "Reimbursement item case.", "allOf": [ { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the reimbursement item case.", "example": "8341a018-6196-47cb-8fa2-3ad40983be24" }, "title": { "type": "string", "description": "Title of the reimbursement item case.", "example": "Reimbursement Item Case Title" }, "submittedForReviewAt": { "type": "string", "description": "Submitted for review at.", "example": "2024-01-01T12:00:00Z" } }, "required": [ "id", "title", "submittedForReviewAt" ] } ] }, "contact": { "description": "Contact of the reimbursement item.", "allOf": [ { "type": "object", "properties": { "name": { "type": "string", "description": "Contact name", "example": "John Doe" }, "accountsPayableNumber": { "type": "string", "description": "Contact payable number", "example": "K1349234", "nullable": true }, "paymentInfo": { "type": "object", "properties": { "iban": { "type": "string", "description": "IBAN", "example": "DE12345678901234567890" }, "swiftCode": { "type": "string", "description": "SWIFT code", "example": "BIC123456789", "nullable": true }, "bankAccountNumber": { "type": "string", "description": "Bank account number", "example": "1234567890", "nullable": true }, "accountHolder": { "type": "string", "description": "Account holder", "example": "John Doe", "nullable": true } }, "required": [ "iban" ] } } } ] }, "bookings": { "description": "Bookings of the reimbursement item.", "type": "array", "items": { "type": "object", "properties": { "dueDate": { "type": "string", "description": "Discount payment date", "example": "2022-09-15T22:00:00.000Z", "nullable": true }, "amount": { "type": "number", "description": "Amount in original currency.", "example": 2784 }, "baseAmount": { "type": "number", "description": "Amount in base currency (EUR).", "example": 2784, "nullable": true }, "costCenter": { "description": "Cost center", "nullable": true, "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "example": "KOST2" }, "name": { "type": "string", "example": "booking-1-cs-2-name" } }, "required": [ "code" ] } ] }, "costObject": { "description": "Cost object", "nullable": true, "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "example": "KOST2" }, "name": { "type": "string", "example": "booking-1-cs-2-name" } }, "required": [ "code" ] } ] }, "generalLedgerAccount": { "description": "General ledger account", "nullable": true, "allOf": [ { "type": "object", "properties": { "accountCode": { "type": "string", "description": "General ledger account code", "example": "1100" }, "name": { "type": "string", "description": "General ledger account name", "example": "electricity" } }, "required": [ "accountCode", "name" ] } ] }, "extraCostInfo": { "description": "Extra cost info", "nullable": true, "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "example": "KOST2" }, "name": { "type": "string", "example": "booking-1-cs-2-name" } }, "required": [ "code" ] } ] }, "artistSocialInsuranceCode": { "type": "string", "description": "Artist social insurance code.", "example": "W", "nullable": true }, "bookingKey": { "description": "Booking key", "nullable": true, "allOf": [ { "type": "object", "properties": { "taxCode": { "type": "string", "description": "Tax Code", "example": "40" }, "description": { "type": "string", "description": "Tax code description", "example": "Tax Code 40" } }, "required": [ "taxCode", "description" ] } ] }, "vatRate": { "type": "number", "description": "Vat rate", "nullable": true }, "note": { "type": "string", "description": "Note", "example": "This is a note.", "nullable": true }, "postingText": { "type": "string", "description": "Posting text", "example": "This is a posting text.", "nullable": true } }, "required": [ "amount" ] } }, "invoiceNumber": { "type": "string", "description": "Invoice number of the reimbursement item.", "example": "1234567890" }, "expenseDate": { "type": "string", "description": "Expense date of the reimbursement item.", "example": "2024-01-01T12:00:00Z" }, "type": { "type": "string", "enum": [ "GENERAL_EXPENSE" ] } }, "required": [ "id", "status", "createdAt", "updatedAt", "title", "totalAmount", "reimbursementCase", "contact", "bookings", "invoiceNumber", "expenseDate", "type" ] }, { "title": "Per Diem", "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the reimbursement item.", "example": "8341a018-6196-47cb-8fa2-3ad40983be24" }, "status": { "type": "string", "enum": [ "APPROVED", "EXPORTED" ] }, "createdAt": { "type": "string", "description": "Created at.", "example": "2024-01-01T12:00:00Z" }, "updatedAt": { "type": "string", "description": "Updated at.", "example": "2024-01-01T12:00:00Z" }, "title": { "type": "string", "description": "Title of the reimbursement item.", "example": "Reimbursement Item Title" }, "totalAmount": { "description": "Total amount of the reimbursement item.", "example": 10000, "allOf": [ { "type": "object", "properties": { "amount": { "type": "number", "description": "Original amount before currency conversion" }, "currency": { "type": "string", "description": "Original currency before conversion to base currency" }, "baseAmount": { "type": "number", "description": "Amount after currency conversion to base currency (EUR)", "nullable": true }, "baseCurrency": { "type": "string", "description": "Base currency for conversion", "nullable": true }, "exchangeRate": { "type": "number", "description": "Exchange rate used for currency conversion", "nullable": true }, "exchangeRateDate": { "type": "string", "description": "Date for exchange rate calculation", "nullable": true } }, "required": [ "amount", "currency" ] } ] }, "reimbursementCase": { "description": "Reimbursement item case.", "allOf": [ { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the reimbursement item case.", "example": "8341a018-6196-47cb-8fa2-3ad40983be24" }, "title": { "type": "string", "description": "Title of the reimbursement item case.", "example": "Reimbursement Item Case Title" }, "submittedForReviewAt": { "type": "string", "description": "Submitted for review at.", "example": "2024-01-01T12:00:00Z" } }, "required": [ "id", "title", "submittedForReviewAt" ] } ] }, "contact": { "description": "Contact of the reimbursement item.", "allOf": [ { "type": "object", "properties": { "name": { "type": "string", "description": "Contact name", "example": "John Doe" }, "accountsPayableNumber": { "type": "string", "description": "Contact payable number", "example": "K1349234", "nullable": true }, "paymentInfo": { "type": "object", "properties": { "iban": { "type": "string", "description": "IBAN", "example": "DE12345678901234567890" }, "swiftCode": { "type": "string", "description": "SWIFT code", "example": "BIC123456789", "nullable": true }, "bankAccountNumber": { "type": "string", "description": "Bank account number", "example": "1234567890", "nullable": true }, "accountHolder": { "type": "string", "description": "Account holder", "example": "John Doe", "nullable": true } }, "required": [ "iban" ] } } } ] }, "bookings": { "description": "Bookings of the reimbursement item.", "type": "array", "items": { "type": "object", "properties": { "dueDate": { "type": "string", "description": "Discount payment date", "example": "2022-09-15T22:00:00.000Z", "nullable": true }, "amount": { "type": "number", "description": "Amount in original currency.", "example": 2784 }, "baseAmount": { "type": "number", "description": "Amount in base currency (EUR).", "example": 2784, "nullable": true }, "costCenter": { "description": "Cost center", "nullable": true, "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "example": "KOST2" }, "name": { "type": "string", "example": "booking-1-cs-2-name" } }, "required": [ "code" ] } ] }, "costObject": { "description": "Cost object", "nullable": true, "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "example": "KOST2" }, "name": { "type": "string", "example": "booking-1-cs-2-name" } }, "required": [ "code" ] } ] }, "generalLedgerAccount": { "description": "General ledger account", "nullable": true, "allOf": [ { "type": "object", "properties": { "accountCode": { "type": "string", "description": "General ledger account code", "example": "1100" }, "name": { "type": "string", "description": "General ledger account name", "example": "electricity" } }, "required": [ "accountCode", "name" ] } ] }, "extraCostInfo": { "description": "Extra cost info", "nullable": true, "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "example": "KOST2" }, "name": { "type": "string", "example": "booking-1-cs-2-name" } }, "required": [ "code" ] } ] }, "artistSocialInsuranceCode": { "type": "string", "description": "Artist social insurance code.", "example": "W", "nullable": true }, "bookingKey": { "description": "Booking key", "nullable": true, "allOf": [ { "type": "object", "properties": { "taxCode": { "type": "string", "description": "Tax Code", "example": "40" }, "description": { "type": "string", "description": "Tax code description", "example": "Tax Code 40" } }, "required": [ "taxCode", "description" ] } ] }, "vatRate": { "type": "number", "description": "Vat rate", "nullable": true }, "note": { "type": "string", "description": "Note", "example": "This is a note.", "nullable": true }, "postingText": { "type": "string", "description": "Posting text", "example": "This is a posting text.", "nullable": true } }, "required": [ "amount" ] } }, "invoiceNumber": { "type": "string", "description": "Invoice number of the reimbursement item.", "example": "1234567890" }, "expenseDate": { "type": "string", "description": "Expense date of the reimbursement item.", "example": "2024-01-01T12:00:00Z" }, "type": { "type": "string", "enum": [ "PER_DIEM" ] }, "segments": { "description": "Segments of the reimbursement item.", "type": "array", "items": { "type": "object", "properties": { "startAt": { "type": "string", "description": "Start at of the reimbursement item segment.", "example": "2024-01-01T12:00:00Z" }, "endAt": { "type": "string", "description": "End at of the reimbursement item segment.", "example": "2024-01-01T12:00:00Z" }, "location": { "description": "Location of the reimbursement item segment.", "allOf": [ { "type": "object", "properties": { "region": { "description": "Region of the reimbursement item.", "allOf": [ { "type": "object", "properties": { "en": { "type": "string", "description": "English translation.", "example": "English" }, "de": { "type": "string", "description": "German translation.", "example": "German" } }, "required": [ "en", "de" ] } ] }, "countryIsoCode": { "type": "string", "description": "Country ISO code of the reimbursement item.", "example": "DE" }, "country": { "description": "Country of the reimbursement item.", "allOf": [ { "type": "object", "properties": { "en": { "type": "string", "description": "English translation.", "example": "English" }, "de": { "type": "string", "description": "German translation.", "example": "German" } }, "required": [ "en", "de" ] } ] }, "location": { "description": "Location of the reimbursement item.", "nullable": true, "allOf": [ { "type": "object", "properties": { "en": { "type": "string", "description": "English translation.", "example": "English" }, "de": { "type": "string", "description": "German translation.", "example": "German" } }, "required": [ "en", "de" ] } ] } }, "required": [ "region", "countryIsoCode", "country" ] } ] } }, "required": [ "startAt", "endAt", "location" ] } }, "days": { "description": "Days of the reimbursement item.", "type": "array", "items": { "type": "object", "properties": { "date": { "type": "string", "description": "Date of the reimbursement item day.", "example": "2024-01-01T12:00:00Z" }, "numberOfMinutes": { "type": "number", "description": "Number of minutes of the reimbursement item day.", "example": 100 }, "dayRate": { "description": "Day rate of the reimbursement item day.", "example": 10000, "allOf": [ { "type": "object", "properties": { "amount": { "type": "number", "description": "Original amount before currency conversion" }, "currency": { "type": "string", "description": "Original currency before conversion to base currency" } }, "required": [ "amount", "currency" ] } ] }, "reimbursableRate": { "description": "Reimbursable rate of the reimbursement item day.", "example": 10000, "allOf": [ { "type": "object", "properties": { "amount": { "type": "number", "description": "Original amount before currency conversion" }, "currency": { "type": "string", "description": "Original currency before conversion to base currency" } }, "required": [ "amount", "currency" ] } ] }, "location": { "description": "Location of the reimbursement item day.", "allOf": [ { "type": "object", "properties": { "region": { "description": "Region of the reimbursement item.", "allOf": [ { "type": "object", "properties": { "en": { "type": "string", "description": "English translation.", "example": "English" }, "de": { "type": "string", "description": "German translation.", "example": "German" } }, "required": [ "en", "de" ] } ] }, "countryIsoCode": { "type": "string", "description": "Country ISO code of the reimbursement item.", "example": "DE" }, "country": { "description": "Country of the reimbursement item.", "allOf": [ { "type": "object", "properties": { "en": { "type": "string", "description": "English translation.", "example": "English" }, "de": { "type": "string", "description": "German translation.", "example": "German" } }, "required": [ "en", "de" ] } ] }, "location": { "description": "Location of the reimbursement item.", "nullable": true, "allOf": [ { "type": "object", "properties": { "en": { "type": "string", "description": "English translation.", "example": "English" }, "de": { "type": "string", "description": "German translation.", "example": "German" } }, "required": [ "en", "de" ] } ] } }, "required": [ "region", "countryIsoCode", "country" ] } ] }, "providedBreakfast": { "type": "boolean", "description": "Provided breakfast of the reimbursement item day.", "example": true }, "providedLunch": { "type": "boolean", "description": "Provided lunch of the reimbursement item day.", "example": true }, "providedDinner": { "type": "boolean", "description": "Provided dinner of the reimbursement item day.", "example": true }, "providedAccommodation": { "type": "boolean", "description": "Provided accommodation of the reimbursement item day.", "example": true, "nullable": true } }, "required": [ "date", "numberOfMinutes", "dayRate", "reimbursableRate", "location", "providedBreakfast", "providedLunch", "providedDinner" ] } } }, "required": [ "id", "status", "createdAt", "updatedAt", "title", "totalAmount", "reimbursementCase", "contact", "bookings", "invoiceNumber", "expenseDate", "type", "segments", "days" ] }, { "title": "Mileage", "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the reimbursement item.", "example": "8341a018-6196-47cb-8fa2-3ad40983be24" }, "status": { "type": "string", "enum": [ "APPROVED", "EXPORTED" ] }, "createdAt": { "type": "string", "description": "Created at.", "example": "2024-01-01T12:00:00Z" }, "updatedAt": { "type": "string", "description": "Updated at.", "example": "2024-01-01T12:00:00Z" }, "title": { "type": "string", "description": "Title of the reimbursement item.", "example": "Reimbursement Item Title" }, "totalAmount": { "description": "Total amount of the reimbursement item.", "example": 10000, "allOf": [ { "type": "object", "properties": { "amount": { "type": "number", "description": "Original amount before currency conversion" }, "currency": { "type": "string", "description": "Original currency before conversion to base currency" }, "baseAmount": { "type": "number", "description": "Amount after currency conversion to base currency (EUR)", "nullable": true }, "baseCurrency": { "type": "string", "description": "Base currency for conversion", "nullable": true }, "exchangeRate": { "type": "number", "description": "Exchange rate used for currency conversion", "nullable": true }, "exchangeRateDate": { "type": "string", "description": "Date for exchange rate calculation", "nullable": true } }, "required": [ "amount", "currency" ] } ] }, "reimbursementCase": { "description": "Reimbursement item case.", "allOf": [ { "type": "object", "properties": { "id": { "type": "string", "description": "Unique identifier of the reimbursement item case.", "example": "8341a018-6196-47cb-8fa2-3ad40983be24" }, "title": { "type": "string", "description": "Title of the reimbursement item case.", "example": "Reimbursement Item Case Title" }, "submittedForReviewAt": { "type": "string", "description": "Submitted for review at.", "example": "2024-01-01T12:00:00Z" } }, "required": [ "id", "title", "submittedForReviewAt" ] } ] }, "contact": { "description": "Contact of the reimbursement item.", "allOf": [ { "type": "object", "properties": { "name": { "type": "string", "description": "Contact name", "example": "John Doe" }, "accountsPayableNumber": { "type": "string", "description": "Contact payable number", "example": "K1349234", "nullable": true }, "paymentInfo": { "type": "object", "properties": { "iban": { "type": "string", "description": "IBAN", "example": "DE12345678901234567890" }, "swiftCode": { "type": "string", "description": "SWIFT code", "example": "BIC123456789", "nullable": true }, "bankAccountNumber": { "type": "string", "description": "Bank account number", "example": "1234567890", "nullable": true }, "accountHolder": { "type": "string", "description": "Account holder", "example": "John Doe", "nullable": true } }, "required": [ "iban" ] } } } ] }, "bookings": { "description": "Bookings of the reimbursement item.", "type": "array", "items": { "type": "object", "properties": { "dueDate": { "type": "string", "description": "Discount payment date", "example": "2022-09-15T22:00:00.000Z", "nullable": true }, "amount": { "type": "number", "description": "Amount in original currency.", "example": 2784 }, "baseAmount": { "type": "number", "description": "Amount in base currency (EUR).", "example": 2784, "nullable": true }, "costCenter": { "description": "Cost center", "nullable": true, "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "example": "KOST2" }, "name": { "type": "string", "example": "booking-1-cs-2-name" } }, "required": [ "code" ] } ] }, "costObject": { "description": "Cost object", "nullable": true, "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "example": "KOST2" }, "name": { "type": "string", "example": "booking-1-cs-2-name" } }, "required": [ "code" ] } ] }, "generalLedgerAccount": { "description": "General ledger account", "nullable": true, "allOf": [ { "type": "object", "properties": { "accountCode": { "type": "string", "description": "General ledger account code", "example": "1100" }, "name": { "type": "string", "description": "General ledger account name", "example": "electricity" } }, "required": [ "accountCode", "name" ] } ] }, "extraCostInfo": { "description": "Extra cost info", "nullable": true, "allOf": [ { "type": "object", "properties": { "code": { "type": "string", "example": "KOST2" }, "name": { "type": "string", "example": "booking-1-cs-2-name" } }, "required": [ "code" ] } ] }, "artistSocialInsuranceCode": { "type": "string", "description": "Artist social insurance code.", "example": "W", "nullable": true }, "bookingKey": { "description": "Booking key", "nullable": true, "allOf": [ { "type": "object", "properties": { "taxCode": { "type": "string", "description": "Tax Code", "example": "40" }, "description": { "type": "string", "description": "Tax code description", "example": "Tax Code 40" } }, "required": [ "taxCode", "description" ] } ] }, "vatRate": { "type": "number", "description": "Vat rate", "nullable": true }, "note": { "type": "string", "description": "Note", "example": "This is a note.", "nullable": true }, "postingText": { "type": "string", "description": "Posting text", "example": "This is a posting text.", "nullable": true } }, "required": [ "amount" ] } }, "invoiceNumber": { "type": "string", "description": "Invoice number of the reimbursement item.", "example": "1234567890" }, "expenseDate": { "type": "string", "description": "Expense date of the reimbursement item.", "example": "2024-01-01T12:00:00Z" }, "type": { "type": "string", "enum": [ "MILEAGE" ] }, "locations": { "description": "Locations of the reimbursement item.", "type": "array", "items": { "type": "object", "properties": { "en": { "type": "string", "description": "English translation.", "example": "English" }, "de": { "type": "string", "description": "German translation.", "example": "German" } }, "required": [ "en", "de" ] } }, "applicableRate": { "description": "Applicable rate of the reimbursement item.", "example": 10000, "allOf": [ { "type": "object", "properties": { "amount": { "type": "number", "description": "Original amount before currency conversion" }, "currency": { "type": "string", "description": "Original currency before conversion to base currency" } }, "required": [ "amount", "currency" ] } ] }, "distanceOverride": { "description": "Distance override of the reimbursement item.", "nullable": true, "allOf": [ { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enabled of the reimbursement item.", "example": true, "nullable": true }, "distanceInKm": { "type": "number", "description": "Distance in km of the reimbursement item.", "example": 100, "nullable": true }, "reason": { "type": "string", "description": "Reason of the reimbursement item.", "example": "Reason for the distance override", "nullable": true } } } ] }, "vehicleType": { "type": "string", "description": "Vehicle type of the reimbursement item.", "enum": [ "CAR", "MOTORBIKE" ] }, "calculatedDistanceInKm": { "type": "number", "description": "Calculated distance in km of the reimbursement item.", "example": 100 }, "isRoundTrip": { "type": "boolean", "description": "Is round trip of the reimbursement item.", "example": true } }, "required": [ "id", "status", "createdAt", "updatedAt", "title", "totalAmount", "reimbursementCase", "contact", "bookings", "invoiceNumber", "expenseDate", "type", "locations", "applicableRate", "vehicleType", "calculatedDistanceInKm", "isRoundTrip" ] } ] } }, "pagination": { "description": "Pagination Data providing information and the record count, page size and total count", "allOf": [ { "type": "object", "properties": { "pageCount": { "type": "number", "example": 10, "description": "This is the total number of pages available with records" }, "pageSize": { "type": "number", "example": 50, "description": "This is the length of size of the current page" }, "totalCount": { "type": "number", "example": 500, "description": "This is the total count of export records available" } }, "required": [ "pageCount", "pageSize", "totalCount" ] } ] } }, "required": [ "reimbursementItems", "pagination" ] } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "503": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } } }, "tags": [ "Reimbursements" ], "security": [ { "bearer": [] } ] } }, "/v1/organizations/{organizationId}/imports/additional-delivery-costs": { "put": { "operationId": "updateAdditionalDeliveryCost", "summary": "Update Additional Delivery Costs", "description": "Receive requests and attempts to update Additional Delivery Costs in Candis", "parameters": [ { "name": "organizationId", "required": true, "in": "path", "description": "The organization ID.", "example": "alpha-organization", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "code": { "type": "string", "description": "The unique code of the additional delivery cost", "example": "PROD-001" }, "additionalDescription": { "type": "string", "description": "Secondary description of the additional delivery cost", "example": "Type 123", "nullable": true }, "generalLedgerAccount": { "type": "string", "description": "General Ledger (GL) account code", "example": "5000", "nullable": true }, "taxCode": { "type": "string", "description": "Candis tax code", "example": "VAT19", "nullable": true }, "costCenter": { "type": "string", "description": "Cost center code (DIM 1)", "example": "CC-001", "nullable": true }, "costObject": { "type": "string", "description": "Cost object code (DIM 2)", "example": "OBJ200", "nullable": true }, "customCostDimension": { "type": "string", "description": "Custom cost dimension code (DIM 3)", "example": "Berlin", "nullable": true }, "projectCode": { "type": "string", "description": "Project code (optional, not yet supported for BC365)", "example": "PROJ-2024", "nullable": true }, "isArchived": { "type": "boolean", "description": "Archive status (soft delete flag)", "example": false, "default": false }, "erpData": { "description": "ERP data", "allOf": [ { "type": "object", "properties": { "system": { "type": "string", "description": "ERP system" }, "externalId": { "type": "string", "description": "External ID of the additional delivery cost in the ERP system", "example": "67890-223421-21312-123214" }, "createdAt": { "type": "string", "description": "Creation timestamp in the ERP system", "example": "2024-01-15T09:30:00Z", "nullable": true }, "updatedAt": { "type": "string", "description": "Last update timestamp in the ERP system", "example": "2024-06-20T14:45:00Z", "nullable": true } }, "required": [ "system", "externalId" ] } ] }, "description": { "type": "string", "description": "Primary description of the additional delivery cost", "example": "FREIGHT", "nullable": true } }, "required": [ "code", "erpData" ] } } } } }, "responses": { "202": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "processId": { "type": "string", "description": "The unique identifier of the import request.", "example": "9924bb4a-7ee9-4b6a-ac7b-30fdbe6b0031" } }, "required": [ "processId" ] } } } }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "503": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } } }, "tags": [ "Core Data" ], "security": [ { "bearer": [] } ] } }, "/v1/organizations/{organizationId}/invoices/{id}": { "put": { "operationId": "updateInvoice", "summary": "Update an invoice", "parameters": [ { "name": "organizationId", "required": true, "in": "path", "description": "The organization ID.", "example": "alpha-organization", "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "description": "Unique identifier of the invoice.", "example": "7fe351b8-2313-4158-b386-4511cd64b4d5", "schema": { "type": "string" } } ], "requestBody": { "required": true, "description": "Invoice update payload", "content": { "application/json": { "schema": { "type": "object", "properties": { "payment": { "description": "Payment information", "allOf": [ { "type": "object", "properties": { "isPaid": { "type": "boolean", "description": "Whether the invoice is paid", "example": true }, "paidAt": { "format": "date-time", "type": "string", "description": "Date when the invoice was paid. Required when isPaid is true.", "example": "2023-05-15T12:00:00Z" } }, "required": [ "isPaid" ] } ] } } } } } }, "responses": { "204": { "description": "Invoice updated successfully" }, "400": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "401": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "404": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." }, "errors": { "description": "This is an optional output that can provide more details about the input parameters that may have caused an issue.", "type": "array", "items": { "type": "object", "properties": { "index": { "type": "string", "description": "This identifies the index of the payload that has an issue." }, "property": { "type": "string", "description": "This identifies the parameter that has an issue." }, "messages": { "description": "This provides more details about the parameter that has an issue.", "type": "array", "items": { "type": "string" } } }, "required": [ "property", "messages" ] } } }, "required": [ "errorCode", "message" ] } } } }, "503": { "description": "", "content": { "application/json": { "schema": { "type": "object", "properties": { "errorCode": { "type": "string", "description": "The Error Code assigned to the issue encountered", "enum": [ "UNAUTHORIZED", "FORBIDDEN", "BAD_REQUEST", "SERVICE_UNAVAILABLE", "INTERNAL_SERVER_ERROR", "MISSING_REQUESTER_ID", "BAD_INPUT", "NOT_FOUND", "EXPORTABLE_POSTINGS_NOT_FOUND", "TOO_MANY_REQUEST", "FAILED_TO_FETCH_DOWNLOAD_URL", "FILE_NOT_FOUND" ] }, "message": { "type": "string", "description": "Description about the issue encountered" }, "requestId": { "type": "string", "description": "This is the unique identifier for the request." } }, "required": [ "errorCode", "message" ] } } } } }, "tags": [ "Invoices" ], "security": [ { "bearer": [] } ] } } }, "components": { "securitySchemes": { "bearerAuth": { "type": "http", "scheme": "bearer", "description": "OAuth2 access token issued by the Candis authorization server (Keycloak realm 'candis') sent as a Bearer token. Obtain via the OAuth2 authorization code or token-exchange flow at https://id.my.candis.io/auth/realms/candis/protocol/openid-connect/token." } } }, "security": [ { "bearerAuth": [] } ], "tags": [ { "name": "Exports", "description": "Export approved invoices and postings to accounting/ERP systems." }, { "name": "Core Data", "description": "Import/update master data: general ledger accounts, cost dimensions, additional delivery costs." }, { "name": "Invoices", "description": "Read and update invoice metadata." }, { "name": "Reimbursement Items", "description": "Read reimbursement item data." }, { "name": "Purchase Requests", "description": "Read purchase request data." }, { "name": "Organization", "description": "Connected organization details." } ] }