{"info":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","description":"<html><head></head><body><h4 id=\"welcome-to-vat4u-platform-api-documentation\">Welcome to VAT4U platform API documentation.</h4>\n<h2 id=\"introduction\">Introduction</h2>\n<p>VAT4U API allows you to easily integrate an external system, such as Travel expense management tool of your company, or ERP system.<br>VAT4U API exposes a set of endpoints to create a single expense or initiate mass data import to the VAT4U platform.</p>\n<hr>\n<h2 id=\"overview\">Overview</h2>\n<p>API is organized around REST protocol.<br>VAT4U API endpoints by default expect JSON formatted body, with <code>Content-Type: application/json</code> header, if not explicitly specified otherwise.</p>\n<hr>\n<h2 id=\"authentication\">Authentication</h2>\n<p>Each API endpoint requires Authorization Bearer token inside Authorization header. Auth token should be retrieved from Authentication <code>/auth/token</code> endpoint, and used inside Authorization header for all API requests, in form of <code>Authorization: Bearer TOKEN_HERE</code></p>\n<h2 id=\"error-codes\">Error codes</h2>\n<p>VAT4U API response is organized around standard HTTP response codes, returning <code>200 OK</code> code for all successful <code>GET</code> requests, <code>201 Created</code> for synchronous <code>POST</code> requests, and <code>202 Accepted</code> for asynchronous <code>POST</code> requests.<br>Requests ending with Errors return appropriate HTTP response codes, such as <code>400 Bad Request</code> for unexpected input parameters, <code>401 Unauthorized</code> for unauthorized access attempts, and <code>403 Forbidden</code> for lack of permissions for Authenticated user.<br>Unsuccessful <code>GET</code> requests failing to locate requested objects will result in <code>404 Not found</code> HTTP response code.<br><code>500 Internal Server Error</code> is returned in case of unexpected server-side failure.</p>\n<p>For all endpoints successful response will return an object with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": { /* underlying object properties */ }\n}\n\n</code></pre>\n<p>Request resulting in error response will have a response object with the following structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"error\": {\n        \"code\": \"ERROR_CODE\",\n        \"message\": \"User friendly error message\"\n    }\n}\n\n</code></pre>\n<h2 id=\"rate-limiting\">Rate limiting</h2>\n<p>Rate limiting is based on 'Leaky Bucket' implementation.<br>When a client hits budget limit <code>429 Too many requests</code> HTTP response is sent.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"801136","collectionId":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","publishedId":"SztEZS24","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"292929","highlight":"04ACE3"},"publishDate":"2020-06-01T00:26:17.000Z"},"item":[{"name":"Auth","item":[{"name":"Retrieve access token","event":[{"listen":"test","script":{"id":"83657206-e752-4cca-82bb-c8534dea6c20","exec":["// Parse the JSON response","const jsonData = pm.response.json();","","// Check if accessToken exists in the response","if (jsonData.accessToken) {","    // Save accessToken to the environment variable","    pm.environment.set(\"accessToken\", jsonData.accessToken);","    console.log(\"Access token saved to environment variable\");","}"],"type":"text/javascript","packages":{},"requests":{}}}],"id":"3b0a824c-4ce8-428c-b857-bf3434bf6e5e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"username\": \"{{username}}\",\n\t\"password\": \"{{password}}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/auth/token","description":"<p>Post user login credentials to /auth/token endpoint to get Access token.</p>\n","urlObject":{"path":["v1","auth","token"],"host":["https://api.vat4u.com"],"query":[],"variable":[]}},"response":[{"id":"ea005645-be7e-4887-b51f-5637edd16e00","name":"Successfully retrieve access token","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"username\": \"{{username}}\",\n\t\"password\": \"{{password}}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/auth/token"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.27.4"},{"key":"Date","value":"Fri, 17 Oct 2025 14:56:30 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Set-Cookie","value":"ci_session=plvhfsotl4uh7s4qvrakfbromorl76s4; expires=Fri, 17 Oct 2025 15:26:30 GMT; Max-Age=1800; path=/; domain=app.vat4u.local; secure; HttpOnly; SameSite=Lax"},{"key":"Expires","value":"Thu, 19 Nov 1981 08:52:00 GMT"},{"key":"Cache-Control","value":"no-store, no-cache, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Headers","value":"Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method"},{"key":"Access-Control-Allow-Methods","value":"GET, POST"}],"cookie":[],"responseTime":null,"body":"{\n    \"accessToken\": \"...0eXAiOiJKV1QiOiJIUzI1NiJ9...\",\n    \"tokenType\": \"Bearer\",\n    \"issuedAt\": 1760712990,\n    \"expiresIn\": 3600\n}"},{"id":"c1cdd7d1-69e7-4be5-84d0-76daacf8e4fb","name":"Failed authentication","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"username\": \"user@vat4u.com\",\n\t\"password\": \"wrong-password\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/auth/token"},"status":"Forbidden","code":403,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"3b0a824c-4ce8-428c-b857-bf3434bf6e5e"}],"id":"960c86dd-22dd-45f7-9936-aae65b1c2ea5","description":"<p>Authentication and Authorization section of API allows you to authenticate users with the VAT4U platform and retrieve AccessToken to be used for subsequent API requests.</p>\n<p>AccessToken has lifetime specified in response object of <code>/auth/token</code> endpoint.</p>\n","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"4a436f97-8134-4e62-9165-8fb7ecfc2bb4","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"53e3625b-afad-4808-9f0e-a34a081bdc60","type":"text/javascript","exec":[""]}}],"_postman_id":"960c86dd-22dd-45f7-9936-aae65b1c2ea5"},{"name":"Expense","item":[{"name":"Create expense","id":"2dbd7a3a-91c5-4dbd-ad49-66d8c3b2fa91","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"companyId\": \"{{companyKey}}\",\n    \"expenseDate\": \"18/05/2024\",\n    \"expenseNumber\": \"APPI-TEST-29411\",\n    \"countryOfExpense\": \"DE\",\n    \"currencyOfExpense\": \"EUR\",\n    \"provinceOfExpense\": \"Bavaria\",\n    \"rejectOutOfScopeCountry\": false,\n    \"expenseType\": \"purchase\",\n    \"acceptUnknownCategory\": true,\n    \"items\": [\n        {\n            \"grossAmount\": 124.11,\n            \"category\": \"Accommodation\",\n            \"description\": \"3 night stay\"\n        },\n        {\n            \"grossAmount\": 19.00,\n            \"category\": \"Breakfast\",\n            \"description\": \"\"\n        }\n    ],\n    \"vendor\": {\n        \"name\": \"Motel One\",\n        \"vatNumber\": \"DE123491011\",\n        \"taxNumber\": \"\",\n        \"streetName\": \"Immermannstrasse\",\n        \"streetNumber\": \"54\",\n        \"streetOther\": \"\",\n        \"city\": \"Dusseldorf\",\n        \"zipCode\": \"40210\",\n        \"countryCode\": \"DE\"\n    },\n    \"expectDocument\": {\n        \"contentType\": \"application/pdf\"\n    },\n    \"documents\": [\n        {\n            \"fileName\": \"test.pdf\",\n            \"base64\": \"__Document in base64 format__\"\n        }\n    ],\n    \"autoClean\": true,\n    \"optionalFields\": [\n        {\n            \"name\": \"TransactionType\",\n            \"value\": \"Travel expenses\"\n        },\n        {\n            \"name\": \"TemTransactionIdentifier\",\n            \"value\": \"019273714123\"\n        },\n        {\n            \"name\": \"LegalEntityCode\",\n            \"value\": \"LX81623\"\n        },\n        {\n            \"name\": \"PaymentFlow\",\n            \"value\": \"Travel Reimbursement\"\n        }\n    ],\n    \"actions\": {\n        \"complianceCheck\": true,\n        \"dataVerification\": true,\n        \"smartAi\": \"apply\",\n        \"fields\": [\n            {\n                \"name\": \"date\",\n                \"method\": \"use-when-empty\"\n            },\n            {\n                \"name\": \"number\",\n                \"method\": \"use-when-identified\"\n            },\n            {\n                \"name\": \"vendorName\",\n                \"method\": \"use-when-empty-or-diff\"\n            },\n            {\n                \"name\": \"mainCategory\",\n                \"method\": \"use-when-empty-or-diff\"\n            }\n        ]\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/expenses","description":"<p>POST method to /expenses endpoint will initiate the creation of an expense entry. Depending on the outcome of this API procedure success or failure will be returned from the subsystem.</p>\n<p>A successful call to the endpoint will result in 201 Created status, with an underlying result object.</p>\n<h3 id=\"expenses-object-parameters\">Expenses Object Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>companyId</code></td>\n<td><code>required</code> -ID of entity from VAT4U platform</td>\n</tr>\n<tr>\n<td><code>companiesMappingId</code></td>\n<td><code>optional</code> - Mapping ID received from VAT4U to be used with entity specified inside Optional field <code>LegalEntityCode</code> when Multi-entity sending mode is enabled</td>\n</tr>\n<tr>\n<td><code>expenseDate</code></td>\n<td><code>optional</code> - Expense date in format dd/mm/yyyy</td>\n</tr>\n<tr>\n<td><code>expenseNumber</code></td>\n<td><code>optional</code> - Official Expense number (Invoice number, Receipt ID etc.)</td>\n</tr>\n<tr>\n<td><code>countryOfExpense</code></td>\n<td><code>optional</code> - Country where expense occurred represented with two-letter country code (according to ISO 3166 ALPHA 2 codes. Read more at <a href=\"https://www.iso.org/obp/ui/#search\">https://www.iso.org/obp/ui/#search</a></td>\n</tr>\n<tr>\n<td><code>currencyOfExpense</code></td>\n<td><code>optional</code> - Currency code that is corresponding with the amounts sent - according to ISO 4217 code scheme. Read more at <a href=\"https://en.wikipedia.org/wiki/ISO_4217\">https://en.wikipedia.org/wiki/ISO_4217</a>  <br />If ommited, domestic currency of the countryOfExpense will be automatically assigned</td>\n</tr>\n<tr>\n<td><code>provinceOfExpense</code></td>\n<td><code>optional</code> - Province where expense occurred, prepresented by the two letter code (derivation of ISO 3166 ALPHA 2 for province identification purpose)  <br /><a href=\"https://en.wikipedia.org/wiki/ISO_3166-2\">https://en.wikipedia.org/wiki/ISO_3166-2</a>  <br />Example of Canada: <a href=\"https://en.wikipedia.org/wiki/Provinces_and_territories_of_Canada\">https://en.wikipedia.org/wiki/Provinces_and_territories_of_Canada</a></td>\n</tr>\n<tr>\n<td><code>rejectOutOfScopeCountry</code></td>\n<td><code>optional</code> - Boolean TRUE/FALSE (default false). If the parameter is set to true, VAT4U will reject the expense if the <code>countryOfExpense</code> is not covered by VAT4U service. This helps reduce number of unprocessable expenses stored in VAT4U.</td>\n</tr>\n<tr>\n<td><code>expenseType</code></td>\n<td><code>optional</code> - Expense type can be <code>purchase</code> or <code>importation</code>. The <code>importation</code> type of expense is used for special cases when VAT Return is requested on imported goods. Default: purchase. If not provided, default <code>purchase</code> type will be used.</td>\n</tr>\n<tr>\n<td><code>categoriesMappingId</code></td>\n<td><code>optional</code> - Categories mapping ID obtained from VAT4U platform during integration phase. If item category is not found in the mapping, or mapping ID is not provided invoice item will be linked to category \"To Be Verified\".</td>\n</tr>\n<tr>\n<td><code>documents</code></td>\n<td><code>optional</code> - Array of objects of type <code>ExpenseDocument</code>. In case your expense has linked documents (PDF files) you can send them in the same request in a base64 representation. Please include any document that you want to send with the following structure: <code>{\"fileName\": \"String\", \"base64\": \"String\"}</code></td>\n</tr>\n<tr>\n<td><code>expectDocument</code></td>\n<td><code>optional</code> - If you want to send data first, and then provide documents via PUT request to specific URL, indicate this parameter with <code>true</code> value. If <code>documents</code> property is used to supply base64 document representation in the same request this parameter has no impact. It indicates to VAT4U platform whether to expect document for the supplied expense, and if which type of document. Valid contentType parameter values are <code>[application/pdf, image/jpeg, image/png]</code></td>\n</tr>\n<tr>\n<td><code>autoClean</code></td>\n<td>Boolean TRUE/FALSE indicating if VAT4U should carry out auto-cleaning of input parameters such as Invoice number, or vendor name, according to TAX administration requirements. If set to FALSE, strict rules will apply and Request containing forbidden characters will fail with 401 Bad Request response</td>\n</tr>\n<tr>\n<td><code>items</code></td>\n<td><code>optional</code> - Invoice items (e.g. lines on Invoice). Array of <code>item</code> objects</td>\n</tr>\n<tr>\n<td><code>vendor</code></td>\n<td><code>optional</code> - Data about invoice vendor/supplier</td>\n</tr>\n<tr>\n<td><code>optionalFields</code></td>\n<td><code>optional</code> - Optional data related to expense. Bookkeeping data, travel expense details, etc</td>\n</tr>\n<tr>\n<td><code>actions</code></td>\n<td><code>optional</code> - Optional <code>Actions</code> object related to expense. OCR processing, compliance check, data verification and SmartAI processing</td>\n</tr>\n</tbody>\n</table>\n</div><p><code>ExpenseDocument</code> objects have the following schema:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>fileName</td>\n<td><code>required</code>- File name is the original name of the document. <strong>It is important to note that this filename is used only for retrieving file extension information. At the moment only PDF files are supported</strong>.</td>\n</tr>\n<tr>\n<td>base64</td>\n<td><code>required</code>- Base64 representation of the document data. Value should contain only base64 encoded data, <strong>without</strong> data: scheme (e.g. data:application/pdf). Value should contain pure base64 string. Example with PHP would be <code>base64_encode(file_get_contents($pathToTheFile))</code></td>\n</tr>\n</tbody>\n</table>\n</div><p>When it comes to sending documents to VAT4U there are two options:</p>\n<ol>\n<li><p>Specify list of documents with filename and Base64 data within documents property of the request. With this option only a single request is sent to VAT4U API and multiple documents upload is supported. At the moment only PDF files are allowed with this method.</p>\n</li>\n<li><p>[<i>DEPRICATED - for existing integrations only</i>] Use parameter expectDocument to announce to VAT4U that it should return a signed URL which will be used with the second request to supply the specific document. In this case two subsequent requests are necessary to supply both data and document. Only single document is supported with this method. Only PDF document is supported at the moment.<br /> Option <strong>1</strong> has higher priority and option <strong>2</strong> is only considered if no <code>documents</code> property is present in the first request.</p>\n</li>\n</ol>\n<p>If <code>documents</code> array is not present in the request, and <code>expectDocument</code> property is set to <code>true</code>, the system will return a temporary URL inside response object <code>documentLocation</code> property <code>documentLocation.url</code>.<br />Invoice document (electronic document, scan, or picture) can be uploaded to this temporary URL using a <code>PUT</code> request. <strong>This request should include a document as a</strong> <strong><code>Binary</code></strong> <strong>request body</strong>.</p>\n<p>Other types of payload (e.g. Base64) will also return code 200 but documents will <strong>not be accepted for processing, opposite to the first option (single request with data and documents array) when sending documents is only possible in base64 representation.</strong> The returned URL will expire in period specified under <code>doocumentLocation.expiresIn</code> property. Value is integer with unit of seconds.</p>\n<img src=\"https://cdn.vat4u.com/media/single-expense.svg\" />\n\n<h4 id=\"expense-line-item-data-item-object-properties\">Expense line item data (<code>item</code> object properties)</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>grossAmount</code></td>\n<td>Invoice line GROSS amount. Decimal value with two decimal places and dot as decimal separator</td>\n</tr>\n<tr>\n<td><code>netAmount</code></td>\n<td><code>optional</code> - Invoice line NET amount. Decimal value with two decimal places and dot as decimal separator</td>\n</tr>\n<tr>\n<td><code>vatAmount</code></td>\n<td><code>optional</code> - Invoice line VAT amount. Decimal value with two decimal places and dot as decimal separator</td>\n</tr>\n<tr>\n<td><code>category</code></td>\n<td><code>optional</code> - Expense line category</td>\n</tr>\n<tr>\n<td><code>description</code></td>\n<td><code>optional</code> - Expense line brief description</td>\n</tr>\n</tbody>\n</table>\n</div><p>When supplied together, any of two value indicators (gross + net, gross + vat, net + vat) are threatened with higher priority and system VAT rates are overruled by supplied values.</p>\n<p>To let the system calculate amounts based on system stored VAT rates, supply only one of the amount parameters. Either grossAmount, netAmotun, or vatAmount.</p>\n<p>Parameter category needs to be part of the mapping supplied at the Expense level</p>\n<h4 id=\"expenses-vendorsupplier-data-vendor-object-properties\">Expenses vendor/supplier data (<code>vendor</code> object properties)</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Desscription</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>name</code></td>\n<td><code>optional</code> - Vendor name</td>\n</tr>\n<tr>\n<td><code>vatNumber</code></td>\n<td><code>optional</code> - Vendor VAT Number including 2 letter Member state code. e.g. DE912847123 ESB89237161 etc. Read more about VAT numbers at <a href=\"https://en.wikipedia.org/wiki/VAT_identification_number\">https://en.wikipedia.org/wiki/VAT_identification_number</a> <a href=\"https://ec.europa.eu/taxation_customs/business/vat/eu-vat-rules-topic/vat-identification-numbers_en\">https://ec.europa.eu/taxation_customs/business/vat/eu-vat-rules-topic/vat-identification-numbers_en</a></td>\n</tr>\n<tr>\n<td><code>taxNumber</code></td>\n<td><code>optional</code> - Local TAX number of vendor</td>\n</tr>\n<tr>\n<td><code>streetName</code></td>\n<td><code>optional</code> - Address street name part</td>\n</tr>\n<tr>\n<td><code>streetNumber</code></td>\n<td><code>optional</code> - Address street number part</td>\n</tr>\n<tr>\n<td><code>streetOther</code></td>\n<td><code>optional</code> - Address other part e.g. building, floot etc.</td>\n</tr>\n<tr>\n<td><code>city</code></td>\n<td><code>optional</code> - Vendor address city part</td>\n</tr>\n<tr>\n<td><code>zipCode</code></td>\n<td><code>optional</code> - Vendor address zip code</td>\n</tr>\n<tr>\n<td><code>countryCode</code></td>\n<td><code>optional</code> - Vendor country represented with two-letter country code (according to ISO-3166 ALPHA 2 codes. Read more at <a href=\"https://www.iso.org/obp/ui/#search\">https://www.iso.org/obp/ui/#search</a></td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"expense-optional-data-optionalfields-parameter\">Expense optional data (<code>optionalFields</code> parameter)</h4>\n<p>Each expense can define one or multiple optional fields. List of allowed optional fields is provided below. Optional fields parameter is of type array, containing single objects with properties <code>name</code> and <code>value</code>. Name should always correspond to one of the valid optional field values listed below.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field Name</th>\n<th>Type</th>\n<th>Field description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>TransactionType</code></td>\n<td><code>options</code></td>\n<td>Transaction type</td>\n</tr>\n<tr>\n<td><code>ErpTransactionIdentifier</code></td>\n<td><code>char(45)</code></td>\n<td>ERP Transaction ID</td>\n</tr>\n<tr>\n<td><code>TemTransactionIdentifier</code></td>\n<td><code>char(45)</code></td>\n<td>TEM Transaction ID</td>\n</tr>\n<tr>\n<td><code>TemTravelReportIdentifier</code></td>\n<td><code>char(45)</code></td>\n<td>TEM Travel Report ID</td>\n</tr>\n<tr>\n<td><code>ErpTemBookingDate</code></td>\n<td><code>date(Y-m-d)</code></td>\n<td>ERP TEM Booking date</td>\n</tr>\n<tr>\n<td><code>ErpGLAccountNumber</code></td>\n<td><code>char(45)</code></td>\n<td>ERP GL Account Number</td>\n</tr>\n<tr>\n<td><code>ErpGLAccountName</code></td>\n<td><code>char(255)</code></td>\n<td>ERP GL Account Name</td>\n</tr>\n<tr>\n<td><code>ErpGLAccountDebitOrCredit</code></td>\n<td><code>options</code></td>\n<td>ERP GL Account Debit or Credit</td>\n</tr>\n<tr>\n<td><code>LegalEntityCode</code></td>\n<td><code>char(45)</code></td>\n<td>Legal Entity code</td>\n</tr>\n<tr>\n<td><code>BusinessUnitLevel1</code></td>\n<td><code>char(45)</code></td>\n<td>Business Unit Level 1</td>\n</tr>\n<tr>\n<td><code>BusinessUnitLevel2</code></td>\n<td><code>char(45)</code></td>\n<td>Business Unit Level 2</td>\n</tr>\n<tr>\n<td><code>BusinessUnitLevel3</code></td>\n<td><code>char(45)</code></td>\n<td>Business Unit Level 3</td>\n</tr>\n<tr>\n<td><code>CostCenter</code></td>\n<td><code>char(255)</code></td>\n<td>Cost Center</td>\n</tr>\n<tr>\n<td><code>ProjectNumber</code></td>\n<td><code>char(45)</code></td>\n<td>Project number</td>\n</tr>\n<tr>\n<td><code>EmployeeIdentifier</code></td>\n<td><code>char(45)</code></td>\n<td>Employee ID</td>\n</tr>\n<tr>\n<td><code>EmployeeName</code></td>\n<td><code>char(45)</code></td>\n<td>Employee Name</td>\n</tr>\n<tr>\n<td><code>TravelReportPurpose</code></td>\n<td><code>char(255)</code></td>\n<td>Travel Report Purpose</td>\n</tr>\n<tr>\n<td><code>ExpenseReceiptDescription</code></td>\n<td><code>char(255)</code></td>\n<td>Expense Receipt Description</td>\n</tr>\n<tr>\n<td><code>Comment1</code></td>\n<td><code>char(255)</code></td>\n<td>Comment 1</td>\n</tr>\n<tr>\n<td><code>Comment2</code></td>\n<td><code>char(255)</code></td>\n<td>Comment 2</td>\n</tr>\n<tr>\n<td><code>Comment3</code></td>\n<td><code>char(255)</code></td>\n<td>Comment 3</td>\n</tr>\n<tr>\n<td><code>Comment4</code></td>\n<td><code>char(255)</code></td>\n<td>Comment 4</td>\n</tr>\n<tr>\n<td><code>Amount1</code></td>\n<td><code>decimal(19,4)</code></td>\n<td>Amount 1</td>\n</tr>\n<tr>\n<td><code>Amount2</code></td>\n<td><code>decimal(19,4)</code></td>\n<td>Amount 2</td>\n</tr>\n<tr>\n<td><code>Amount3</code></td>\n<td><code>decimal(19,4)</code></td>\n<td>Amount 3</td>\n</tr>\n<tr>\n<td><code>Amount4</code></td>\n<td><code>decimal(19,4)</code></td>\n<td>Amount 4</td>\n</tr>\n<tr>\n<td><code>PaymentFlow</code></td>\n<td><code>options</code></td>\n<td>Payment flow</td>\n</tr>\n</tbody>\n</table>\n</div><p>Valid options for <code>TransactionType</code> are <code>[\"Travel expenses\", \"Account payable\", \"Importation\", \"Other\"]</code>.</p>\n<p>Valid options for <code>ErpGLAccountDebitOrCredit</code> are <code>[\"Debit\", \"Credit\"]</code></p>\n<p>Valid options for <code>PaymentFlow</code> are <code>[Travel Reimbursement, Travel Direct Payment, Other]</code>. This field plays improtant role for Canadian TAX reporting when using <strong>Simplified ITC/ITR</strong> calculation method. Different factors apply when payment flow is Reimboursement to the employee and Direct company payment to supplier.</p>\n<p>Fields with values of type date should contain valid dates in the listed format.</p>\n<p>Example:<br /><code>optionalFields : [{\"name\" : \"CostCenter\", \"value\" : \"Marketing\"}, {\"name\": \"ErpTemBookingDate\", \"value\": \"2021-03-17\"}]</code><br />Field <code>LegalEntityCode</code> is specifically used for the expense mapping together with <code>companiesMappingId</code> when option to send expenses to multiple entities from one single connection is used. In this scenario initially we collect all the entity codes (or names) from the integrator. Based on this codes initial setup is done on VAT4U side and <code>companiesMappingId</code> is generated for this setup. Integrator then commits on sending both <code>companyId</code>, <code>companiesMappingId</code> and <code>LegalEntityCode</code> Optional field which will contain one of the previously defined entity codes from an external system.</p>\n<h4 id=\"postprocessing-options\">Postprocessing options</h4>\n<p>To start expense post-processing you should include additional parameters in the <code>actions</code> object indicating the type of actions that should be taken.<br />Currently, we offer three post-processing options:</p>\n<ol>\n<li><p>Compliance Check - optional - if set to TRUE VAT4U will start the Compliance check process.</p>\n</li>\n<li><p>Data Verification - optional - if set to TRUE VAT4U will start the Data Verification check process.</p>\n</li>\n<li><p>SmartAI Data Retrieval - optional - can be set to \"process\" or \"apply\". If set to `process` VAT4U will start and process the expense with SmartAI but will not automatically apply the identified data to the expense. In this case after processing is finished, SmartAI data will be available as a separate Single expense response property. If set to `apply`, immediately after processing the expense data will be updated with the SmartAI identified fields (e.g. Invoice number, date, country of refund, vendor information, etc.) If you wish choose to apply only a portion of expense details, you can specify the desired fields in the <code>fields</code> array inside the <code>actions</code> object. Each field is an object of the following structure: <code>{\"name\": \"fieldName\", \"method\": \"applyMethod\"}</code>. The <code>fieldName</code> must be of one of the following values: <code>['date', 'number', 'vendorName', 'streetName', 'streetNumber', 'zipCode', 'city', 'vatNumber', 'taxNumber', 'totalNetAmount', 'totalVatAmount', 'totalGrossAmount', 'currency', 'country', 'vendorCountry', 'province', 'mainCategory']</code>, while the <code>method</code> allowed values are: <code>['use-when-identified' (always apply), 'use-when-empty' (apply only if the original field data is empty), 'use-when-empty-or-diff' (apply only if the original field data is empty or different)]</code>. Don't specify the <code>fields</code> array or leave it empty to apply all of the SmartAI data to the expense.</p>\n</li>\n</ol>\n<p>Note: Each action is started as an asynchronous process. You can pull the expense by ID to fetch the latest status and expense properties, or subscribe to our Webhooks and get notified when expense status or properties change.</p>\n<p>Subscribing to a webhooks is recommended solution to minimise the API calls overhead and have the fastest update times. Webhook can be configured on the account level (service provider) or a single claimant level.</p>\n<p>Read more about webhooks in our Help center article.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","expenses"],"host":["https://api.vat4u.com"],"query":[],"variable":[]}},"response":[{"id":"2d2fdfbd-5afa-4909-9312-4b43330d80fd","name":"Success","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"companyId\": \"{{companyKey}}\",\n    \"expenseDate\": \"18/05/2024\",\n    \"expenseNumber\": \"APPI-TEST-29411\",\n    \"countryOfExpense\": \"DE\",\n    \"currencyOfExpense\": \"EUR\",\n    \"rejectOutOfScopeCountry\": false,\n    \"expenseType\": \"purchase\",\n    \"acceptUnknownCategory\": true,\n    \"items\": [\n        {\n            \"grossAmount\": 124.11,\n            \"category\": \"Accommodation\",\n            \"description\": \"3 night stay\"\n        },\n        {\n            \"grossAmount\": 19.00,\n            \"category\": \"Breakfast\",\n            \"description\": \"\"\n        }\n    ],\n    \"vendor\": {\n        \"name\": \"Motel One\",\n        \"vatNumber\": \"DE123491011\",\n        \"taxNumber\": \"\",\n        \"streetName\": \"Immermannstrasse\",\n        \"streetNumber\": \"54\",\n        \"streetOther\": \"\",\n        \"city\": \"Dusseldorf\",\n        \"zipCode\": \"40210\",\n        \"countryCode\": \"DE\"\n    },\n    \"expectDocument\": {\n        \"contentType\": \"application/pdf\"\n    },\n    \"documents\": [\n        {\n            \"fileName\": \"test.pdf\",\n            \"base64\": \"__base64 encode document content (pdf/jpg/png/tiff)__\"\n        }\n    ],\n    \"autoClean\": true,\n    \"optionalFields\": [\n        {\n            \"name\": \"TransactionType\",\n            \"value\": \"Travel expenses\"\n        },\n        {\n            \"name\": \"TemTransactionIdentifier\",\n            \"value\": \"019273714123\"\n        },\n        {\n            \"name\": \"LegalEntityCode\",\n            \"value\": \"LX81623\"\n        }\n    ],\n    \"actions\": {\n        \"complianceCheck\": true,\n        \"dataVerification\": true,\n        \"smartAi\": \"apply\"\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/expenses"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.27.4"},{"key":"Date","value":"Mon, 27 Oct 2025 00:04:20 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Set-Cookie","value":"ci_session=ut8guh9s0d4nkclncvt77hr963cog9vu; expires=Mon, 27 Oct 2025 00:34:11 GMT; Max-Age=1800; path=/; domain=app.vat4u.local; secure; HttpOnly; SameSite=Lax"},{"key":"Expires","value":"Thu, 19 Nov 1981 08:52:00 GMT"},{"key":"Cache-Control","value":"no-store, no-cache, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Headers","value":"Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method"},{"key":"Access-Control-Allow-Methods","value":"GET, POST"},{"key":"X-RateLimit-Limit","value":"60"},{"key":"X-RateLimit-Remaining","value":"59"},{"key":"X-RateLimit-Reset","value":"1761523500"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"expenseId\": 151946752412,\n        \"expenseKey\": 151946752412,\n        \"documentLocation\": null,\n        \"expenseData\": {\n            \"id\": 151946752412,\n            \"parentId\": null,\n            \"company\": {\n                \"id\": 2,\n                \"legalName\": \"VAT4U GmbH\"\n            },\n            \"date\": \"2024-05-18\",\n            \"number\": \"APPI-TEST-29411\",\n            \"createdAt\": \"2025-10-27 00:00:00\",\n            \"modifiedAt\": \"2025-10-27 00:00:00\",\n            \"modifiedBy\": 1231123,\n            \"lastSeenBy\": null,\n            \"invoiceType\": \"simplified\",\n            \"expenseType\": \"purchase\",\n            \"country\": {\n                \"name\": \"Germany\",\n                \"shortCode\": \"DE\",\n                \"inScope\": true\n            },\n            \"province\": null,\n            \"totalGrossAmount\": 143.11,\n            \"totalNetAmount\": 119.48,\n            \"totalVatAmount\": 23.63,\n            \"totalPotentialCashback\": 23.63,\n            \"totalApprovedAmount\": 0,\n            \"currency\": {\n                \"id\": 1,\n                \"shortCode\": \"EUR\",\n                \"name\": \"Euro\"\n            },\n            \"vendor\": {\n                \"name\": \"Motel One\",\n                \"streetName\": \"Immermannstrasse\",\n                \"streetNumber\": \"54\",\n                \"other\": \"\",\n                \"zipCode\": \"40210\",\n                \"city\": \"Dusseldorf\",\n                \"country\": {\n                    \"name\": \"Germany\",\n                    \"shortCode\": \"DE\"\n                },\n                \"vatNumber\": \"DE123491011\",\n                \"taxNumber\": \"\"\n            },\n            \"importId\": null,\n            \"statuses\": {\n                \"invoicing\": null,\n                \"compliance\": {\n                    \"id\": 4,\n                    \"code\": \"NOT_VERIFIED\"\n                },\n                \"ocr\": {\n                    \"id\": 201,\n                    \"code\": \"IN_PROGRESS\"\n                },\n                \"audit\": {\n                    \"id\": 30,\n                    \"code\": \"NOT_VERIFIED\"\n                },\n                \"refund\": {\n                    \"id\": 10,\n                    \"code\": \"EXCLUDED\"\n                },\n                \"nextStage\": null,\n                \"payment\": null,\n                \"billing\": null,\n                \"dataQuality\": {\n                    \"id\": 60,\n                    \"code\": \"NOT_VERIFIED\"\n                },\n                \"amountVerification\": {\n                    \"id\": 80,\n                    \"code\": \"NOT_VERIFIED\"\n                },\n                \"dateVerification\": {\n                    \"id\": 1300,\n                    \"code\": \"NOT_VERIFIED\"\n                },\n                \"vatFlow\": {\n                    \"id\": 703,\n                    \"code\": \"FOREIGN_8TH\"\n                },\n                \"correction\": {\n                    \"id\": 800,\n                    \"code\": \"NOT_VERIFIED\"\n                },\n                \"restyling\": {\n                    \"id\": 1001,\n                    \"code\": \"NOT_REQUIRED\"\n                },\n                \"duplication\": {\n                    \"id\": 900,\n                    \"code\": \"NOT_CHECKED\"\n                },\n                \"demo\": null,\n                \"smartAi\": {\n                    \"id\": 1500,\n                    \"code\": \"NOT_PROCESSED\"\n                }\n            },\n            \"nonCompliantReasons\": \"\",\n            \"exclusion\": {\n                \"reasons\": \"Expired Deadline\",\n                \"comment\": null\n            },\n            \"exchangeRateToEur\": 1,\n            \"claim\": null,\n            \"additionalComment\": \"\",\n            \"optionalFields\": {\n                \"DataSource\": null,\n                \"TransactionType\": \"Travel expenses\",\n                \"ExtractionMethod\": null,\n                \"ErpTransactionIdentifier\": null,\n                \"TemTransactionIdentifier\": \"019273714123\",\n                \"TemTravelReportIdentifier\": null,\n                \"ErpTemBookingDate\": null,\n                \"ErpGLAccountNumber\": null,\n                \"ErpGLAccountName\": null,\n                \"ErpGLAccountDebitOrCredit\": null,\n                \"LegalEntityCode\": \"LX81623\",\n                \"BusinessUnitLevel1\": null,\n                \"BusinessUnitLevel2\": null,\n                \"BusinessUnitLevel3\": null,\n                \"CostCenter\": null,\n                \"ProjectNumber\": null,\n                \"EmployeeIdentifier\": null,\n                \"EmployeeName\": null,\n                \"TravelReportPurpose\": null,\n                \"ExpenseReceiptDescription\": null,\n                \"Comment1\": null,\n                \"Comment2\": null,\n                \"Comment3\": null,\n                \"Comment4\": \"Accommodation, Breakfast\",\n                \"Amount1\": null,\n                \"Amount2\": null,\n                \"Amount3\": null,\n                \"InvoiceCorrectionDate\": null,\n                \"InvoiceCorrectionBatchId\": null,\n                \"VATIdentified\": null\n            },\n            \"lineItems\": [\n                {\n                    \"netAmount\": 103.51,\n                    \"vatAmount\": 20.6,\n                    \"potentialCashback\": 20.6,\n                    \"grossAmount\": 124.11,\n                    \"isReverseCharge\": false,\n                    \"isVatExempt\": false,\n                    \"userCategory\": \"Accommodation\",\n                    \"systemCategory\": \"Accommodation\",\n                    \"vatRate\": 19.9,\n                    \"deductibilityRate\": 100,\n                    \"taxKey\": null,\n                    \"erpGLAccountNumber\": null,\n                    \"descriptionData\": {\n                        \"description\": \"\",\n                        \"language\": \"en\"\n                    },\n                    \"poNumber\": null,\n                    \"poLine\": null,\n                    \"poDescription\": null\n                },\n                {\n                    \"netAmount\": 15.97,\n                    \"vatAmount\": 3.03,\n                    \"potentialCashback\": 3.03,\n                    \"grossAmount\": 19,\n                    \"isReverseCharge\": false,\n                    \"isVatExempt\": false,\n                    \"userCategory\": \"Breakfast\",\n                    \"systemCategory\": \"Breakfast\",\n                    \"vatRate\": 19,\n                    \"deductibilityRate\": 100,\n                    \"taxKey\": null,\n                    \"erpGLAccountNumber\": null,\n                    \"descriptionData\": {\n                        \"description\": \"\",\n                        \"language\": \"en\"\n                    },\n                    \"poNumber\": null,\n                    \"poLine\": null,\n                    \"poDescription\": null\n                }\n            ],\n            \"smartAiResult\": null,\n            \"document\": \"https://app.vat4u.local/invoice/audit/79057a5641e2fcb4aae221307f611a41\"\n        }\n    }\n}"}],"_postman_id":"2dbd7a3a-91c5-4dbd-ad49-66d8c3b2fa91"},{"name":"List expenses","id":"1debc12a-4726-4450-9ecf-0a5d379b7775","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"filter\": [\n        {\n            \"key\": \"company_name\",\n            \"predicate\": \"contains\",\n            \"value\": \"123\"\n        }\n    ],\n    \"sort\": {\n        \"key\": \"company_name\",\n        \"dir\": \"asc\"\n    },\n    \"page\": 1\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/expenses/filter","description":"<h1 id=\"filter-expenses-api\">Filter Expenses API</h1>\n<p>Filter and retrieve paginated list of expenses with advanced filtering, sorting, and search capabilities.</p>\n<blockquote>\n<p>This endpoint allows authenticated users to filter expenses based on various criteria and retrieve paginated results. The user must have appropriate permissions to access expenses for their assigned companies. </p>\n</blockquote>\n<p><strong>Request Body Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"filter\": [\n    {\n      \"key\": \"company_name\",\n      \"predicate\": \"contains\",\n      \"value\": \"1\"\n    },\n    {\n      \"key\": \"total_net_amount\",\n      \"predicate\": \"is_greater\",\n      \"value\": \"100\"\n    },\n    {\n      \"key\": \"invoice_date\",\n      \"predicate\": \"between\",\n      \"value\": \"01.01.2024 - 31.12.2024\"\n    }\n  ],\n  \"sort\": {\n    \"key\": \"company_name\",\n    \"dir\": \"asc\"\n  },\n  \"page\": 1\n}\n\n</code></pre>\n<p><strong>Success Response (HTTP 200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"success\",\n  \"data\": {\n    \"expenses\": [\n      {\n        \"id\": 12345,\n        \"company_name\": \"Example Company Ltd\",\n        \"invoice_number\": \"INV-2024-001\",\n        \"total_net_amount\": 150.00,\n        \"total_vat_amount\": 30.00,\n        \"total_gross_amount\": 180.00,\n        \"currency_short_code\": \"EUR\",\n        \"invoice_date\": \"2024-01-15\",\n        \"vendor_name\": \"Supplier ABC\",\n        \"country_name\": \"Germany\",\n        \"vat_flow_status_code\": \"processing\"\n      }\n    ],\n    \"hasNextPage\": true\n  }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p><strong>HTTP 400 Bad Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"error\",\n  \"code\": \"1\",\n  \"message\": \"Invalid filter parameters or validation error\"\n}\n\n</code></pre>\n<p><strong>HTTP 401 Unauthorized:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"error\",\n  \"code\": \"Unauthorized\",\n  \"message\": \"Authentication required\"\n}\n\n</code></pre>\n<p><strong>HTTP 500 Internal Server Error:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"status\": \"error\",\n  \"code\": \"\",\n  \"message\": \"\"\n}\n\n</code></pre>\n<h2 id=\"request-body-parameters-description\">Request Body Parameters Description</h2>\n<h3 id=\"filter-object\">Filter Object</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>filter</td>\n<td>Array</td>\n<td>No</td>\n<td>Array of filter objects to apply to the expense search</td>\n</tr>\n<tr>\n<td>sort</td>\n<td>Object</td>\n<td>No</td>\n<td>Sorting configuration for the results</td>\n</tr>\n<tr>\n<td>page</td>\n<td>Integer</td>\n<td>Yes</td>\n<td>Page number for pagination (starts from 1)</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"filter-item-structure\">Filter Item Structure</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>String</td>\n<td>Yes</td>\n<td>The field name to filter on (see Filterable Fields below)</td>\n</tr>\n<tr>\n<td>predicate</td>\n<td>String</td>\n<td>Yes</td>\n<td>The comparison operator (see Predicates by Field Type below)</td>\n</tr>\n<tr>\n<td>value</td>\n<td>String/Array</td>\n<td>Yes</td>\n<td>The value(s) to filter by</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"sort-object-structure\">Sort Object Structure</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>String</td>\n<td>Yes</td>\n<td>The field name to sort by (must be a valid filterable field)</td>\n</tr>\n<tr>\n<td>dir</td>\n<td>String</td>\n<td>Yes</td>\n<td>Sort direction: \"asc\" (ascending) or \"desc\" (descending)</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"filterable-fields\">Filterable Fields</h2>\n<p>The following fields can be used in the <code>key</code> parameter of filter objects:</p>\n<h3 id=\"company--organization\">Company &amp; Organization</h3>\n<ul>\n<li><p><code>company_name</code> (TEXT)</p>\n</li>\n<li><p><code>group_contract_name</code> (TEXT)</p>\n</li>\n<li><p><code>billed_by_company_name</code> (TEXT)</p>\n</li>\n<li><p><code>billed_to_company_name</code> (TEXT)</p>\n</li>\n<li><p><code>business_partner_name</code> (TEXT)</p>\n</li>\n<li><p><code>coe_name</code> (TEXT)</p>\n</li>\n</ul>\n<h3 id=\"personnel\">Personnel</h3>\n<ul>\n<li><p><code>account_manager_name</code> (TEXT)</p>\n</li>\n<li><p><code>delivery_manager_name</code> (TEXT)</p>\n</li>\n<li><p><code>processing_manager_name</code> (TEXT)</p>\n</li>\n<li><p><code>last_seen_by</code> (TEXT)</p>\n</li>\n<li><p><code>user_name</code> (TEXT)</p>\n</li>\n</ul>\n<h3 id=\"invoice-details\">Invoice Details</h3>\n<ul>\n<li><p><code>id</code> (INT)</p>\n</li>\n<li><p><code>parent_id</code> (INT)</p>\n</li>\n<li><p><code>sequence_number</code> (INT)</p>\n</li>\n<li><p><code>invoice_number</code> (TEXT)</p>\n</li>\n<li><p><code>invoice_type</code> (ENUM)</p>\n</li>\n<li><p><code>invoice_date</code> (DATE)</p>\n</li>\n<li><p><code>created_date</code> (DATE)</p>\n</li>\n<li><p><code>modified_at</code> (DATE)</p>\n</li>\n<li><p><code>payment_term_days</code> (INT)</p>\n</li>\n<li><p><code>payment_due_date</code> (DATE)</p>\n</li>\n</ul>\n<h3 id=\"vendor-information\">Vendor Information</h3>\n<ul>\n<li><p><code>vendor_name</code> (TEXT)</p>\n</li>\n<li><p><code>street_name</code> (TEXT)</p>\n</li>\n<li><p><code>city</code> (TEXT)</p>\n</li>\n<li><p><code>zip_code</code> (TEXT)</p>\n</li>\n<li><p><code>vendor_vat_number</code> (TEXT)</p>\n</li>\n<li><p><code>vendor_tax_number</code> (TEXT)</p>\n</li>\n</ul>\n<h3 id=\"financial-amounts\">Financial Amounts</h3>\n<ul>\n<li><p><code>total_gross_amount</code> (INT)</p>\n</li>\n<li><p><code>total_net_amount</code> (INT)</p>\n</li>\n<li><p><code>total_vat_amount</code> (INT)</p>\n</li>\n<li><p><code>total_ded_amount</code> (INT)</p>\n</li>\n<li><p><code>total_approved_amount</code> (INT)</p>\n</li>\n<li><p><code>total_gross_amount_eur</code> (INT)</p>\n</li>\n<li><p><code>total_net_amount_eur</code> (INT)</p>\n</li>\n<li><p><code>total_vat_amount_eur</code> (INT)</p>\n</li>\n<li><p><code>total_ded_amount_eur</code> (INT)</p>\n</li>\n<li><p><code>total_gst_amount</code> (INT)</p>\n</li>\n<li><p><code>total_hst_amount</code> (INT)</p>\n</li>\n<li><p><code>total_pst_amount</code> (INT)</p>\n</li>\n</ul>\n<h3 id=\"location--currency\">Location &amp; Currency</h3>\n<ul>\n<li><p><code>country_name</code> (TEXT)</p>\n</li>\n<li><p><code>province_name</code> (TEXT)</p>\n</li>\n<li><p><code>country_in_scope</code> (ENUM)</p>\n</li>\n<li><p><code>currency_short_code</code> (TEXT)</p>\n</li>\n</ul>\n<h3 id=\"status-fields\">Status Fields</h3>\n<ul>\n<li><p><code>vat_flow_status_code</code> (ENUM)</p>\n</li>\n<li><p><code>refund_status_code</code> (ENUM)</p>\n</li>\n<li><p><code>next_stage_status_code</code> (ENUM)</p>\n</li>\n<li><p><code>ocr_status_code</code> (ENUM)</p>\n</li>\n<li><p><code>audit_status_code</code> (ENUM)</p>\n</li>\n<li><p><code>compliance_status_code</code> (ENUM)</p>\n</li>\n<li><p><code>correction_status_code</code> (ENUM)</p>\n</li>\n<li><p><code>restyling_status_code</code> (ENUM)</p>\n</li>\n<li><p><code>data_quality_status_code</code> (ENUM)</p>\n</li>\n<li><p><code>amount_verification_status_code</code> (ENUM)</p>\n</li>\n<li><p><code>date_verification_status_code</code> (ENUM)</p>\n</li>\n<li><p><code>billing_status_code</code> (ENUM)</p>\n</li>\n<li><p><code>payment_status_code</code> (ENUM)</p>\n</li>\n<li><p><code>demo_status_code</code> (ENUM)</p>\n</li>\n</ul>\n<h3 id=\"ai--smart-processing\">AI &amp; Smart Processing</h3>\n<ul>\n<li><p><code>smart_ai_expense_date</code> (DATE)</p>\n</li>\n<li><p><code>smart_ai_expense_number</code> (TEXT)</p>\n</li>\n<li><p><code>smart_ai_vendor_name</code> (TEXT)</p>\n</li>\n<li><p><code>smart_ai_total_net_amount</code> (INT)</p>\n</li>\n<li><p><code>smart_ai_total_vat_amount</code> (INT)</p>\n</li>\n<li><p><code>smart_ai_total_gross_amount</code> (INT)</p>\n</li>\n<li><p><code>smart_ai_batch_tag</code> (TEXT)</p>\n</li>\n<li><p><code>smart_ai_country_name</code> (TEXT)</p>\n</li>\n<li><p><code>smart_ai_province_name</code> (TEXT)</p>\n</li>\n</ul>\n<h3 id=\"additional-fields\">Additional Fields</h3>\n<ul>\n<li><p><code>category_names</code> (TEXT)</p>\n</li>\n<li><p><code>claim_id</code> (INT)</p>\n</li>\n<li><p><code>tags</code> (OPTIONS_TEXT)</p>\n</li>\n<li><p><code>expense_type</code> (TEXT)</p>\n</li>\n<li><p><code>import_id</code> (INT)</p>\n</li>\n<li><p><code>document_count</code> (INT)</p>\n</li>\n<li><p><code>additional_comment</code> (TEXT)</p>\n</li>\n<li><p><code>rejection_reason_id</code> (ENUM)</p>\n</li>\n<li><p><code>rejection_comment</code> (TEXT)</p>\n</li>\n</ul>\n<h2 id=\"predicates-by-field-type\">Predicates by Field Type</h2>\n<h3 id=\"text-fields\">TEXT Fields</h3>\n<ul>\n<li><p><code>is</code> - Exact match (supports \"NULL\" for null values, \" or \" for multiple values)</p>\n</li>\n<li><p><code>is_not</code> - Not equal to</p>\n</li>\n<li><p><code>contains</code> - Contains substring (supports \" or \" for multiple values)</p>\n</li>\n<li><p><code>not_contain</code> - Does not contain substring</p>\n</li>\n<li><p><code>begins_with</code> - Starts with</p>\n</li>\n<li><p><code>ends_with</code> - Ends with</p>\n</li>\n<li><p><code>is_empty</code> - Field is null or empty string</p>\n</li>\n<li><p><code>is_not_empty</code> - Field is not null and not empty</p>\n</li>\n<li><p><code>has_emails</code> - JSON field has email entries (for email fields)</p>\n</li>\n<li><p><code>no_emails</code> - JSON field has no email entries (for email fields)</p>\n</li>\n</ul>\n<h3 id=\"integer-int-fields\">INTEGER (INT) Fields</h3>\n<ul>\n<li><p><code>is</code> - Exact match (supports \"NULL\", \" or \" for multiple values)</p>\n</li>\n<li><p><code>is_not</code> - Not equal to</p>\n</li>\n<li><p><code>is_greater</code> - Greater than</p>\n</li>\n<li><p><code>is_lower</code> - Less than</p>\n</li>\n<li><p><code>in</code> - In array (expects JSON array of values)</p>\n</li>\n<li><p><code>is_empty</code> - Field is null</p>\n</li>\n<li><p><code>is_not_empty</code> - Field is not null</p>\n</li>\n</ul>\n<h3 id=\"date-fields\">DATE Fields</h3>\n<ul>\n<li><p><code>is</code> - Exact date match (format: DD.MM.YYYY or DD-MM-YYYY)</p>\n</li>\n<li><p><code>is_not</code> - Not on this date</p>\n</li>\n<li><p><code>is_year</code> - Year equals</p>\n</li>\n<li><p><code>is_not_year</code> - Year not equals</p>\n</li>\n<li><p><code>between</code> - Date range (format: \"DD.MM.YYYY - DD.MM.YYYY\")</p>\n</li>\n<li><p><code>before</code> - Before date</p>\n</li>\n<li><p><code>after</code> - After date</p>\n</li>\n<li><p><code>year</code> - Specific year (YYYY)</p>\n</li>\n<li><p><code>is_empty</code> - Field is null</p>\n</li>\n<li><p><code>is_not_empty</code> - Field is not null</p>\n</li>\n</ul>\n<h3 id=\"enum-fields\">ENUM Fields</h3>\n<ul>\n<li><p><code>is</code> - Equals (supports arrays and \"NULL\")</p>\n</li>\n<li><p><code>is_not</code> - Not equals</p>\n</li>\n<li><p><code>is_empty</code> - Field is null</p>\n</li>\n<li><p><code>is_not_empty</code> - Field is not null</p>\n</li>\n</ul>\n<h3 id=\"boolean-fields\">BOOLEAN Fields</h3>\n<ul>\n<li><p><code>is</code> - Equals (accepts: yes/y/1/true/green for true, others for false)</p>\n</li>\n<li><p><code>is_not</code> - Not equals</p>\n</li>\n<li><p><code>is_empty</code> - Field is null</p>\n</li>\n<li><p><code>is_not_empty</code> - Field is not null</p>\n</li>\n</ul>\n<h3 id=\"options_text-fields-multi-value-text-fields\">OPTIONS_TEXT Fields (Multi-value text fields)</h3>\n<ul>\n<li><p><code>is</code> - Contains any of the values (expects array)</p>\n</li>\n<li><p><code>is_not</code> - Does not contain any of the values</p>\n</li>\n<li><p><code>is_empty</code> - Field is null or empty</p>\n</li>\n<li><p><code>is_not_empty</code> - Field is not null and not empty</p>\n</li>\n</ul>\n<h2 id=\"filter-examples\">Filter Examples</h2>\n<h3 id=\"text-field-filtering\">Text Field Filtering</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-antlr4\">{\n  \"key\": \"company_name\",\n  \"predicate\": \"contains\",\n  \"value\": \"ABC Company\"\n}\n\n</code></pre>\n<h3 id=\"multiple-values-or-logic\">Multiple Values (OR Logic)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"key\": \"company_name\",\n  \"predicate\": \"is\",\n  \"value\": \"Company A or Company B\"\n}\n\n</code></pre>\n<h3 id=\"numeric-range\">Numeric Range</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"key\": \"total_net_amount\",\n  \"predicate\": \"is_greater\",\n  \"value\": \"1000\"\n}\n\n</code></pre>\n<h3 id=\"date-range\">Date Range</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"key\": \"invoice_date\",\n  \"predicate\": \"between\",\n  \"value\": \"01.01.2024 - 31.12.2024\"\n}\n\n</code></pre>\n<h3 id=\"array-values-for-enum\">Array Values for ENUM</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"key\": \"vat_flow_status_code\",\n  \"predicate\": \"is\",\n  \"value\": [\"processing\", \"completed\"]\n}\n\n</code></pre>\n<h3 id=\"emptynull-checks\">Empty/Null Checks</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"key\": \"vendor_vat_number\",\n  \"predicate\": \"is_empty\"\n}\n\n</code></pre>\n<h2 id=\"response-fields-description\">Response Fields Description</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>expenses</td>\n<td>Array of expense objects matching the filter criteria</td>\n</tr>\n<tr>\n<td>hasNextPage</td>\n<td>Boolean indicating if more pages are available</td>\n</tr>\n</tbody>\n</table>\n</div><p>Each expense object contains detailed information about the expense including financial amounts, vendor details, status codes, and metadata.</p>\n<h2 id=\"business-rules-and-validation\">Business Rules and Validation</h2>\n<ul>\n<li><p>Results are paginated with 20 expenses per page</p>\n</li>\n<li><p>Users can only access expenses for companies they have permissions for</p>\n</li>\n<li><p>Invalid filter keys or predicates will result in validation errors</p>\n</li>\n<li><p>Date formats must be DD.MM.YYYY or DD-MM-YYYY</p>\n</li>\n<li><p>Numeric values should not contain thousands separators</p>\n</li>\n<li><p>The system automatically applies user-level permissions to filter results</p>\n</li>\n<li><p>Some fields may require specific table joins and can impact query performance</p>\n</li>\n</ul>\n<h2 id=\"prerequisites\">Prerequisites</h2>\n<ul>\n<li><p>User authentication is required</p>\n</li>\n<li><p>User must have appropriate role permissions for expense access</p>\n</li>\n<li><p>Valid filter fields and predicates must be used</p>\n</li>\n<li><p>Page parameter must be a positive integer</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","expenses","filter"],"host":["https://api.vat4u.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"1debc12a-4726-4450-9ecf-0a5d379b7775"},{"name":"Get expense","id":"8f5acc08-518b-40d0-a884-acc2e177bf3b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.vat4u.com/v1/expenses/:id","description":"<p>The endpoint retrieves the details of a specific expense identified by its ID.</p>\n<h3 id=\"request\">Request</h3>\n<p>No request body is required for this endpoint.</p>\n<h3 id=\"response\">Response</h3>\n<p>The response will be a JSON object with the following properties:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"id\": 15194675,\n    \"parentId\": null,\n    \"company\": {\n        \"id\": 2, \n        \"legalName\": \"VAT4U GmbH\"\n    },\n    \"date\": \"2025-09-15\",\n    \"number\": \"1\",\n    \"createdAt\": \"2025-10-27 00:00:00\",\n    \"modifiedAt\": \"2025-10-27 00:00:00\",\n    \"modifiedBy\": 465,\n    \"lastSeenBy\": \"465\",\n    \"invoiceType\": \"regular\",\n    \"expenseType\": \"purchase\",\n    \"country\": {\n        \"name\": \"Germany\",\n        \"shortCode\": \"DE\",\n        \"inScope\": true\n    },\n    \"province\": null,\n    \"totalGrossAmount\": 64.5,\n    \"totalNetAmount\": 60.28,\n    \"totalVatAmount\": 4.22,\n    \"totalPotentialCashback\": 4.22,\n    \"totalApprovedAmount\": 0,\n    \"currency\": {\n        \"id\": 1,\n        \"shortCode\": \"EUR\",\n        \"name\": \"Euro\"\n    },\n    \"vendor\": {\n        \"name\": \"Taxi Company Berlin GmbH\",\n        \"streetName\": \"Mindener Str\",\n        \"streetNumber\": \"26\",\n        \"other\": \"\",\n        \"zipCode\": \"10589\",\n        \"city\": \"Berlin\",\n        \"country\": {\n            \"name\": \"Germany\",\n            \"shortCode\": \"DE\"\n        },\n        \"vatNumber\": \"DE123491011\",\n        \"taxNumber\": \"27/555/32204\"\n    },\n    \"importId\": null,\n    \"statuses\": {\n        \"invoicing\": null,\n        \"compliance\": {\n            \"id\": 26,\n            \"code\": \"POTENTIALLY_NOT_COMPLIANT\"\n        },\n        \"ocr\": {\n            \"id\": 202,\n            \"code\": \"READY\"\n        },\n        \"audit\": {\n            \"id\": 31,\n            \"code\": \"VERIFIED_BY_HUMAN\"\n        },\n        \"refund\": {\n            \"id\": 10,\n            \"code\": \"EXCLUDED\"\n        },\n        \"nextStage\": null,\n        \"payment\": null,\n        \"billing\": null,\n        \"dataQuality\": {\n            \"id\": 60,\n            \"code\": \"NOT_VERIFIED\"\n        },\n        \"amountVerification\": {\n            \"id\": 80,\n            \"code\": \"NOT_VERIFIED\"\n        },\n        \"dateVerification\": {\n            \"id\": 1300,\n            \"code\": \"NOT_VERIFIED\"\n        },\n        \"vatFlow\": {\n            \"id\": 703,\n            \"code\": \"FOREIGN_8TH\"\n        },\n        \"correction\": {\n            \"id\": 800,\n            \"code\": \"NOT_VERIFIED\"\n        },\n        \"restyling\": {\n            \"id\": 1001,\n            \"code\": \"NOT_REQUIRED\"\n        },\n        \"duplication\": {\n            \"id\": 900,\n            \"code\": \"NOT_CHECKED\"\n        },\n        \"demo\": null,\n        \"smartAi\": {\n            \"id\": 1503,\n            \"code\": \"DATA_RETRIEVED\"\n        }\n    },\n    \"nonCompliantReasons\": \"Not a VAT invoice or receipt;Missing claimant details\",\n    \"exclusion\": {\n        \"reasons\": \"Expired Deadline\",\n        \"comment\": null\n    },\n    \"exchangeRateToEur\": 1,\n    \"claim\": null,\n    \"additionalComment\": \"\",\n    \"optionalFields\": {\n        \"DataSource\": null,\n        \"TransactionType\": \"Travel expenses\",\n        \"ExtractionMethod\": null,\n        \"ErpTransactionIdentifier\": null,\n        \"TemTransactionIdentifier\": \"019273714123\",\n        \"TemTravelReportIdentifier\": null,\n        \"ErpTemBookingDate\": null,\n        \"ErpGLAccountNumber\": null,\n        \"ErpGLAccountName\": null,\n        \"ErpGLAccountDebitOrCredit\": null,\n        \"LegalEntityCode\": \"LX81623\",\n        \"BusinessUnitLevel1\": null,\n        \"BusinessUnitLevel2\": null,\n        \"BusinessUnitLevel3\": null,\n        \"CostCenter\": null,\n        \"ProjectNumber\": null,\n        \"EmployeeIdentifier\": null,\n        \"EmployeeName\": null,\n        \"TravelReportPurpose\": null,\n        \"ExpenseReceiptDescription\": null,\n        \"Comment1\": null,\n        \"Comment2\": null,\n        \"Comment3\": null,\n        \"Comment4\": \"Accommodation, Breakfast\",\n        \"Amount1\": null,\n        \"Amount2\": null,\n        \"Amount3\": null,\n        \"InvoiceCorrectionDate\": null,\n        \"InvoiceCorrectionBatchId\": null,\n        \"VATIdentified\": null\n    },\n    \"lineItems\": [\n        {\n            \"netAmount\": 60.28,\n            \"vatAmount\": 4.22,\n            \"potentialCashback\": 4.22,\n            \"grossAmount\": 64.5,\n            \"isReverseCharge\": false,\n            \"isVatExempt\": false,\n            \"userCategory\": \"\",\n            \"systemCategory\": \"Taxi (up to 50 km)\",\n            \"vatRate\": 7,\n            \"deductibilityRate\": 100,\n            \"taxKey\": \"\",\n            \"erpGLAccountNumber\": \"\",\n            \"descriptionData\": {\n                \"description\": \"\",\n                \"language\": \"\"\n            },\n            \"poNumber\": \"\",\n            \"poLine\": \"\",\n            \"poDescription\": \"\"\n        }\n    ],\n    \"smartAiResult\": {\n        \"date\": \"2025-09-15\",\n        \"number\": \"1\",\n        \"expenseType\": \"receipt\",\n        \"country\": {\n            \"name\": \"Germany\",\n            \"shortCode\": \"DE\",\n            \"inScope\": true\n        },\n        \"province\": null,\n        \"totalGrossAmountDocumentCurrency\": 64.5,\n        \"totalNetAmountDocumentCurrency\": 0,\n        \"totalVatAmountDocumentCurrency\": 0,\n        \"totalGrossAmountReportingCurrency\": 0,\n        \"totalNetAmountReportingCurrency\": 0,\n        \"totalVatAmountReportingCurrency\": 0,\n        \"totalGrossAmountReportingCurrencyCalculated\": 0,\n        \"totalNetAmountReportingCurrencyCalculated\": 0,\n        \"totalVatAmountReportingCurrencyCalculated\": 0,\n        \"currency\": {\n            \"id\": 1,\n            \"shortCode\": \"EUR\",\n            \"name\": \"Euro\"\n        },\n        \"vendor\": {\n            \"name\": \"Taxi Company Berlin GmbH\",\n            \"streetName\": \"Mindener Str.\",\n            \"streetNumber\": \"26\",\n            \"zipCode\": \"10589\",\n            \"city\": \"Berlin\",\n            \"country\": {\n                \"name\": \"Germany\",\n                \"shortCode\": \"DE\"\n            },\n            \"vatNumber\": null,\n            \"taxNumber\": \"27/555/32204\"\n        },\n        \"exchangeRateToEur\": null,\n        \"mainCategory\": \"Taxi\",\n        \"purchaseOrder\": null,\n        \"lineItems\": [\n            {\n                \"netAmount\": 0,\n                \"vatAmount\": 0,\n                \"grossAmount\": 64.5,\n                \"quantity\": null,\n                \"unitPrice\": null,\n                \"category\": \"Taxi\",\n                \"isReverseCharge\": false,\n                \"isGoodsOrServices\": \"services\",\n                \"vatRate\": 0,\n                \"taxKey\": null,\n                \"description\": \"Taxi fare\",\n                \"purchaseOrder\": null,\n                \"productCode\": null\n            }\n        ]\n    },\n    \"document\": \"https://app.vat4u.local/invoice/audit/79057a5641e2fcb4aae221307f611a41\"\n}\n\n</code></pre>\n<p>The response will contain detailed information about the expense including its ID, company details, dates, amounts, currency, vendor information, statuses, line items, and additional comments.</p>\n<h3 id=\"update-january-2026\">Update January 2026</h3>\n<p>For users who have SmartAI Advanced enabled, get expense API response now contains SmartAI data quality assesment result.</p>\n<h3 id=\"qa-quality-assessment\">QA (Quality Assessment)</h3>\n<p>The <code>qa</code> object contains machine-readable quality assessment results from the extraction pipeline:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>status</td>\n<td>string</td>\n<td>null</td>\n</tr>\n<tr>\n<td>qualityScore</td>\n<td>float</td>\n<td>Confidence score between 0.0 and 1.0</td>\n</tr>\n<tr>\n<td>flags</td>\n<td>string[]</td>\n<td>Array of issue codes detected during validation</td>\n</tr>\n</tbody>\n</table>\n</div><p>Possible flag values:</p>\n<ul>\n<li><p>ITEMS_GROSS_MISREAD_AS_NET – Item gross amounts are potentially misread as Net - when expense has no clear distinction whether the values reported are Net or Gross.</p>\n</li>\n<li><p>GROSS_NET_VAT_MISMATCH – Gross ≠ Net + VAT - Amounts extracted are not consistent with basic sanity check.</p>\n</li>\n<li><p>ITEM_AMOUNTS_INCONSISTENT – Per-item amounts are inconsistent</p>\n</li>\n<li><p>ITEMS_SUM_MISMATCH – Sum of items does not match extracted expense total amount.</p>\n</li>\n<li><p>TOTALS_MISSING – Required totals are missing - Smart AI could not extract total amounts of the expense</p>\n</li>\n<li><p>VAT_HALLUCINATION – VAT amount may be hallucinated - Either missing from the invoice, or does not seem to be realistic</p>\n</li>\n<li><p>VAT_RATE_INVALID – VAT rate does not match any known rates</p>\n</li>\n<li><p>CURRENCY_MISMATCH – Amounts do not match stated currency</p>\n</li>\n<li><p>EXCHANGE_RATE_MISSING – Multi-currency expense docuemnt detected but no exchange rate</p>\n</li>\n<li><p>LOW_CONFIDENCE – Low extraction confidence</p>\n</li>\n<li><p>MISSING_REQUIRED_FIELDS – Critical fields are missing</p>\n</li>\n<li><p>OCR_QUALITY_POOR – Poor OCR quality</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","expenses",":id"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"description":{"content":"<p>ID of the expense</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[{"id":"86417652-d4c7-4e19-a90a-c98ceb80cd77","name":"Success","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.vat4u.com/v1/expenses/:id","host":["https://api.vat4u.com"],"path":["v1","expenses",":id"],"variable":[{"key":"id","value":"15194675"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.25.5"},{"key":"Date","value":"Thu, 16 Jan 2025 00:42:17 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Set-Cookie","value":"ci_session=pqr06phsvenpb33kvss314c3tnu59kf2; expires=Thu, 16 Jan 2025 01:12:17 GMT; Max-Age=1800; path=/; domain=app.vat4u.local; secure; HttpOnly; SameSite=Lax"},{"key":"Expires","value":"Thu, 19 Nov 1981 08:52:00 GMT"},{"key":"Cache-Control","value":"no-store, no-cache, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Headers","value":"Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method"},{"key":"Access-Control-Allow-Methods","value":"GET, POST"},{"key":"X-Proxy-Cache","value":"BYPASS"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 15194675,\n    \"parentId\": null,\n    \"company\": {\n        \"id\": 2, \n        \"legalName\": \"VAT4U GmbH\"\n    },\n    \"date\": \"2025-09-15\",\n    \"number\": \"1\",\n    \"createdAt\": \"2025-10-27 00:00:00\",\n    \"modifiedAt\": \"2025-10-27 00:00:00\",\n    \"modifiedBy\": 465,\n    \"lastSeenBy\": \"465\",\n    \"invoiceType\": \"regular\",\n    \"expenseType\": \"purchase\",\n    \"country\": {\n        \"name\": \"Germany\",\n        \"shortCode\": \"DE\",\n        \"inScope\": true\n    },\n    \"province\": null,\n    \"totalGrossAmount\": 64.5,\n    \"totalNetAmount\": 60.28,\n    \"totalVatAmount\": 4.22,\n    \"totalPotentialCashback\": 4.22,\n    \"totalApprovedAmount\": 0,\n    \"currency\": {\n        \"id\": 1,\n        \"shortCode\": \"EUR\",\n        \"name\": \"Euro\"\n    },\n    \"vendor\": {\n        \"name\": \"Taxi Company Berlin GmbH\",\n        \"streetName\": \"Mindener Str\",\n        \"streetNumber\": \"26\",\n        \"other\": \"\",\n        \"zipCode\": \"10589\",\n        \"city\": \"Berlin\",\n        \"country\": {\n            \"name\": \"Germany\",\n            \"shortCode\": \"DE\"\n        },\n        \"vatNumber\": \"DE123491011\",\n        \"taxNumber\": \"27/555/32204\"\n    },\n    \"importId\": null,\n    \"statuses\": {\n        \"invoicing\": null,\n        \"compliance\": {\n            \"id\": 26,\n            \"code\": \"POTENTIALLY_NOT_COMPLIANT\"\n        },\n        \"ocr\": {\n            \"id\": 202,\n            \"code\": \"READY\"\n        },\n        \"audit\": {\n            \"id\": 31,\n            \"code\": \"VERIFIED_BY_HUMAN\"\n        },\n        \"refund\": {\n            \"id\": 10,\n            \"code\": \"EXCLUDED\"\n        },\n        \"nextStage\": null,\n        \"payment\": null,\n        \"billing\": null,\n        \"dataQuality\": {\n            \"id\": 60,\n            \"code\": \"NOT_VERIFIED\"\n        },\n        \"amountVerification\": {\n            \"id\": 80,\n            \"code\": \"NOT_VERIFIED\"\n        },\n        \"dateVerification\": {\n            \"id\": 1300,\n            \"code\": \"NOT_VERIFIED\"\n        },\n        \"vatFlow\": {\n            \"id\": 703,\n            \"code\": \"FOREIGN_8TH\"\n        },\n        \"correction\": {\n            \"id\": 800,\n            \"code\": \"NOT_VERIFIED\"\n        },\n        \"restyling\": {\n            \"id\": 1001,\n            \"code\": \"NOT_REQUIRED\"\n        },\n        \"duplication\": {\n            \"id\": 900,\n            \"code\": \"NOT_CHECKED\"\n        },\n        \"demo\": null,\n        \"smartAi\": {\n            \"id\": 1503,\n            \"code\": \"DATA_RETRIEVED\"\n        }\n    },\n    \"nonCompliantReasons\": \"Not a VAT invoice or receipt;Missing claimant details\",\n    \"exclusion\": {\n        \"reasons\": \"Expired Deadline\",\n        \"comment\": null\n    },\n    \"exchangeRateToEur\": 1,\n    \"claim\": null,\n    \"additionalComment\": \"\",\n    \"optionalFields\": {\n        \"DataSource\": null,\n        \"TransactionType\": \"Travel expenses\",\n        \"ExtractionMethod\": null,\n        \"ErpTransactionIdentifier\": null,\n        \"TemTransactionIdentifier\": \"019273714123\",\n        \"TemTravelReportIdentifier\": null,\n        \"ErpTemBookingDate\": null,\n        \"ErpGLAccountNumber\": null,\n        \"ErpGLAccountName\": null,\n        \"ErpGLAccountDebitOrCredit\": null,\n        \"LegalEntityCode\": \"LX81623\",\n        \"BusinessUnitLevel1\": null,\n        \"BusinessUnitLevel2\": null,\n        \"BusinessUnitLevel3\": null,\n        \"CostCenter\": null,\n        \"ProjectNumber\": null,\n        \"EmployeeIdentifier\": null,\n        \"EmployeeName\": null,\n        \"TravelReportPurpose\": null,\n        \"ExpenseReceiptDescription\": null,\n        \"Comment1\": null,\n        \"Comment2\": null,\n        \"Comment3\": null,\n        \"Comment4\": \"Accommodation, Breakfast\",\n        \"Amount1\": null,\n        \"Amount2\": null,\n        \"Amount3\": null,\n        \"InvoiceCorrectionDate\": null,\n        \"InvoiceCorrectionBatchId\": null,\n        \"VATIdentified\": null\n    },\n    \"lineItems\": [\n        {\n            \"netAmount\": 60.28,\n            \"vatAmount\": 4.22,\n            \"potentialCashback\": 4.22,\n            \"grossAmount\": 64.5,\n            \"isReverseCharge\": false,\n            \"isVatExempt\": false,\n            \"userCategory\": \"\",\n            \"systemCategory\": \"Taxi (up to 50 km)\",\n            \"vatRate\": 7,\n            \"deductibilityRate\": 100,\n            \"taxKey\": \"\",\n            \"erpGLAccountNumber\": \"\",\n            \"descriptionData\": {\n                \"description\": \"\",\n                \"language\": \"\"\n            },\n            \"poNumber\": \"\",\n            \"poLine\": \"\",\n            \"poDescription\": \"\"\n        }\n    ],\n    \"smartAiResult\": {\n        \"date\": \"2025-09-15\",\n        \"number\": \"1\",\n        \"expenseType\": \"receipt\",\n        \"country\": {\n            \"name\": \"Germany\",\n            \"shortCode\": \"DE\",\n            \"inScope\": true\n        },\n        \"province\": null,\n        \"totalGrossAmountDocumentCurrency\": 64.5,\n        \"totalNetAmountDocumentCurrency\": 0,\n        \"totalVatAmountDocumentCurrency\": 0,\n        \"totalGrossAmountReportingCurrency\": 0,\n        \"totalNetAmountReportingCurrency\": 0,\n        \"totalVatAmountReportingCurrency\": 0,\n        \"totalGrossAmountReportingCurrencyCalculated\": 0,\n        \"totalNetAmountReportingCurrencyCalculated\": 0,\n        \"totalVatAmountReportingCurrencyCalculated\": 0,\n        \"currency\": {\n            \"id\": 1,\n            \"shortCode\": \"EUR\",\n            \"name\": \"Euro\"\n        },\n        \"vendor\": {\n            \"name\": \"Taxi Company Berlin GmbH\",\n            \"streetName\": \"Mindener Str.\",\n            \"streetNumber\": \"26\",\n            \"zipCode\": \"10589\",\n            \"city\": \"Berlin\",\n            \"country\": {\n                \"name\": \"Germany\",\n                \"shortCode\": \"DE\"\n            },\n            \"vatNumber\": null,\n            \"taxNumber\": \"27/555/32204\"\n        },\n        \"exchangeRateToEur\": null,\n        \"mainCategory\": \"Taxi\",\n        \"purchaseOrder\": null,\n        \"lineItems\": [\n            {\n                \"netAmount\": 0,\n                \"vatAmount\": 0,\n                \"grossAmount\": 64.5,\n                \"quantity\": null,\n                \"unitPrice\": null,\n                \"category\": \"Taxi\",\n                \"isReverseCharge\": false,\n                \"isGoodsOrServices\": \"services\",\n                \"vatRate\": 0,\n                \"taxKey\": null,\n                \"description\": \"Taxi fare\",\n                \"purchaseOrder\": null,\n                \"productCode\": null\n            }\n        ],\n        \"qa\": {\n            \"status\": \"HUMAN_REVIEW\",\n            \"qualityScore\": 0.82,\n            \"flags\": [\n                \"VAT_HALLUCINATION\"\n            ]\n        }\n    },\n    \"document\": \"https://app.vat4u.local/invoice/audit/79057a5641e2fcb4aae221307f611a41\"\n}"}],"_postman_id":"8f5acc08-518b-40d0-a884-acc2e177bf3b"},{"name":"Enrich expense","id":"b8f9e5f5-1fbe-443d-a7c2-8a8cfea1646d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"fields\": [\n        {\n            \"name\": \"date\",\n            \"method\": \"use-when-empty\"\n        },\n        {\n            \"name\": \"number\",\n            \"method\": \"use-when-identified\"\n        },\n        {\n            \"name\": \"vendorName\",\n            \"method\": \"use-when-empty-or-diff\"\n        },\n        {\n            \"name\": \"streetName\",\n            \"method\": \"use-when-empty-or-diff\"\n        },\n        {\n            \"name\": \"streetNumber\",\n            \"method\": \"use-when-empty-or-diff\"\n        },\n        {\n            \"name\": \"zipCode\",\n            \"method\": \"use-when-empty\"\n        },\n        {\n            \"name\": \"city\",\n            \"method\": \"use-when-identified\"\n        },\n        {\n            \"name\": \"vatNumber\",\n            \"method\": \"use-when-empty-or-diff\"\n        },\n        {\n            \"name\": \"taxNumber\",\n            \"method\": \"use-when-empty\"\n        },\n        {\n            \"name\": \"totaNetAmount\",\n            \"method\": \"use-when-empty\"\n        },\n        {\n            \"name\": \"totalVatAmount\",\n            \"method\": \"use-when-empty\"\n        },\n        {\n            \"name\": \"currency\",\n            \"method\": \"use-when-empty\"\n        },\n        {\n            \"name\": \"country\",\n            \"method\": \"use-when-identified\"\n        },\n        {\n            \"name\": \"vendorCountry\",\n            \"method\": \"use-when-identified\"\n        },\n        {\n            \"name\": \"province\",\n            \"method\": \"use-when-empty\"\n        },\n        {\n            \"name\": \"mainCategory\",\n            \"method\": \"use-when-empty-or-diff\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/expenses/:id/enrich","description":"<p><strong>Purpose:</strong><br />This endpoint enriches a single expense record by updating or supplementing its fields from SmartAI retrieved data based on the provided enrichment methods per field.</p>\n<p><strong>URL Structure:</strong></p>\n<p><strong>Request Body:</strong></p>\n<ul>\n<li><p>Content-Type: <code>application/json</code></p>\n</li>\n<li><p>Structure:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">  {\n    \"fields\": [\n      { \"name\": \"&lt;fieldName&gt;\", \"method\": \"&lt;enrichmentMethod&gt;\" },\n      ...\n    ]\n  }\n\n</code></pre>\n</li>\n<li><p><strong>fields</strong>: Array of objects specifying which fields to enrich and the method to use for each.</p>\n<ul>\n<li><p><code>name</code>: Name of the expense field (e.g., <code>date</code>, <code>number</code>, <code>vendorName</code>, etc.).</p>\n</li>\n<li><p><code>method</code>: Enrichment strategy. Possible values:</p>\n<ul>\n<li><p><code>use-when-empty</code>: Enrich only if the original data (user provided data) is empty for the field.</p>\n</li>\n<li><p><code>use-when-identified</code>: Enrich if the field value was identified by SmartAI regardless to wheather data was originally provided or not.</p>\n</li>\n<li><p><code>use-when-empty-or-diff</code>: Enrich if the field is empty or differs from the originally provided value.</p>\n</li>\n</ul>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Usage Notes:</strong></p>\n<ul>\n<li><p>Only the specified fields in the <code>fields</code> array will be considered for enrichment.</p>\n</li>\n<li><p>Ensure the <code>id</code> in the URL matches the expense you wish to enrich.</p>\n</li>\n</ul>\n<p><strong>Special case for expense items:</strong></p>\n<p>If you wish to use SmartAI identified items include <code>mainCategory</code> in the list of fields. In this case, SmartAI identified items, including categories and amounts per item will be used.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","expenses",":id","enrich"],"host":["https://api.vat4u.com"],"query":[{"disabled":true,"key":"","value":null}],"variable":[{"description":{"content":"<p>ID of the expense to be enriched</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"b8f9e5f5-1fbe-443d-a7c2-8a8cfea1646d"},{"name":"Delete expense","id":"0989bd3e-8bf0-4d01-8ae7-be01ac97faf6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"https://api.vat4u.com/v1/expenses/:id","description":"<p>DELETE method with /expenses/{ID} endpoint will delete expense indentified by the ID parameter.</p>\n<p>A successful call to the endpoint will result in 202 OK status, with an empty response body.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","expenses",":id"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[{"id":"3a4d50b1-4218-4d13-b08e-c72c5fda5ac9","name":"Successful call to delete single expense with ID 12345","originalRequest":{"method":"DELETE","header":[],"url":"https://api.vat4u.com/v1/expenses/12345"},"status":"Ok","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 12 Jan 2021 16:19:28 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"120"},{"key":"Connection","value":"keep-alive"},{"key":"x-amzn-RequestId","value":"ab6c8b5c-129a-4177-b9ea-625382d13cbb"},{"key":"x-amzn-ErrorType","value":"IncompleteSignatureException"},{"key":"x-amz-apigw-id","value":"ZCzSmHRBFiAFUAA="}],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"0989bd3e-8bf0-4d01-8ae7-be01ac97faf6"}],"id":"1e728f7e-b299-4445-8d37-b76d35ba090e","_postman_id":"1e728f7e-b299-4445-8d37-b76d35ba090e","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}}},{"name":"Import","item":[{"name":"Initiate Expense Import","id":"ca2e10b1-7c6e-49d2-bd85-614983569954","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"type\": \"data\",\n\t\"companyId\": \"90272160-4ffd-4eba-9a46-ab9661544259\",\n\t\"categoriesMappingId\": \"af833502-1851-496a-bb34-80da5b463a55\",\n\t\"columnsMappingId\": \"3e034d39-5795-438e-9bf3-9da10b4981e2\",\n\t\"documentsDestination\": null,\n    \"dataFileName\": \"example.csv\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/import","description":"<p>Create a new import job.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>type</code></td>\n<td>Type of the import. Possible values <code>[\"data\",\"data+scans\"]</code></td>\n</tr>\n<tr>\n<td><code>dataFileName</code></td>\n<td>CSV data file name which is about to be uploaded. When provided, it must be at least 5 characters long and usually represents a human-readable file name which reflects contains data, data range, country, etc.</td>\n</tr>\n<tr>\n<td><code>companyId</code></td>\n<td>Company ID of the target company for Import, obtained from VAT4U platform web interface</td>\n</tr>\n<tr>\n<td><code>categoriesMappingId</code></td>\n<td>Category mapping obtained from VAT4U platform during integration phase</td>\n</tr>\n<tr>\n<td><code>columnsMappingId</code></td>\n<td>CSV Column mapping obtained from the VAT4U platform during the integration phase.</td>\n</tr>\n<tr>\n<td><code>documentsDestination</code></td>\n<td>Destination of documents for Import if the type of import is data + scans. Possible values: <code>[\"API\", \"SFTP\", \"EXTERNAL\"]</code> For SFTP destination, details should be obtained from VAT4U platform during the integration phase. If the SFTP type of destination is used, client should upload all documents to SFTP location under path <code>/imports/{importKey}/</code> having file names referenced inside the CSV data file. If API destination is specified Import function will return <code>documenstLocation</code> property inside Response object of this call. Further <code>URL</code> specified under <code>documentsLocation</code> should be used to submit ZIP archive linked to data import. When EXTERNAL document location is used client should provide HTTP accessible URL inside data CSV file from where VAT4U platform can download documents.</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","import"],"host":["https://api.vat4u.com"],"query":[],"variable":[]}},"response":[{"id":"6fa1b068-e8d3-46ab-aac1-0df26c45e6d5","name":"Initiate data + scans expense import with API as document destination","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"type\": \"data+scans\",\n\t\"companyId\": \"a61a8fbc-9459-4525-acf8-c133dea96b71\",\n\t\"categoriesMappingId\": \"af833502-1851-496a-bb34-80da5b463a55\",\n\t\"columnsMappingId\": \"3e034d39-5795-438e-9bf3-9da10b4981e2\",\n\t\"documentsDestination\": \"API\",\n    \"dataFileName\": \"example.csv\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/import"},"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"importKey\": \"9daef24a-24b9-454f-a818-f401a1b77f5e\",\n        \"type\": \"data+scans\",\n        \"dataLocation\": {\n            \"url\": \"https://example.com?signature\",\n            \"expiresIn\": 8400\n        },\n        \"documentsLocation\": {\n            \"url\": \"https://example.com?signature\",\n            \"expiresIn\": 8400\n        }\n    }\n}"},{"id":"7109a4fe-79c7-441b-b59e-8f55524a22ef","name":"Initiate Data only expense import","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n\t\"type\": \"data\",\n\t\"companyId\": \"a61a8fbc-9459-4525-acf8-c133dea96b71\",\n\t\"categoriesMappingId\": \"af833502-1851-496a-bb34-80da5b463a55\",\n\t\"columnsMappingId\": \"3e034d39-5795-438e-9bf3-9da10b4981e2\",\n    \"dataFileName\": \"example.csv\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/import"},"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"importKey\": \"9daef24a-24b9-454f-a818-f401a1b77f5e\",\n        \"type\": \"data\",\n        \"dataLocation\": {\n            \"url\": \"https://example.com?signature\",\n            \"expiresIn\": 8400\n        }\n    }\n}"},{"id":"79d8971f-611b-42ef-961c-96953905fee1","name":"Initiate data + scans expense import with external document location","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"type\": \"data+scans\",\n\t\"companyId\": \"a61a8fbc-9459-4525-acf8-c133dea96b71\",\n\t\"categoriesMappingId\": \"af833502-1851-496a-bb34-80da5b463a55\",\n\t\"columnsMappingId\": \"3e034d39-5795-438e-9bf3-9da10b4981e2\",\n\t\"documentsDestination\": \"EXTERNAL\",\n    \"dataFileName\": \"example.csv\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/import"},"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"importKey\": \"9daef24a-24b9-454f-a818-f401a1b77f5e\",\n        \"type\": \"data+scans\",\n        \"dataLocation\": {\n            \"url\": \"https://example.com?signature\",\n            \"expiresIn\": 8400\n        }\n    }\n}"},{"id":"d161265f-fd3d-4b8b-bfef-ad94793a95e1","name":"Initiate data + scans expense import with SFTP as document destination","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"type\": \"data+scans\",\n\t\"companyId\": \"a61a8fbc-9459-4525-acf8-c133dea96b71\",\n\t\"categoriesMappingId\": \"af833502-1851-496a-bb34-80da5b463a55\",\n\t\"columnsMappingId\": \"3e034d39-5795-438e-9bf3-9da10b4981e2/\",\n\t\"documentsDestination\": \"SFTP\",\n    \"dataFileName\": \"example.csv\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/import"},"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"importKey\": \"9daef24a-24b9-454f-a818-f401a1b77f5e\",\n        \"type\": \"data+scans\",\n        \"dataLocation\": {\n            \"url\": \"https://example.com?signature\",\n            \"expiresIn\": 8400\n        },\n        \"documentsLocation\": {\n\t\t    \"url\": \"sftp://imports/9daef24a-24b9-454f-a818-f401a1b77f5e\",\n\t\t    \"expiresIn\": -1\n        }\n    }\n}"}],"_postman_id":"ca2e10b1-7c6e-49d2-bd85-614983569954"}],"id":"1e313326-8bec-4c48-80c1-3c2c04c24a69","description":"<p>The main purpose of the Import API module is to provide support for mass data and documents import. POST to /import endpoint allows clients to create an Import Job. That's the start of the import process. Only import job itself doesn't contain any Expense data. Data and/or documents will come later in the import pipeline.</p>\n<p>We distinguish multiple scenarios for import:</p>\n<ul>\n<li><code>Data only</code> (expense data without expense documents)</li>\n<li><code>Data + Scans</code> (expense data with scans or images representing expense documents)</li>\n</ul>\n<p>Each import job request should specify corresponding parameters to have import successfully queued and processed.</p>\n<p>Expense data (expense lines and items) are always supplied in form of CSV file, containing necessary columns and conforming to Column mapping specified in Import initiation request.</p>\n<p>You can download CSV protocol reference file and example CSV from the following links respectively.\n<a href=\"https://s3.eu-central-1.amazonaws.com/cdn.vat4u.com/media/CSV+Reference+Document+-+2.19.xlsx\">CSV Reference Document v2.19</a> | <a href=\"https://s3.eu-central-1.amazonaws.com/cdn.vat4u.com/media/csv-sample-2.19.csv\">CSV Sample v2.19</a></p>\n<h4 id=\"data-only-import\">Data only import</h4>\n<p>When importing data only, first you create an import job and then upload CSV file containing data at signed <code>url</code> parameter returned by <code>/import</code> endpoint under <code>dataLocation</code> property.</p>\n<p>This upload is Async in nature. You will always receive 201 Created response if CSV data file is successfully uploaded. Job is queued and will be processed independently from the request timeline.</p>\n<h4 id=\"data--scans-import\">Data + Scans import</h4>\n<p>When you specify data + scans import type, two options for documents upload are available:</p>\n<ul>\n<li><strong>API based</strong></li>\n<li><strong>SFTP access based</strong></li>\n<li><strong>External URL based</strong></li>\n</ul>\n<p>Depending on documentsDestination property in create import request, the returned data object will contain the destination at which documents are expected to be found when Job processing starts (after data file is uploaded).</p>\n<p><strong>General requirements</strong>\nRegardless to methods used to supply documents, VAT4U platform will accept documents only in <code>[\"application/pdf\", \"image/jpeg\", \"image/png\"]</code> formats.\nA single document should not exceed the size of <code>5MB</code>.</p>\n<h4 id=\"api-documents-destination\">API documents destination</h4>\n<p><img src=\"https://cdn.vat4u.com/media/import-api.svg\" alt=\"Import // API document destination flow\" /></p>\n<p>When API  is specified as the destination, create import function will return temporary URL under <code>documentsLocation.url</code> property where client is supposed to initiate document upload first, and only when documents are uploaded successfully you should proceed with data upload, in the same way as for data only CSV upload. Documents are accepted in form of ZIP archive.\nThe size limit of the ZIP archive is 5GB. Files over 5GB will be rejected if upload to the signed URL is attempted.\nFiles inside ZIP should all comply with general document requirements. Files that do not comply with general document requirements will not be attached to corresponding expenses lines.</p>\n<p>ZIP archive must comply with file ZIP format and use a deflate option for Zip compression.</p>\n<p>Each document should have a name corresponding to the <code>Document reference</code> field inside CSV data file.\nexample CSV line</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Date</th>\n<th>Number</th>\n<th>Document Reference Field</th>\n<th>Gross</th>\n<th>Category</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>01/01/2019</td>\n<td>R-01</td>\n<td>22183-14819-12313.pdf</td>\n<td>23.19</td>\n<td>Accommodation</td>\n</tr>\n</tbody>\n</table>\n</div><p>where <code>22183-14819-12313.pdf</code> is one of the documents supplied inside ZIP file.</p>\n<p>Keep in mind that VAT4U will look only inside a top level directory inside ZIP file. <strong>ZIP should not contain Directory hierarchy of any kind.</strong></p>\n<h4 id=\"sftp-documents-estination\">SFTP documents estination</h4>\n<p><img src=\"https://cdn.vat4u.com/media/import-sftp.svg\" alt=\"Import // SFTP document destination flow\" /></p>\n<p>When SFTP is specified as the destination, response of create import function will contain the SFTP directory at which the client should upload all attachments, 1 by 1, before initiating the upload of the CSV data file.\nThe same CSV file structure applies for both API and SFTP destinations, as file name is used inside Document Reference Field of CSV file. The link between the Expense line inside the CSV file and the corresponding document is created by the document name.\nSFTP access details are to be provided during the integration phase.</p>\n<h4 id=\"external-url-document-location\">External URL document location</h4>\n<p><img src=\"https://cdn.vat4u.com/media/import-external.svg\" alt=\"Import // External URL document location flow\" /></p>\n<p>When External URL is specified as the document file location, Import function will look for downloadable attachment under URL provided by the client inside Document Reference Field of CSV data file.\nThis method should be used when a client can provide a publicly accessible endpoint for Document, so the VAT4U system can access (download) documents from external URL backed by a client system.</p>\n<p>Example CSV file would have the following structure in this scenario:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Date</th>\n<th>Number</th>\n<th>Document Reference Field</th>\n<th>Gross</th>\n<th>Category</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>01/01/2019</td>\n<td>R-01</td>\n<td><a href=\"https://example.com/22183-14819-12313.pdf\">https://example.com/22183-14819-12313.pdf</a></td>\n<td>23.19</td>\n<td>Accommodation</td>\n</tr>\n</tbody>\n</table>\n</div>","event":[{"listen":"prerequest","script":{"id":"17532052-87c7-4a82-9f0d-6edd3d9e3a82","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"c25ea413-3c06-4791-bfe1-aad8f3d15c40","type":"text/javascript","exec":[""]}}],"_postman_id":"1e313326-8bec-4c48-80c1-3c2c04c24a69","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}}},{"name":"Company","item":[{"name":"Config","item":[{"name":"List business areas","id":"4709bf72-4ea2-43c4-bb9b-d9a5fb5db9b1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/companies/business_areas","description":"<h2 id=\"get-business-areas\">Get Business Areas</h2>\n<p>This endpoint retrieves a list of business areas associated with companies.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>No request parameters are required for this GET request.</p>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>The response will include a JSON object containing the following key:</p>\n<ul>\n<li><code>business_areas</code>: An array of business area objects, each containing details relevant to the business area.</li>\n</ul>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Ensure that you have the necessary permissions to access this endpoint.</p>\n</li>\n<li><p>The response may vary based on the user's access level and the data available in the system.</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies","business_areas"],"host":["https://api.vat4u.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"4709bf72-4ea2-43c4-bb9b-d9a5fb5db9b1"}],"id":"f2918b7d-ef71-46bf-abd3-a632ae426119","_postman_id":"f2918b7d-ef71-46bf-abd3-a632ae426119","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}}},{"name":"General","item":[{"name":"Create company","id":"03975c63-cad5-4f99-a949-6f75545eaea0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"legalName\": \"Company ABC\", \n    \"countryCode\": \"DE\", \n    \"phoneNumber\": \"+1234567890\", \n    \"contactEmail\": \"contact-primary@example.com\",\n    \"contactEmail2\": \"contact-alternative@example.com\",\n    \"street\": \"Street Name\",\n    \"streetNumber\": \"23\",\n    \"streetOther\": \"B-12\",\n    \"city\": \"Duesseldorf\",\n    \"province\": \"NRW\",\n    \"zipCode\": \"40210\",\n    \"additionalInfo\": \"\",\n    \"businessAreaKey\": \"b3406b12-3619-4ccf-95fb-eed1dedd1729\",\n    \"accountNumber\": \"23422298910\",\n    \"serviceProviderKey\": \"{{serviceProviderKey}}\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/companies","description":"<p>Create a new company in the platform.</p>\n<blockquote>\n<p>This endpoint allows Expert or Franchisee service providers to create new companies. The authenticated user must have Administrator role in an Expert company or be part of a Franchisee organization. </p>\n</blockquote>\n<p><strong>Request Body Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"legalName\": \"Company ABC\", \n    \"countryCode\": \"DE\", \n    \"phoneNumber\": \"+1234567890\", \n    \"contactEmail\": \"contact-primary@example.com\",\n    \"contactEmail2\": \"contact-alternative@example.com\",\n    \"street\": \"Street Name\",\n    \"streetNumber\": \"23\",\n    \"streetOther\": \"B-12\",\n    \"city\": \"Duesseldorf\",\n    \"province\": \"NRW\",\n    \"zipCode\": \"40210\",\n    \"additionalInfo\": \"\",\n    \"groupContractCompanyKey\": \"\",\n    \"businessAreaKey\": \"b3406b12-3619-4ccf-95fb-eed1dedd1729\",\n    \"accountNumber\": \"23422298910\",\n    \"canadaTaxReportingType\": \"simplified\",\n    \"qstEligible\": true\n}\n\n</code></pre>\n<p><strong>Success Response (HTTP 201 Created):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": {\n        \"key\": \"UUID\",\n        \"legalName\": \"Company ABC\"\n    }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p><strong>HTTP 400 Bad Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Error description\"\n}\n\n</code></pre>\n<p><strong>HTTP 401 Unauthorized:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"Unauthorized\",\n    \"message\": \"You don't have permission to create a company for this service provider.\"\n}\n\n</code></pre>\n<p><strong>HTTP 500 Internal Server Error:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"\",\n    \"message\": \"\"\n}\n\n</code></pre>\n<p><strong>Request Body Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>legalName</td>\n<td>String</td>\n<td>Yes</td>\n<td>Legal name of the company to be created</td>\n</tr>\n<tr>\n<td>countryCode</td>\n<td>String</td>\n<td>Yes</td>\n<td>Country code in ISO 3166 Alpha 2 format (e.g., \"DE\", \"US\", \"FR\")</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>String</td>\n<td>Yes</td>\n<td>Primary contact phone number with international format</td>\n</tr>\n<tr>\n<td>contactEmail</td>\n<td>String</td>\n<td>Yes</td>\n<td>Primary contact email address for communication</td>\n</tr>\n<tr>\n<td>contactEmail2</td>\n<td>String</td>\n<td>No</td>\n<td>Secondary contact email address</td>\n</tr>\n<tr>\n<td>street</td>\n<td>String</td>\n<td>Yes</td>\n<td>Street name of the company address</td>\n</tr>\n<tr>\n<td>streetNumber</td>\n<td>String</td>\n<td>Yes</td>\n<td>House/building number</td>\n</tr>\n<tr>\n<td>streetOther</td>\n<td>String</td>\n<td>No</td>\n<td>Additional address information (apartment, suite, etc.)</td>\n</tr>\n<tr>\n<td>city</td>\n<td>String</td>\n<td>Yes</td>\n<td>City name</td>\n</tr>\n<tr>\n<td>province</td>\n<td>String</td>\n<td>No</td>\n<td>Province or state name</td>\n</tr>\n<tr>\n<td>zipCode</td>\n<td>String</td>\n<td>Yes</td>\n<td>Postal/ZIP code</td>\n</tr>\n<tr>\n<td>additionalInfo</td>\n<td>String</td>\n<td>No</td>\n<td>Additional address information</td>\n</tr>\n<tr>\n<td>groupContractCompanyKey</td>\n<td>String</td>\n<td>No</td>\n<td>UUID of the group contract main company (if company is part of a group)</td>\n</tr>\n<tr>\n<td>businessAreaKey</td>\n<td>String</td>\n<td>Yes</td>\n<td>UUID of the business area classification (can be retrieved from business areas endpoint)</td>\n</tr>\n<tr>\n<td>accountNumber</td>\n<td>String</td>\n<td>No</td>\n<td>Client account number for identification in external systems</td>\n</tr>\n<tr>\n<td>canadaTaxReportingType</td>\n<td>String</td>\n<td>No</td>\n<td>Reporting type that company uses if reporting TAX in Canada.  <br /><strong>simplified</strong>: When using simplified \"factor\" based calculation  <br /><strong>regular</strong>: When using exact GST/HST/PST(QST) rates. <a href=\"https://www.canada.ca/en/revenue-agency/services/tax/businesses/topics/gst-hst-businesses/calculate-prepare-report/input-tax-credit/calculate-methods.html\">https://www.canada.ca/en/revenue-agency/services/tax/businesses/topics/gst-hst-businesses/calculate-prepare-report/input-tax-credit/calculate-methods.html</a></td>\n</tr>\n<tr>\n<td>qstEligible</td>\n<td>Boolean</td>\n<td>No</td>\n<td>Indicates whether company is eligible for QST reclaim. This is usually only valid for companies based in Quebec, but can be also eligible for companies outside Quebec in special cases.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Response Fields Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>Unique UUID identifier for the newly created company</td>\n</tr>\n<tr>\n<td>legalName</td>\n<td>Legal name of the created company</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Business Rules and Validation:</strong></p>\n<ul>\n<li><p>The authenticated user must be an Administrator of an Expert company or belong to a Franchisee organization</p>\n</li>\n<li><p>If <code>groupContractCompanyKey</code> is provided, the user must be an Administrator of that group contract company</p>\n</li>\n<li><p>The <code>countryCode</code> must be a valid ISO 3166 Alpha 2 country code</p>\n</li>\n<li><p>The <code>businessAreaKey</code> must reference an existing business area in the system</p>\n</li>\n<li><p>The <code>serviceProviderKey</code> must reference an existing company from the system that is setup as an Expert of Franchisee.</p>\n</li>\n<li><p>All email addresses must be in valid email format</p>\n</li>\n</ul>\n<p><strong>Prerequisites:</strong></p>\n<ul>\n<li><p>User authentication is required</p>\n</li>\n<li><p>User must have Administrator role in an Expert or Franchisee company</p>\n</li>\n<li><p>The business area specified must exist in the system</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies"],"host":["https://api.vat4u.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"03975c63-cad5-4f99-a949-6f75545eaea0"},{"name":"List companies","id":"773bf620-76b0-44d2-b6a9-c35fbd9ec920","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.vat4u.com/v1/companies?page=0&modifiedAfter=2023-03-12","description":"<p>Retrieve list of companies from the platform.</p>\n<blockquote>\n<p>This endpoint has pagination. Pay attention to the <em>page</em> URL query parameter. If you omit this parameter API will return all companies from your profile. <strong>Hint:</strong> This is useful if you would like to retrieve all the records in a single API call. </p>\n</blockquote>\n<p><strong>Query parameters</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>page: Number (optional) - Page to be returned when using pagination. If ommited system will return first 10.000 records.\nmodifiedAfter: Date (optional) use to filter entities that have modifiedAt date after the specified date (format YYYY-MM-DD).\n\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": [{List of companies}],\n    \"pagination\": {\n        \"totalRecords\": {Total number of companies},\n        \"currentPage\": {Returned page},\n        \"perPage\": {Number of companies per page},\n        \"totalPages\": {Total number of pages in the API}\n    }\n}\n\n</code></pre>\n<p>Company object:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n            \"id\": 123456,\n            \"key\": \"UUID\",\n            \"legalName\": \"Test Company ABC\",\n            \"contactPhone\": \"+490000000000\",\n            \"contactEmail\": \"test@vat4u.com\",\n            \"contactEmail_2\": \"test-2@vat4u.com\",\n            \"address\": {\n                \"street\": \"Kreuzstr\",\n                \"houseNumber\": \"34\",\n                \"other\": \"\",\n                \"city\": \"Duesseldorf\",\n                \"province\": \"NRW\",\n                \"zipCode\": \"40210\",\n                \"additionalInfo\": \"\",\n                \"es\": { \n                    \"roadType\": null,\n                    \"province\": null,\n                    \"houseNumberType\": null\n                },\n                \"pl\": {\n                    \"numberRegion\": \"\",\n                    \"county\": \"\",\n                    \"community\": \"\",\n                    \"postOffice\": \"\",\n                    \"taxOffice_code\": \"\"\n                }\n            },\n            \"invoicing\": {\n                \"purchasingInfo\": null,\n                \"supplierNumber\": \"\",\n                \"invoicingEmail\": \"\",\n                \"invoicingEmailCc\": null,\n                \"paymentReminderEmail\": \"\",\n                \"invoicingContact\": {\n                    \"title\": \"\",\n                    \"first_name\": \"\",\n                    \"last_name\": \"\"\n                }\n            },\n            \"countryOfEstablishment\": {\n                \"id\": 654321,\n                \"code\": \"DE\",\n                \"name\": \"Germany\"\n            },\n            \"banks\": [],\n            \"vatInformation\": {\n                \"taxOffice\": null,\n                \"taxOfficeAddress\": \"\",\n                \"taxNumber\": \"\",\n                \"isTaxGroupMember\": false,\n                \"taxGroupNumber\": null,\n                \"taxGroupName\": null,\n                \"taxCertificates\": [\n                    {\n                        \"id\": 12345,\n                        \"createdBy\": 4455,\n                        \"validFrom\": \"2022-02-01 00:00:00\",\n                        \"validTo\": \"2023-02-18 23:59:59\",\n                        \"createdAt\": \"2024-02-01 08:57:22\"\n                    }\n                ],\n                \"referenceNumbers\": [\n                    {\n                        \"id\": 1303,\n                        \"countryId\": 52,\n                        \"refNumber\": \"0123456\"\n                    },\n                    {\n                        \"id\": 1304,\n                        \"countryId\": 50,\n                        \"refNumber\": \"1234123\"\n                    }\n                ],\n                \"vatRegistrations\": [\n                    {\n                        \"id\": 982,\n                        \"countryId\": 48,\n                        \"refNumber\": \"293481723\",\n                        \"validFrom\": \"2024-02-01 00:00:00\",\n                        \"validTo\": \"2024-02-23 23:59:59\",\n                        \"excludeFromImport\": false\n                    }\n                ]\n            },\n            \"representatives\": [],\n            \"businessActivity\": {\n                \"codes\": [],\n                \"description\": null,\n                \"businessArea\": {\n                    \"key\": \"4d4613bf-448d-416e-800a-d0dbfa3be431\",\n                    \"name\": \"Regular companies\"\n                }\n            },\n            \"customFields\": [],\n            \"documents\": [],\n            \"groupContractMainCompanyId\": 123456,\n            \"isInactive\": false,\n            \"isDemo\": false,\n            \"accountNumber\": null,\n            \"accountManagement\": {\n                \"accountManagerId\": 0,\n                \"processManagerId\": 0,\n                \"deliveryManagerId\": 0,\n                \"accountManagerComment\": null,\n                \"processManagerComment\": null,\n                \"deliveryManagerComment\": null\n            },\n            \"modified_at\": \"2024-03-04 13:10:23\"\n        }\n\n</code></pre>\n<p><strong>Single company object fields description</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Internal VAT4U Company ID</td>\n</tr>\n<tr>\n<td>key</td>\n<td>Internal VAT4U Company Key</td>\n</tr>\n<tr>\n<td>legalName</td>\n<td>Company legal entity name</td>\n</tr>\n<tr>\n<td>contactPhone</td>\n<td>Copmpany primary contact phone</td>\n</tr>\n<tr>\n<td>contactEmail</td>\n<td>Copmpany primary contact email - Used for communication from the platform</td>\n</tr>\n<tr>\n<td>contactEmail_2</td>\n<td>Copmpany secondary contact email</td>\n</tr>\n<tr>\n<td>address</td>\n<td>Address object - Legal entity phisical address details</td>\n</tr>\n<tr>\n<td>invoicing</td>\n<td>Invoicing and Billing related details of the company</td>\n</tr>\n<tr>\n<td>countryOfEstablishment</td>\n<td>Country object representing Country of Establishment of the Company</td>\n</tr>\n<tr>\n<td>banks</td>\n<td>List of the active company bank accounts</td>\n</tr>\n<tr>\n<td>vatInformation</td>\n<td>Company VAT related details</td>\n</tr>\n<tr>\n<td>representatives</td>\n<td>Company representatives as set up in the company settings</td>\n</tr>\n<tr>\n<td>businessActivity</td>\n<td>Company business activity related settings</td>\n</tr>\n<tr>\n<td>customFields</td>\n<td>Additional custom fields of the company as set up in the company settings</td>\n</tr>\n<tr>\n<td>documents</td>\n<td>Company related documents stored in the company settings area</td>\n</tr>\n<tr>\n<td>groupContractMainCompanyId</td>\n<td>If company is part of the group this ID is referencing Main Group entity, othervise it is equal to company Internal ID</td>\n</tr>\n<tr>\n<td>isInactive</td>\n<td>Indicating if this company became inactive</td>\n</tr>\n<tr>\n<td>isDemo</td>\n<td>Indicating if this company is only for Demo purpose</td>\n</tr>\n<tr>\n<td>accountNumber</td>\n<td>Company account number used to identify the entity in the client systems</td>\n</tr>\n<tr>\n<td>modifiedAt</td>\n<td>DateTime when company object was last updated.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Physical address details</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>street</td>\n<td>Street name</td>\n</tr>\n<tr>\n<td>houseNumber</td>\n<td>House number</td>\n</tr>\n<tr>\n<td>other</td>\n<td>Additional details</td>\n</tr>\n<tr>\n<td>city</td>\n<td>City</td>\n</tr>\n<tr>\n<td>province</td>\n<td>Province or state</td>\n</tr>\n<tr>\n<td>zipCode</td>\n<td>Postal code</td>\n</tr>\n<tr>\n<td>additionalInfo</td>\n<td>Extra information</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Physical address details</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>street</td>\n<td>Street name</td>\n</tr>\n<tr>\n<td>houseNumber</td>\n<td>House number</td>\n</tr>\n<tr>\n<td>other</td>\n<td>Additional details</td>\n</tr>\n<tr>\n<td>city</td>\n<td>City</td>\n</tr>\n<tr>\n<td>province</td>\n<td>Province or state</td>\n</tr>\n<tr>\n<td>zipCode</td>\n<td>Postal code</td>\n</tr>\n<tr>\n<td>additionalInfo</td>\n<td>Extra information</td>\n</tr>\n<tr>\n<td><strong>es</strong> [object]</td>\n<td><em>Spain specific address settings - for Spanish companies only</em></td>\n</tr>\n<tr>\n<td>roadType</td>\n<td>Type of road</td>\n</tr>\n<tr>\n<td>province</td>\n<td>Province</td>\n</tr>\n<tr>\n<td>houseNumberType</td>\n<td>House number format</td>\n</tr>\n<tr>\n<td><strong>pl</strong> [object]</td>\n<td><em>Poland specific address settings - for Polish companies only</em></td>\n</tr>\n<tr>\n<td>numberRegion</td>\n<td>Region number</td>\n</tr>\n<tr>\n<td>county</td>\n<td>County</td>\n</tr>\n<tr>\n<td>community</td>\n<td>Community</td>\n</tr>\n<tr>\n<td>postOffice</td>\n<td>Post office</td>\n</tr>\n<tr>\n<td>taxOffice_code</td>\n<td>Tax office code</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Billing and invoicing details - Used together with VAT4U Invoicing module</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>purchasingInfo</td>\n<td>Client PO number that should appear in the client invoice header</td>\n</tr>\n<tr>\n<td>supplierNumber</td>\n<td>Supplier Number that should appear in the client invoice header</td>\n</tr>\n<tr>\n<td>invoicingEmail</td>\n<td>Invoicing email address used to send invoices from the VAT4U Invoicing module</td>\n</tr>\n<tr>\n<td>invoicingEmailCc</td>\n<td>BiInvoicing email CC</td>\n</tr>\n<tr>\n<td>paymentReminderEmail</td>\n<td>Invoicing email address for payment reminders</td>\n</tr>\n<tr>\n<td>invoicingContact</td>\n<td>Invoicing contact person that should appear in the client invoice header</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Country of establishment</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Country internal VAT4U Id</td>\n</tr>\n<tr>\n<td>code</td>\n<td>Country name in ISO 3166 Alpha 2</td>\n</tr>\n<tr>\n<td>name</td>\n<td>International country name</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Country of establishment</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Country internal VAT4U Id</td>\n</tr>\n<tr>\n<td>code</td>\n<td>Country name in ISO 3166 Alpha 2</td>\n</tr>\n<tr>\n<td>name</td>\n<td>International country name</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Bank details object of the 'banks' array</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>internalName</td>\n<td>Internal name of the Bank account</td>\n</tr>\n<tr>\n<td>bankAddress</td>\n<td>Address of the bank</td>\n</tr>\n<tr>\n<td>bankName</td>\n<td>Bank name</td>\n</tr>\n<tr>\n<td>iban</td>\n<td>IBAN</td>\n</tr>\n<tr>\n<td>bic</td>\n<td>BIC</td>\n</tr>\n<tr>\n<td>accountNumber</td>\n<td>Account Number</td>\n</tr>\n<tr>\n<td>accountHolderName</td>\n<td>Account holder name</td>\n</tr>\n<tr>\n<td>accountHolderAddress</td>\n<td>Account holder address</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>Date when this bank account was created in VAT4U - YYYY-MM-DD HH:MM:SS format</td>\n</tr>\n<tr>\n<td>createdBy</td>\n<td>ID of the user who created this bank account</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Details of the 'vatInformation' object</strong><br />This object is representing details about the legal entity information related to VAT Information settings.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>taxOffice</td>\n<td>Entity local tax office name</td>\n</tr>\n<tr>\n<td>taxOfficeAddress</td>\n<td>Local tax office address</td>\n</tr>\n<tr>\n<td>taxNumber</td>\n<td>TAX number in Country of Establishment</td>\n</tr>\n<tr>\n<td>isTaxGroupMember</td>\n<td>TAX group membership flag</td>\n</tr>\n<tr>\n<td>taxGroupNumber</td>\n<td>TAX group number</td>\n</tr>\n<tr>\n<td>taxGroupName</td>\n<td>TAX group name</td>\n</tr>\n<tr>\n<td></td>\n<td>taxCertificates</td>\n</tr>\n<tr>\n<td>id</td>\n<td>TAX Certificate internal ID</td>\n</tr>\n<tr>\n<td>createdBy</td>\n<td>Created by User ID</td>\n</tr>\n<tr>\n<td>validFrom</td>\n<td>Valid from date</td>\n</tr>\n<tr>\n<td>validTo</td>\n<td>Valid to date</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>TAX Certificate creation date</td>\n</tr>\n<tr>\n<td></td>\n<td>referenceNumbers</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Ref. number internal ID</td>\n</tr>\n<tr>\n<td>countryId</td>\n<td>Internal ID of the country related to the Ref. number</td>\n</tr>\n<tr>\n<td>refNumber</td>\n<td>Reference number value</td>\n</tr>\n<tr>\n<td></td>\n<td>vatRegistrations</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Internal VAT registration ID</td>\n</tr>\n<tr>\n<td>countryId</td>\n<td>Internal ID of the country of registration</td>\n</tr>\n<tr>\n<td>refNumber</td>\n<td>VAT Registration number (VAT number in the country of registration)</td>\n</tr>\n<tr>\n<td>validFrom</td>\n<td>VAT Registration start date</td>\n</tr>\n<tr>\n<td>validTo</td>\n<td>VAT Registration end date</td>\n</tr>\n<tr>\n<td>excludeFromImport</td>\n<td>Flag if expenses from this country should be skipped during the data import</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Details of the 'representatives' array objects</strong></p>\n<p>Represents list of entites which can be introduced as Claim Representatives during the claim creation.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Internal VAT4U Id of the representative record</td>\n</tr>\n<tr>\n<td>companyId</td>\n<td>Internal VAT4U ID of the company registered as the representative</td>\n</tr>\n<tr>\n<td>legalName</td>\n<td>Representative company legal name</td>\n</tr>\n<tr>\n<td>contactPerson</td>\n<td>Representative contact person</td>\n</tr>\n<tr>\n<td>poaFileName</td>\n<td>Representative POA file name</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>Date and time when representative record was created</td>\n</tr>\n<tr>\n<td><strong>countries [array of objects]</strong></td>\n<td>List of countries where this representative is allowed to represent the company when filing VAT claim</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Country internal VAT4U Id</td>\n</tr>\n<tr>\n<td>code</td>\n<td>Country name in ISO 3166 Alpha 2</td>\n</tr>\n<tr>\n<td>name</td>\n<td>International country name</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Details of the 'businessActivity' object</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>codes</td>\n<td>Business activity codes</td>\n</tr>\n<tr>\n<td>description</td>\n<td>Business activity description (13th dir. related)</td>\n</tr>\n<tr>\n<td><strong>businessArea [object]</strong></td>\n<td>Business area - Internal VAT4U company classification</td>\n</tr>\n<tr>\n<td>key</td>\n<td>Internal identifier</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Descriptive name of the business area classification</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Details of the 'accountManagement' object</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>accountManagerId</td>\n<td>Internal ID of the user assigned as Account Manager</td>\n</tr>\n<tr>\n<td>processManagerId</td>\n<td>Internal ID of the user assigned as Processing Manager</td>\n</tr>\n<tr>\n<td>deliveryManagerId</td>\n<td>Internal ID of the user assigned as Delivery Manager</td>\n</tr>\n<tr>\n<td>accountManagerComment</td>\n<td>Comment of the Account Manager</td>\n</tr>\n<tr>\n<td>processManagerComment</td>\n<td>Comment of the Processing Manager</td>\n</tr>\n<tr>\n<td>deliveryManagerComment</td>\n<td>Comment of the Delivery Manager</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies"],"host":["https://api.vat4u.com"],"query":[{"key":"page","value":"0"},{"key":"modifiedAfter","value":"2023-03-12"}],"variable":[]}},"response":[{"id":"319cc77f-eaba-414e-be1c-aa5a0785780c","name":"Successful response","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.vat4u.com/v1/companies?page=0","host":["https://api.vat4u.com"],"path":["v1","companies"],"query":[{"key":"page","value":"0"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": [],\n    \"pagination\": {\n        \"totalRecords\": 83,\n        \"currentPage\": 0,\n        \"perPage\": 25,\n        \"totalPages\": 4\n    }\n}"}],"_postman_id":"773bf620-76b0-44d2-b6a9-c35fbd9ec920"},{"name":"Single company","id":"7977841c-5a19-423b-927b-a0deb46c82ee","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.vat4u.com/v1/companies/:companyKey","description":"<p>Retrieve a single company by KEY.</p>\n<p><strong>Path parameters</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Include company \"key\" from the list of companies to retrieve a single company data.\n\n</code></pre><p><strong>Response</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": [{Company object}],\n}\n\n</code></pre>\n<p><strong>Company object</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n            \"id\": 123456,\n            \"key\": \"UUID\",\n            \"legalName\": \"Test Company ABC\",\n            \"contactPhone\": \"+490000000000\",\n            \"contactEmail\": \"test@vat4u.com\",\n            \"contactEmail_2\": \"test-2@vat4u.com\",\n            \"address\": {\n                \"street\": \"Kreuzstr\",\n                \"houseNumber\": \"34\",\n                \"other\": \"\",\n                \"city\": \"Duesseldorf\",\n                \"province\": \"NRW\",\n                \"zipCode\": \"40210\",\n                \"additionalInfo\": \"\",\n                \"es\": { \n                    \"roadType\": null,\n                    \"province\": null,\n                    \"houseNumberType\": null\n                },\n                \"pl\": {\n                    \"numberRegion\": \"\",\n                    \"county\": \"\",\n                    \"community\": \"\",\n                    \"postOffice\": \"\",\n                    \"taxOffice_code\": \"\"\n                }\n            },\n            \"invoicing\": {\n                \"purchasingInfo\": null,\n                \"supplierNumber\": \"\",\n                \"invoicingEmail\": \"\",\n                \"invoicingEmailCc\": null,\n                \"paymentReminderEmail\": \"\",\n                \"invoicingContact\": {\n                    \"title\": \"\",\n                    \"first_name\": \"\",\n                    \"last_name\": \"\"\n                }\n            },\n            \"countryOfEstablishment\": {\n                \"id\": 654321,\n                \"code\": \"DE\",\n                \"name\": \"Germany\"\n            },\n            \"banks\": [],\n            \"vatInformation\": {\n                \"taxOffice\": null,\n                \"taxOfficeAddress\": \"\",\n                \"taxNumber\": \"\",\n                \"isTaxGroupMember\": false,\n                \"taxGroupNumber\": null,\n                \"taxGroupName\": null,\n                \"taxCertificates\": [\n                    {\n                        \"id\": 12345,\n                        \"createdBy\": 4455,\n                        \"validFrom\": \"2022-02-01 00:00:00\",\n                        \"validTo\": \"2023-02-18 23:59:59\",\n                        \"createdAt\": \"2024-02-01 08:57:22\"\n                    }\n                ],\n                \"referenceNumbers\": [\n                    {\n                        \"id\": 1303,\n                        \"countryId\": 52,\n                        \"refNumber\": \"0123456\"\n                    },\n                    {\n                        \"id\": 1304,\n                        \"countryId\": 50,\n                        \"refNumber\": \"1234123\"\n                    }\n                ],\n                \"vatRegistrations\": [\n                    {\n                        \"id\": 982,\n                        \"countryId\": 48,\n                        \"refNumber\": \"293481723\",\n                        \"validFrom\": \"2024-02-01 00:00:00\",\n                        \"validTo\": \"2024-02-23 23:59:59\",\n                        \"excludeFromImport\": false\n                    }\n                ]\n            },\n            \"representatives\": [],\n            \"businessActivity\": {\n                \"codes\": [],\n                \"description\": null,\n                \"businessArea\": {\n                    \"key\": \"4d4613bf-448d-416e-800a-d0dbfa3be431\",\n                    \"name\": \"Regular companies\"\n                }\n            },\n            \"customFields\": [],\n            \"documents\": [],\n            \"groupContractMainCompanyId\": 123456,\n            \"isInactive\": false,\n            \"isDemo\": false,\n            \"accountNumber\": null,\n            \"accountManagement\": {\n                \"accountManagerId\": 0,\n                \"processManagerId\": 0,\n                \"deliveryManagerId\": 0,\n                \"accountManagerComment\": null,\n                \"processManagerComment\": null,\n                \"deliveryManagerComment\": null\n            },\n            \"modified_at\": \"2024-03-04 13:10:23\"\n        }\n\n</code></pre>\n<p><strong>Single company object fields description</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Internal VAT4U Company ID</td>\n</tr>\n<tr>\n<td>key</td>\n<td>Internal VAT4U Company Key</td>\n</tr>\n<tr>\n<td>legalName</td>\n<td>Company legal entity name</td>\n</tr>\n<tr>\n<td>contactPhone</td>\n<td>Copmpany primary contact phone</td>\n</tr>\n<tr>\n<td>contactEmail</td>\n<td>Copmpany primary contact email - Used for communication from the platform</td>\n</tr>\n<tr>\n<td>contactEmail_2</td>\n<td>Copmpany secondary contact email</td>\n</tr>\n<tr>\n<td>address</td>\n<td>Address object - Legal entity phisical address details</td>\n</tr>\n<tr>\n<td>invoicing</td>\n<td>Invoicing and Billing related details of the company</td>\n</tr>\n<tr>\n<td>countryOfEstablishment</td>\n<td>Country object representing Country of Establishment of the Company</td>\n</tr>\n<tr>\n<td>banks</td>\n<td>List of the active company bank accounts</td>\n</tr>\n<tr>\n<td>vatInformation</td>\n<td>Company VAT related details</td>\n</tr>\n<tr>\n<td>representatives</td>\n<td>Company representatives as set up in the company settings</td>\n</tr>\n<tr>\n<td>businessActivity</td>\n<td>Company business activity related settings</td>\n</tr>\n<tr>\n<td>customFields</td>\n<td>Additional custom fields of the company as set up in the company settings</td>\n</tr>\n<tr>\n<td>documents</td>\n<td>Company related documents stored in the company settings area</td>\n</tr>\n<tr>\n<td>groupContractMainCompanyId</td>\n<td>If company is part of the group this ID is referencing Main Group entity, othervise it is equal to company Internal ID</td>\n</tr>\n<tr>\n<td>isInactive</td>\n<td>Indicating if this company became inactive</td>\n</tr>\n<tr>\n<td>isDemo</td>\n<td>Indicating if this company is only for Demo purpose</td>\n</tr>\n<tr>\n<td>accountNumber</td>\n<td>Company account number used to identify the entity in the client systems</td>\n</tr>\n<tr>\n<td>modifiedAt</td>\n<td>DateTime when company object was last updated.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Physical address details</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>street</td>\n<td>Street name</td>\n</tr>\n<tr>\n<td>houseNumber</td>\n<td>House number</td>\n</tr>\n<tr>\n<td>other</td>\n<td>Additional details</td>\n</tr>\n<tr>\n<td>city</td>\n<td>City</td>\n</tr>\n<tr>\n<td>province</td>\n<td>Province or state</td>\n</tr>\n<tr>\n<td>zipCode</td>\n<td>Postal code</td>\n</tr>\n<tr>\n<td>additionalInfo</td>\n<td>Extra information</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Physical address details</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>street</td>\n<td>Street name</td>\n</tr>\n<tr>\n<td>houseNumber</td>\n<td>House number</td>\n</tr>\n<tr>\n<td>other</td>\n<td>Additional details</td>\n</tr>\n<tr>\n<td>city</td>\n<td>City</td>\n</tr>\n<tr>\n<td>province</td>\n<td>Province or state</td>\n</tr>\n<tr>\n<td>zipCode</td>\n<td>Postal code</td>\n</tr>\n<tr>\n<td>additionalInfo</td>\n<td>Extra information</td>\n</tr>\n<tr>\n<td><strong>es</strong> [object]</td>\n<td><em>Spain specific address settings - for Spanish companies only</em></td>\n</tr>\n<tr>\n<td>roadType</td>\n<td>Type of road</td>\n</tr>\n<tr>\n<td>province</td>\n<td>Province</td>\n</tr>\n<tr>\n<td>houseNumberType</td>\n<td>House number format</td>\n</tr>\n<tr>\n<td><strong>pl</strong> [object]</td>\n<td><em>Poland specific address settings - for Polish companies only</em></td>\n</tr>\n<tr>\n<td>numberRegion</td>\n<td>Region number</td>\n</tr>\n<tr>\n<td>county</td>\n<td>County</td>\n</tr>\n<tr>\n<td>community</td>\n<td>Community</td>\n</tr>\n<tr>\n<td>postOffice</td>\n<td>Post office</td>\n</tr>\n<tr>\n<td>taxOffice_code</td>\n<td>Tax office code</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Billing and invoicing details - Used together with VAT4U Invoicing module</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>purchasingInfo</td>\n<td>Client PO number that should appear in the client invoice header</td>\n</tr>\n<tr>\n<td>supplierNumber</td>\n<td>Supplier Number that should appear in the client invoice header</td>\n</tr>\n<tr>\n<td>invoicingEmail</td>\n<td>Invoicing email address used to send invoices from the VAT4U Invoicing module</td>\n</tr>\n<tr>\n<td>invoicingEmailCc</td>\n<td>BiInvoicing email CC</td>\n</tr>\n<tr>\n<td>paymentReminderEmail</td>\n<td>Invoicing email address for payment reminders</td>\n</tr>\n<tr>\n<td>invoicingContact</td>\n<td>Invoicing contact person that should appear in the client invoice header</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Country of establishment</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Country internal VAT4U Id</td>\n</tr>\n<tr>\n<td>code</td>\n<td>Country name in ISO 3166 Alpha 2</td>\n</tr>\n<tr>\n<td>name</td>\n<td>International country name</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Country of establishment</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Country internal VAT4U Id</td>\n</tr>\n<tr>\n<td>code</td>\n<td>Country name in ISO 3166 Alpha 2</td>\n</tr>\n<tr>\n<td>name</td>\n<td>International country name</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Bank details object of the 'banks' array</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>internalName</td>\n<td>Internal name of the Bank account</td>\n</tr>\n<tr>\n<td>bankAddress</td>\n<td>Address of the bank</td>\n</tr>\n<tr>\n<td>bankName</td>\n<td>Bank name</td>\n</tr>\n<tr>\n<td>iban</td>\n<td>IBAN</td>\n</tr>\n<tr>\n<td>bic</td>\n<td>BIC</td>\n</tr>\n<tr>\n<td>accountNumber</td>\n<td>Account Number</td>\n</tr>\n<tr>\n<td>accountHolderName</td>\n<td>Account holder name</td>\n</tr>\n<tr>\n<td>accountHolderAddress</td>\n<td>Account holder address</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>Date when this bank account was created in VAT4U - YYYY-MM-DD HH:MM:SS format</td>\n</tr>\n<tr>\n<td>createdBy</td>\n<td>ID of the user who created this bank account</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Details of the 'vatInformation' object</strong><br />This object is representing details about the legal entity information related to VAT Information settings.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>taxOffice</td>\n<td>Entity local tax office name</td>\n</tr>\n<tr>\n<td>taxOfficeAddress</td>\n<td>Local tax office address</td>\n</tr>\n<tr>\n<td>taxNumber</td>\n<td>TAX number in Country of Establishment</td>\n</tr>\n<tr>\n<td>isTaxGroupMember</td>\n<td>TAX group membership flag</td>\n</tr>\n<tr>\n<td>taxGroupNumber</td>\n<td>TAX group number</td>\n</tr>\n<tr>\n<td>taxGroupName</td>\n<td>TAX group name</td>\n</tr>\n<tr>\n<td></td>\n<td>taxCertificates</td>\n</tr>\n<tr>\n<td>id</td>\n<td>TAX Certificate internal ID</td>\n</tr>\n<tr>\n<td>createdBy</td>\n<td>Created by User ID</td>\n</tr>\n<tr>\n<td>validFrom</td>\n<td>Valid from date</td>\n</tr>\n<tr>\n<td>validTo</td>\n<td>Valid to date</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>TAX Certificate creation date</td>\n</tr>\n<tr>\n<td></td>\n<td>referenceNumbers</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Ref. number internal ID</td>\n</tr>\n<tr>\n<td>countryId</td>\n<td>Internal ID of the country related to the Ref. number</td>\n</tr>\n<tr>\n<td>refNumber</td>\n<td>Reference number value</td>\n</tr>\n<tr>\n<td></td>\n<td>vatRegistrations</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Internal VAT registration ID</td>\n</tr>\n<tr>\n<td>countryId</td>\n<td>Internal ID of the country of registration</td>\n</tr>\n<tr>\n<td>refNumber</td>\n<td>VAT Registration number (VAT number in the country of registration)</td>\n</tr>\n<tr>\n<td>validFrom</td>\n<td>VAT Registration start date</td>\n</tr>\n<tr>\n<td>validTo</td>\n<td>VAT Registration end date</td>\n</tr>\n<tr>\n<td>excludeFromImport</td>\n<td>Flag if expenses from this country should be skipped during the data import</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Details of the 'representatives' array objects</strong></p>\n<p>Represents list of entites which can be introduced as Claim Representatives during the claim creation.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Internal VAT4U Id of the representative record</td>\n</tr>\n<tr>\n<td>companyId</td>\n<td>Internal VAT4U ID of the company registered as the representative</td>\n</tr>\n<tr>\n<td>legalName</td>\n<td>Representative company legal name</td>\n</tr>\n<tr>\n<td>contactPerson</td>\n<td>Representative contact person</td>\n</tr>\n<tr>\n<td>poaFileName</td>\n<td>Representative POA file name</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>Date and time when representative record was created</td>\n</tr>\n<tr>\n<td><strong>countries [array of objects]</strong></td>\n<td>List of countries where this representative is allowed to represent the company when filing VAT claim</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Country internal VAT4U Id</td>\n</tr>\n<tr>\n<td>code</td>\n<td>Country name in ISO 3166 Alpha 2</td>\n</tr>\n<tr>\n<td>name</td>\n<td>International country name</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Details of the 'businessActivity' object</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>codes</td>\n<td>Business activity codes</td>\n</tr>\n<tr>\n<td>description</td>\n<td>Business activity description (13th dir. related)</td>\n</tr>\n<tr>\n<td><strong>businessArea [object]</strong></td>\n<td>Business area - Internal VAT4U company classification</td>\n</tr>\n<tr>\n<td>key</td>\n<td>Internal identifier</td>\n</tr>\n<tr>\n<td>name</td>\n<td>Descriptive name of the business area classification</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Details of the 'accountManagement' object</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>accountManagerId</td>\n<td>Internal ID of the user assigned as Account Manager</td>\n</tr>\n<tr>\n<td>processManagerId</td>\n<td>Internal ID of the user assigned as Processing Manager</td>\n</tr>\n<tr>\n<td>deliveryManagerId</td>\n<td>Internal ID of the user assigned as Delivery Manager</td>\n</tr>\n<tr>\n<td>accountManagerComment</td>\n<td>Comment of the Account Manager</td>\n</tr>\n<tr>\n<td>processManagerComment</td>\n<td>Comment of the Processing Manager</td>\n</tr>\n<tr>\n<td>deliveryManagerComment</td>\n<td>Comment of the Delivery Manager</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies",":companyKey"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"","key":"companyKey"}]}},"response":[{"id":"fee5f747-872b-40c8-bda1-9e1c1d3c7390","name":"Successful response","originalRequest":{"method":"GET","header":[],"url":"https://api.vat4u.com/v1/companies/4cea7660-5d81-4e93-a7be-16aad180434f"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Headers","value":"Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method"},{"key":"Access-Control-Allow-Methods","value":"GET, POST"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Cache-Control","value":"no-store, no-cache, must-revalidate"},{"key":"Content-Encoding","value":"gzip"},{"key":"Content-Length","value":"651"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Date","value":"Tue, 23 Apr 2024 12:02:10 GMT"},{"key":"Expires","value":"Thu, 19 Nov 1981 08:52:00 GMT"},{"key":"Pragma","value":"no-cache"},{"key":"Server","value":"Apache/2.4.41 (Ubuntu)"},{"key":"Set-Cookie","value":"ci_session=q01motteb94t13fin7u7g3ldecgv5cof; expires=Tue, 23-Apr-2024 12:32:10 GMT; Max-Age=1800; path=/; domain=.app.vat4u.local; secure; HttpOnly; SameSite=Lax"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/7.4.33"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"id\": 14693,\n        \"key\": \"4cea7660-5d81-4e93-a7be-16aad180434f\",\n        \"legalName\": \"Demo - 14693\",\n        \"contactPhone\": null,\n        \"contactEmail\": \"\",\n        \"contactEmail_2\": \"\",\n        \"address\": {\n            \"street\": \"\",\n            \"houseNumber\": \"\",\n            \"other\": \"\",\n            \"city\": \"\",\n            \"province\": \"\",\n            \"zipCode\": \"\",\n            \"additionalInfo\": \"\",\n            \"es\": {\n                \"roadType\": null,\n                \"province\": null,\n                \"houseNumberType\": null\n            },\n            \"pl\": {\n                \"numberRegion\": \"\",\n                \"county\": \"\",\n                \"community\": \"\",\n                \"postOffice\": \"\",\n                \"taxOffice_code\": \"\"\n            }\n        },\n        \"invoicing\": {\n            \"purchasingInfo\": null,\n            \"supplierNumber\": \"\",\n            \"invoicingEmail\": \"\",\n            \"invoicingEmailCc\": null,\n            \"paymentReminderEmail\": \"\",\n            \"invoicingContact\": {\n                \"title\": \"\",\n                \"first_name\": \"\",\n                \"last_name\": \"\"\n            }\n        },\n        \"countryOfEstablishment\": {\n            \"id\": 12,\n            \"code\": \"IT\",\n            \"name\": \"Italy\"\n        },\n        \"banks\": [],\n        \"vatInformation\": {\n            \"taxOffice\": null,\n            \"taxOfficeAddress\": \"\",\n            \"taxNumber\": \"\",\n            \"isTaxGroupMember\": false,\n            \"taxGroupNumber\": null,\n            \"taxGroupName\": null,\n            \"taxCertificates\": [],\n            \"referenceNumbers\": [],\n            \"vatRegistrations\": []\n        },\n        \"representatives\": [],\n        \"businessActivity\": {\n            \"codes\": [],\n            \"description\": null,\n            \"businessArea\": {\n                \"key\": \"4d4613bf-448d-416e-800a-d0dbfa3be431\",\n                \"name\": \"Regular companies\"\n            }\n        },\n        \"customFields\": [],\n        \"documents\": [],\n        \"groupContractMainCompanyId\": 14693,\n        \"isInactive\": false,\n        \"isDemo\": false,\n        \"accountNumber\": null,\n        \"accountManagement\": {\n            \"accountManagerId\": null,\n            \"processManagerId\": null,\n            \"deliveryManagerId\": null,\n            \"accountManagerComment\": null,\n            \"processManagerComment\": null,\n            \"deliveryManagerComment\": null\n        },\n        \"modifiedAt\": \"2024-03-04 12:58:05\"\n    }\n}"}],"_postman_id":"7977841c-5a19-423b-927b-a0deb46c82ee"},{"name":"Update VAT information","id":"738024b4-ed0c-449c-83a8-c0343b850595","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"vatNumber\": \"DE123456789\",\n    \"localTaxOfficeName\": \"\",\n    \"localTaxOfficeAddress\": \"\",\n    \"taxNumber\": \"\",\n    \"iossNumber\": \"\",\n    \"taxGroupMember\": true,\n    \"taxGroupNumber\": \"\",\n    \"taxGroupName\": \"\",\n    \"plTaxOfficeCode\": \"\",\n    \"deState\": \"\",\n    \"gstin\": \"\",\n    \"pan\": \"\",\n    \"lut\": \"\",\n    \"stateCode\": \"\",\n    \"isSez\": false\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/companies/:key/vat_info","description":"<p>Update VAT information for a company.</p>\n<blockquote>\n<p>This endpoint allows updating VAT-related information for a specific company. VAT information includes tax numbers, office details, group memberships, and country-specific tax data. The authenticated user must have Administrator role in the specified company. All parameters are optional - only provided fields will be updated. </p>\n</blockquote>\n<p><strong>URL Path Parameter:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{key} - Company UUID key\n\n</code></pre><p><strong>Request Body Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"vatNumber\": \"\",\n    \"localTaxOfficeName\": \"\",\n    \"localTaxOfficeAddress\": \"\",\n    \"taxNumber\": \"\",\n    \"iossNumber\": \"\",\n    \"taxGroupMember\": true,\n    \"taxGroupNumber\": \"\",\n    \"taxGroupName\": \"\",\n    \"plTaxOfficeCode\": \"\",\n    \"deState\": \"Bayern\",\n    \"gstin\": \"\",\n    \"pan\": \"\",\n    \"lut\": \"\",\n    \"stateCode\": \"\",\n    \"isSez\": false\n}\n\n</code></pre>\n<p><strong>Success Response (HTTP 200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": {\n        \"message\": \"VAT information updated successfully\"\n    }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p><strong>HTTP 400 Bad Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Invalid request fields: field_name1, field_name2\"\n}\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"UNKNOWN\",\n    \"message\": \"Make sure FASTNR is in correct format. (2 digit TAX office number + 7 digit TAX number, e.g. 22134567).\"\n}\n\n</code></pre>\n<p><strong>HTTP 401 Unauthorized:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"Unauthorized\",\n    \"message\": \"You don't have enough permissions for this action.\"\n}\n\n</code></pre>\n<p><strong>HTTP 500 Internal Server Error:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"UNKNOWN\",\n    \"message\": \"Something went wrong while processing your request. Please try again.\"\n}\n\n</code></pre>\n<p><strong>Request Body Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>vatNumber</td>\n<td>String</td>\n<td>No</td>\n<td>VAT registration number (automatically converted to uppercase)</td>\n</tr>\n<tr>\n<td>localTaxOfficeName</td>\n<td>String</td>\n<td>No</td>\n<td>Name of the local tax office</td>\n</tr>\n<tr>\n<td>localTaxOfficeAddress</td>\n<td>String</td>\n<td>No</td>\n<td>Address of the local tax office</td>\n</tr>\n<tr>\n<td>taxNumber</td>\n<td>String</td>\n<td>No</td>\n<td>Tax number in country of establishment (automatically converted to uppercase)</td>\n</tr>\n<tr>\n<td>iossNumber</td>\n<td>String</td>\n<td>No</td>\n<td>Import One-Stop Shop number (for IOSS companies)</td>\n</tr>\n<tr>\n<td>taxGroupMember</td>\n<td>Boolean</td>\n<td>No</td>\n<td>Whether the company is a member of a tax group</td>\n</tr>\n<tr>\n<td>taxGroupNumber</td>\n<td>String</td>\n<td>No</td>\n<td>Tax group identification number</td>\n</tr>\n<tr>\n<td>taxGroupName</td>\n<td>String</td>\n<td>No</td>\n<td>Name of the tax group</td>\n</tr>\n<tr>\n<td>plTaxOfficeCode</td>\n<td>String</td>\n<td>No</td>\n<td>Tax office code (Poland-specific field)</td>\n</tr>\n<tr>\n<td>deState</td>\n<td>String</td>\n<td>No</td>\n<td>German state of establishment (Germany-specific field)</td>\n</tr>\n<tr>\n<td>gstin</td>\n<td>String</td>\n<td>No</td>\n<td>Goods and Services Tax Identification Number (India-specific field)</td>\n</tr>\n<tr>\n<td>pan</td>\n<td>String</td>\n<td>No</td>\n<td>Permanent Account Number (India-specific field)</td>\n</tr>\n<tr>\n<td>lut</td>\n<td>String</td>\n<td>No</td>\n<td>Letter of Undertaking (India-specific field)</td>\n</tr>\n<tr>\n<td>stateCode</td>\n<td>String</td>\n<td>No</td>\n<td>State code (India-specific field)</td>\n</tr>\n<tr>\n<td>isSez</td>\n<td>Boolean</td>\n<td>No</td>\n<td>Whether company is in a Special Economic Zone (India-specific field)</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>URL Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>UUID of the company whose VAT information will be updated</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Country-Specific Fields:</strong></p>\n<p><strong>Germany (DE)</strong>:</p>\n<ul>\n<li><p><code>deState</code>: Must be one of the valid German states:</p>\n<ul>\n<li>Baden-Württemberg, Bayern, Berlin, Brandenburg, Bremen, Hamburg, Hessen, Mecklenburg-Vorpommern, Niedersachsen, Nordrhein-Westfalen, Rheinland-Pfalz, Saarland, Sachsen, Sachsen-Anhalt, Schleswig-Holstein, Thüringen</li>\n</ul>\n</li>\n</ul>\n<p><strong>Poland (PL)</strong>:</p>\n<ul>\n<li><code>plTaxOfficeCode</code>: Tax office code for Polish companies</li>\n</ul>\n<p><strong>India (IN)</strong>:</p>\n<ul>\n<li><p><code>gstin</code>: Goods and Services Tax Identification Number</p>\n</li>\n<li><p><code>pan</code>: Permanent Account Number</p>\n</li>\n<li><p><code>lut</code>: Letter of Undertaking</p>\n</li>\n<li><p><code>stateCode</code>: Indian state code</p>\n</li>\n<li><p><code>isSez</code>: Special Economic Zone membership status</p>\n</li>\n</ul>\n<p><strong>Austria (AT)</strong>:</p>\n<ul>\n<li><code>taxNumber</code>: Must be in format NNNNNNNN (9 digits: 2-digit tax office number + 7-digit tax number, e.g., 22134567)</li>\n</ul>\n<p><strong>Business Rules and Validation:</strong></p>\n<ul>\n<li><p>The authenticated user must have Administrator role in the specified company</p>\n</li>\n<li><p>Only whitelisted fields are accepted; invalid fields will result in an error</p>\n</li>\n<li><p>All parameters are optional - only provided fields will be updated</p>\n</li>\n<li><p><code>vatNumber</code> and <code>taxNumber</code> are automatically converted to uppercase</p>\n</li>\n<li><p>All string values are trimmed of whitespace</p>\n</li>\n<li><p>Special validation applies for Austrian tax numbers (must be 9 digits)</p>\n</li>\n<li><p>Country-specific fields are validated based on company's country of establishment</p>\n</li>\n</ul>\n<p><strong>Data Processing:</strong></p>\n<ul>\n<li><p><strong>Case Conversion</strong>: VAT number and tax number are converted to uppercase</p>\n</li>\n<li><p><strong>Trimming</strong>: All string values are trimmed of leading/trailing whitespace</p>\n</li>\n<li><p><strong>Partial Updates</strong>: Only fields provided in request are updated</p>\n</li>\n<li><p><strong>Field Validation</strong>: Invalid field names are rejected with detailed error message</p>\n</li>\n</ul>\n<p><strong>Prerequisites:</strong></p>\n<ul>\n<li><p>User authentication is required</p>\n</li>\n<li><p>User must have Administrator role in the target company</p>\n</li>\n<li><p>Company must exist and be accessible to the user</p>\n</li>\n<li><p>Field names must be from the approved whitelist</p>\n</li>\n<li><p>Country-specific fields should match company's country of establishment</p>\n</li>\n</ul>\n<p><strong>Use Cases:</strong></p>\n<ul>\n<li><p>Updating VAT registration numbers after registration</p>\n</li>\n<li><p>Setting tax office information for compliance</p>\n</li>\n<li><p>Configuring tax group memberships</p>\n</li>\n<li><p>Managing IOSS numbers for e-commerce businesses</p>\n</li>\n<li><p>Updating country-specific tax identifiers</p>\n</li>\n<li><p>Maintaining accurate tax compliance data</p>\n</li>\n</ul>\n<p><strong>Validation Examples:</strong></p>\n<p><strong>Valid German State:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"deState\": \"Bayern\"\n}\n\n</code></pre>\n<p><strong>Valid Austrian Tax Number:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"taxNumber\": \"123456789\"\n}\n\n</code></pre>\n<p><strong>Tax Group Configuration:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"taxGroupMember\": true,\n    \"taxGroupNumber\": \"TG123456\",\n    \"taxGroupName\": \"ABC Tax Group\"\n}\n\n</code></pre>\n<p><strong>Indian Company Fields:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"gstin\": \"27AAPFU0939F1ZV\",\n    \"pan\": \"AAPFU0939F\",\n    \"isSez\": true\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies",":key","vat_info"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"","key":"key"}]}},"response":[],"_postman_id":"738024b4-ed0c-449c-83a8-c0343b850595"},{"name":"Update invoicing details","id":"e299a7d5-67e8-41e7-b3e0-10797e0c6295","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"invoiceFormat\": \"INV-001{S}\",\n    \"creditNoteFormat\": \"CRN-001{S}\",\n    \"orderFormat\": \"OC-001{S}\",\n    \"templatePrefix\": \"generic\",\n    \"accountingEmail\": \"accounting@expert-vat4u.com\",\n    \"financeBccEmail\": \"finance@expert-vat4u.com\",\n    \"financeReminderBccEmail\": \"reminder@expert-vat4u.com\",\n    \"enableEInvoicing\": true,\n    \"contactPersonFullName\": \"Max Mustermann\",\n    \"contactPersonPhoneNumber\": \"+1230012345678\",\n    \"contactPersonEmail\": \"contact@expert-vat4u.com\",\n    \"billingReplyEmail\": \"reply@expert-vat4u.com\",\n    \"invoiceNote\": \"Note text\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/companies/:key/invoicing","description":"<p>Update invoicing details for a company.</p>\n<blockquote>\n<p>This endpoint allows updating invoicing configuration and settings for a company. The authenticated user must have Administrator role in the specified company and have invoicing module available. This is used together with the VAT4U Invoicing module. </p>\n</blockquote>\n<p><strong>URL Path Parameter:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{key} - Company UUID key\n\n</code></pre><p><strong>Request Body Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"invoiceFormat\": \"INV-{S}\",\n    \"creditNoteFormat\": \"CRN-{S}\",\n    \"orderFormat\": \"ORD-{S}\",\n    \"templatePrefix\": \"\",\n    \"accountingEmail\": \"accounting@company.com\",\n    \"financeBccEmail\": \"finance@company.com\",\n    \"financeReminderBccEmail\": \"reminder@company.co,\",\n    \"enableEInvoicing\": true,\n    \"contactPersonFullName\": \"John Doe\",\n    \"contactPersonPhoneNumber\": \"+123 000125555\",\n    \"contactPersonEmail\": \"contact@company.com\",\n    \"billingReplyEmail\": \"billing@company.com\",\n    \"invoiceNote\": \"Contact support for more details\"\n}\n\n</code></pre>\n<p><strong>Success Response (HTTP 200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": {\n        \"message\": \"Invoicing details updated successfully\"\n    }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p><strong>HTTP 400 Bad Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Error description\"\n}\n\n</code></pre>\n<p><strong>HTTP 401 Unauthorized:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"Unauthorized\",\n    \"message\": \"You don't have enough permissions for this action.\"\n}\n\n</code></pre>\n<p><strong>HTTP 500 Internal Server Error:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"\",\n    \"message\": \"\"\n}\n\n</code></pre>\n<p><strong>Request Body Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>invoiceFormat</td>\n<td>String</td>\n<td>No</td>\n<td>Invoice number format template. Must include <code>{S}</code> placeholder for sequence number</td>\n</tr>\n<tr>\n<td>creditNoteFormat</td>\n<td>String</td>\n<td>No</td>\n<td>Credit note number format template. Must include <code>{S}</code> placeholder for sequence number</td>\n</tr>\n<tr>\n<td>orderFormat</td>\n<td>String</td>\n<td>No</td>\n<td>Order number format template. Must include <code>{S}</code> placeholder for sequence number</td>\n</tr>\n<tr>\n<td>templatePrefix</td>\n<td>String</td>\n<td>No</td>\n<td>Prefix to be used in invoicing templates</td>\n</tr>\n<tr>\n<td>accountingEmail</td>\n<td>String</td>\n<td>No</td>\n<td>Email address for accounting communications. Must be valid email format</td>\n</tr>\n<tr>\n<td>financeBccEmail</td>\n<td>String</td>\n<td>No</td>\n<td>Email address for finance communications. Must be valid email format</td>\n</tr>\n<tr>\n<td>financeReminderBccEmail</td>\n<td>String</td>\n<td>No</td>\n<td>Email address for payment reminder communications. Must be valid email format</td>\n</tr>\n<tr>\n<td>enableEInvoicing</td>\n<td>Boolean</td>\n<td>No</td>\n<td>Flag to enable or disable electronic invoicing functionality</td>\n</tr>\n<tr>\n<td>contactPersonFullName</td>\n<td>String</td>\n<td>No</td>\n<td>Full name of the contact person for invoicing matters</td>\n</tr>\n<tr>\n<td>contactPersonPhoneNumber</td>\n<td>String</td>\n<td>No</td>\n<td>Phone number of the invoicing contact person</td>\n</tr>\n<tr>\n<td>contactPersonEmail</td>\n<td>String</td>\n<td>No</td>\n<td>Email address of the invoicing contact person. Must be valid email format</td>\n</tr>\n<tr>\n<td>billingReplyEmail</td>\n<td>String</td>\n<td>No</td>\n<td>Reply-to email address for billing communications. Must be valid email format</td>\n</tr>\n<tr>\n<td>invoiceNote</td>\n<td>String</td>\n<td>No</td>\n<td>Default note to be included in invoices</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>URL Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>UUID of the company for which to update invoicing details</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Business Rules and Validation:</strong></p>\n<ul>\n<li><p>The authenticated user must have Administrator role in the specified company</p>\n</li>\n<li><p>The user must have invoicing module available in their account</p>\n</li>\n<li><p>All email fields must be in valid email format when provided</p>\n</li>\n<li><p>Format fields (<code>invoiceFormat</code>, <code>creditNoteFormat</code>, <code>orderFormat</code>) must include the <code>{S}</code> placeholder if provided</p>\n</li>\n<li><p>All parameters are optional - only provided fields will be updated</p>\n</li>\n<li><p>The company specified by the <code>key</code> parameter must exist</p>\n</li>\n</ul>\n<p><strong>Prerequisites:</strong></p>\n<ul>\n<li><p>User authentication is required</p>\n</li>\n<li><p>User must have Administrator role in the target company</p>\n</li>\n<li><p>User must have invoicing module access</p>\n</li>\n<li><p>Company must exist and be accessible to the user</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies",":key","invoicing"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"79a59b6a-e97f-4a5f-b519-b6f14d9143d7","key":"key"}]}},"response":[],"_postman_id":"e299a7d5-67e8-41e7-b3e0-10797e0c6295"}],"id":"d54b95aa-647d-44d0-a9eb-91d0da7fd4ab","_postman_id":"d54b95aa-647d-44d0-a9eb-91d0da7fd4ab","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}}},{"name":"Bank","item":[{"name":"Add bank details","id":"1178497b-448c-4ee4-b5db-f0bbf341497c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"bankAccountName\": \"\",\n    \"currencyCode\": \"\",\n    \"countryCode\": \"\",\n    \"accountHolderName\": \"\",\n    \"bankAddress\": \"\",\n    \"iban\": \"\",\n    \"accountNumber\": \"\",\n    \"bic\": \"\",\n    \"accountHolderAddress\": \"\",\n    \"bankName\": \"\",\n    \"isDefault\": true,\n    \"allowedForClaims\": true,\n    \"fileName\": \"\",\n    \"fileContent\": \"\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/companies/:key/banks","description":"<p>Add bank account details to a company.</p>\n<blockquote>\n<p>This endpoint allows adding new bank account details to a specific company. The authenticated user must have Administrator role in the specified company. Bank account information can include optional supporting documentation uploaded as base64 encoded files. </p>\n</blockquote>\n<p><strong>URL Path Parameter:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{key} - Company UUID key\n\n</code></pre><p><strong>Request Body Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"bankAccountName\": \"Bank account name\",\n    \"currencyCode\": \"EUR\",\n    \"countryCode\": \"FR\",\n    \"accountHolderName\": \"Max Maswete\",\n    \"bankAddress\": \"StreetName 22\",\n    \"iban\": \"09876545678\",\n    \"accountNumber\": \"98765456789\",\n    \"bic\": \"DEFG124132\",\n    \"accountHolderAddress\": \"Street 232\",\n    \"bankName\": \"World Bank\",\n    \"isDefault\": true,\n    \"allowedForClaims\": true,\n    \"fileName\": \"Bank.pdf\",\n    \"fileContent\": \"&lt;base64_string&gt;\"\n}\n\n</code></pre>\n<p><strong>Success Response (HTTP 200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": {\n        \"message\": \"Bank details created successfully\"\n    }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p><strong>HTTP 400 Bad Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Error description\"\n}\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"File already exists\",\n    \"message\": \"File with this name already exists in the system. Please rename the file to proceed.\"\n}\n\n</code></pre>\n<p><strong>HTTP 401 Unauthorized:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"Unauthorized\",\n    \"message\": \"You don't have enough permissions for this action.\"\n}\n\n</code></pre>\n<p><strong>HTTP 500 Internal Server Error:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"\",\n    \"message\": \"\"\n}\n\n</code></pre>\n<p><strong>Request Body Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>bankAccountName</td>\n<td>String</td>\n<td>Yes</td>\n<td>Internal name/description for the bank account</td>\n</tr>\n<tr>\n<td>currencyCode</td>\n<td>String</td>\n<td>Yes</td>\n<td>3-letter ISO currency code (e.g., EUR, USD, GBP)</td>\n</tr>\n<tr>\n<td>countryCode</td>\n<td>String</td>\n<td>Yes</td>\n<td>2-letter ISO country code where the bank is located (e.g., FR, DE, US)</td>\n</tr>\n<tr>\n<td>accountHolderName</td>\n<td>String</td>\n<td>No</td>\n<td>Legal name of the account holder (only Latin alphabet letters allowed)</td>\n</tr>\n<tr>\n<td>bankAddress</td>\n<td>String</td>\n<td>No</td>\n<td>Physical address of the bank institution</td>\n</tr>\n<tr>\n<td>iban</td>\n<td>String</td>\n<td>No</td>\n<td>International Bank Account Number (will be converted to uppercase)</td>\n</tr>\n<tr>\n<td>accountNumber</td>\n<td>String</td>\n<td>No</td>\n<td>Bank account number</td>\n</tr>\n<tr>\n<td>bic</td>\n<td>String</td>\n<td>No</td>\n<td>Bank Identifier Code/SWIFT code (will be converted to uppercase)</td>\n</tr>\n<tr>\n<td>accountHolderAddress</td>\n<td>String</td>\n<td>No</td>\n<td>Address of the account holder</td>\n</tr>\n<tr>\n<td>bankName</td>\n<td>String</td>\n<td>No</td>\n<td>Name of the bank institution</td>\n</tr>\n<tr>\n<td>isDefault</td>\n<td>Boolean</td>\n<td>No</td>\n<td>Set this as the default company bank account (removes default from others)</td>\n</tr>\n<tr>\n<td>allowedForClaims</td>\n<td>Boolean</td>\n<td>No</td>\n<td>Allow this bank account to be used for VAT claim refunds</td>\n</tr>\n<tr>\n<td>fileName</td>\n<td>String</td>\n<td>Conditional</td>\n<td>File name with extension for bank statement/document. Required if <code>fileContent</code> is provided</td>\n</tr>\n<tr>\n<td>fileContent</td>\n<td>String</td>\n<td>Conditional</td>\n<td>Base64 encoded bank document/statement. Required if <code>fileName</code> is provided</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>URL Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>UUID of the company to which the bank details will be added</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Business Rules and Validation:</strong></p>\n<ul>\n<li><p>The authenticated user must have Administrator role in the specified company</p>\n</li>\n<li><p><code>currencyCode</code> must be a valid 3-letter ISO currency code existing in the system</p>\n</li>\n<li><p><code>countryCode</code> must be a valid 2-letter ISO country code existing in the system</p>\n</li>\n<li><p><code>accountHolderName</code> accepts only Latin alphabet letters when provided</p>\n</li>\n<li><p>IBAN and BIC values are automatically converted to uppercase</p>\n</li>\n<li><p>If <code>isDefault</code> is set to <code>true</code>, all other bank accounts for this company will have their default status removed</p>\n</li>\n<li><p>File upload is optional but if provided, both <code>fileName</code> and <code>fileContent</code> must be specified</p>\n</li>\n<li><p>Uploaded files are stored with a unique naming convention: <code>BANK_DETAILS_{recordId}.{extension}</code></p>\n</li>\n<li><p>File names must not conflict with existing files in the company's directory</p>\n</li>\n<li><p>The system creates the company's document directory if it doesn't exist</p>\n</li>\n</ul>\n<p><strong>File Upload Details:</strong></p>\n<ul>\n<li><p>Files are stored in the company-specific directory on the server</p>\n</li>\n<li><p>File naming format: <code>BANK_DETAILS_{bankRecordId}.{originalExtension}</code></p>\n</li>\n<li><p>File size is automatically calculated and stored</p>\n</li>\n<li><p>Supported file formats: Any format with proper extension in filename</p>\n</li>\n<li><p>Files are decoded from base64 before storage</p>\n</li>\n</ul>\n<p><strong>Prerequisites:</strong></p>\n<ul>\n<li><p>User authentication is required</p>\n</li>\n<li><p>User must have Administrator role in the target company</p>\n</li>\n<li><p>Company must exist and be accessible to the user</p>\n</li>\n<li><p>Valid currency and country codes must be used</p>\n</li>\n</ul>\n<p><strong>Use Cases:</strong></p>\n<ul>\n<li><p>Adding primary bank account for company payments</p>\n</li>\n<li><p>Setting up multiple currency accounts for international operations</p>\n</li>\n<li><p>Configuring bank accounts specifically for VAT claim refunds</p>\n</li>\n<li><p>Uploading supporting bank documentation for compliance</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies",":key","banks"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"","key":"key"}]}},"response":[],"_postman_id":"1178497b-448c-4ee4-b5db-f0bbf341497c"},{"name":"Update bank details","id":"318ace8f-2578-4de8-8d54-18e153f6e073","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"bankAccountName\": \"\",\n    \"currencyCode\": \"\",\n    \"countryCode\": \"\",\n    \"accountHolderName\": \"\",\n    \"bankAddress\": \"\",\n    \"iban\": \"\",\n    \"accountNumber\": \"\",\n    \"bic\": \"\",\n    \"accountHolderAddress\": \"\",\n    \"bankName\": \"\",\n    \"isDefault\": true,\n    \"allowedForClaims\": true,\n    \"fileName\": \"\",\n    \"fileContent\": \"\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/companies/:key/banks/:id","description":"<p>Update bank account details for a company.</p>\n<blockquote>\n<p>This endpoint allows updating an existing bank account for a specific company. The authenticated user must have Administrator role in the specified company. Bank account information can include optional supporting documentation uploaded as base64 encoded files. All parameters are optional - only provided fields will be updated. </p>\n</blockquote>\n<p><strong>URL Path Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{key} - Company UUID key\n{id} - Bank account ID\n\n</code></pre><p><strong>Request Body Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"bankAccountName\": \"Bank account name\",\n    \"currencyCode\": \"EUR\",\n    \"countryCode\": \"FR\",\n    \"accountHolderName\": \"Max Maswete\",\n    \"bankAddress\": \"StreetName 22\",\n    \"iban\": \"09876545678\",\n    \"accountNumber\": \"98765456789\",\n    \"bic\": \"DEFG124132\",\n    \"accountHolderAddress\": \"Street 232\",\n    \"bankName\": \"World Bank\",\n    \"isDefault\": true,\n    \"allowedForClaims\": true,\n    \"fileName\": \"Bank.pdf\",\n    \"fileContent\": \"&lt;base64_string&gt;\"\n}\n\n</code></pre>\n<p><strong>Success Response (HTTP 200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": {\n        \"message\": \"Bank details updated successfully\"\n    }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p><strong>HTTP 400 Bad Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Bank details with id {id} not found for this company\"\n}\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Invalid bank details data\"\n}\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"File already exists\",\n    \"message\": \"File with this name already exists in the system. Please rename the file to proceed.\"\n}\n\n</code></pre>\n<p><strong>HTTP 401 Unauthorized:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"Unauthorized\",\n    \"message\": \"You don't have enough permissions for this action.\"\n}\n\n</code></pre>\n<p><strong>HTTP 500 Internal Server Error:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"\",\n    \"message\": \"\"\n}\n\n</code></pre>\n<p><strong>Request Body Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>bankAccountName</td>\n<td>String</td>\n<td>No</td>\n<td>Internal name/description for the bank account</td>\n</tr>\n<tr>\n<td>currencyCode</td>\n<td>String</td>\n<td>No</td>\n<td>3-letter ISO currency code (e.g., EUR, USD, GBP)</td>\n</tr>\n<tr>\n<td>countryCode</td>\n<td>String</td>\n<td>No</td>\n<td>2-letter ISO country code where the bank is located (e.g., FR, DE, US)</td>\n</tr>\n<tr>\n<td>accountHolderName</td>\n<td>String</td>\n<td>No</td>\n<td>Legal name of the account holder (only Latin alphabet letters allowed)</td>\n</tr>\n<tr>\n<td>bankAddress</td>\n<td>String</td>\n<td>No</td>\n<td>Physical address of the bank institution</td>\n</tr>\n<tr>\n<td>iban</td>\n<td>String</td>\n<td>No</td>\n<td>International Bank Account Number (will be converted to uppercase)</td>\n</tr>\n<tr>\n<td>accountNumber</td>\n<td>String</td>\n<td>No</td>\n<td>Bank account number</td>\n</tr>\n<tr>\n<td>bic</td>\n<td>String</td>\n<td>No</td>\n<td>Bank Identifier Code/SWIFT code (will be converted to uppercase)</td>\n</tr>\n<tr>\n<td>accountHolderAddress</td>\n<td>String</td>\n<td>No</td>\n<td>Address of the account holder</td>\n</tr>\n<tr>\n<td>bankName</td>\n<td>String</td>\n<td>No</td>\n<td>Name of the bank institution</td>\n</tr>\n<tr>\n<td>isDefault</td>\n<td>Boolean</td>\n<td>No</td>\n<td>Set this as the default company bank account (removes default from others)</td>\n</tr>\n<tr>\n<td>allowedForClaims</td>\n<td>Boolean</td>\n<td>No</td>\n<td>Allow this bank account to be used for VAT claim refunds</td>\n</tr>\n<tr>\n<td>fileName</td>\n<td>String</td>\n<td>Conditional</td>\n<td>File name with extension for bank statement/document. Required if <code>fileContent</code> is provided</td>\n</tr>\n<tr>\n<td>fileContent</td>\n<td>String</td>\n<td>Conditional</td>\n<td>Base64 encoded bank document/statement. Required if <code>fileName</code> is provided</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>URL Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>UUID of the company whose bank details will be updated</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Internal ID of the bank account to be updated</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Business Rules and Validation:</strong></p>\n<ul>\n<li><p>The authenticated user must have Administrator role in the specified company</p>\n</li>\n<li><p>The bank account with the specified <code>id</code> must exist and belong to the company</p>\n</li>\n<li><p>Only fields provided in the request will be updated; missing fields retain their current values</p>\n</li>\n<li><p>Field names must match existing bank detail properties (invalid fields are rejected)</p>\n</li>\n<li><p><code>currencyCode</code> must be a valid 3-letter ISO currency code existing in the system (if provided)</p>\n</li>\n<li><p><code>countryCode</code> must be a valid 2-letter ISO country code existing in the system (if provided)</p>\n</li>\n<li><p><code>accountHolderName</code> accepts only Latin alphabet letters when provided</p>\n</li>\n<li><p>IBAN and BIC values are automatically converted to uppercase</p>\n</li>\n<li><p>If <code>isDefault</code> is set to <code>true</code>, all other bank accounts for this company will have their default status removed</p>\n</li>\n</ul>\n<p><strong>Update Behavior:</strong></p>\n<ul>\n<li><p><strong>Partial Updates</strong>: Only fields provided in the request will be updated</p>\n</li>\n<li><p><strong>Field Retention</strong>: Fields not included in the request will keep their existing values</p>\n</li>\n<li><p><strong>Merge Logic</strong>: Current bank details are merged with provided updates</p>\n</li>\n<li><p><strong>File Replacement</strong>: Uploading a new file completely replaces the existing file</p>\n</li>\n<li><p><strong>Default Management</strong>: Setting a new default account removes default status from others</p>\n</li>\n</ul>\n<p><strong>File Upload Details:</strong></p>\n<ul>\n<li><p>Files are stored in the company-specific directory on the server</p>\n</li>\n<li><p>File naming format: <code>BANK_DETAILS_{bankId}.{originalExtension}</code></p>\n</li>\n<li><p>File size is automatically calculated and stored</p>\n</li>\n<li><p>Supported file formats: Any format with proper extension in filename</p>\n</li>\n<li><p>Files are decoded from base64 before storage</p>\n</li>\n<li><p>File names must not conflict with existing files in the company's directory</p>\n</li>\n</ul>\n<p><strong>Field Validation:</strong></p>\n<ul>\n<li><p>Request fields are validated against existing bank detail structure</p>\n</li>\n<li><p>Unknown or invalid field names result in \"Invalid bank details data\" error</p>\n</li>\n<li><p>Country and currency codes are validated against system databases</p>\n</li>\n<li><p>File upload fields are processed only if both filename and content are provided</p>\n</li>\n</ul>\n<p><strong>Prerequisites:</strong></p>\n<ul>\n<li><p>User authentication is required</p>\n</li>\n<li><p>User must have Administrator role in the target company</p>\n</li>\n<li><p>Bank account with specified ID must exist and belong to the company</p>\n</li>\n<li><p>Valid currency and country codes must be used (if provided)</p>\n</li>\n</ul>\n<p><strong>Use Cases:</strong></p>\n<ul>\n<li><p>Updating bank account information due to changes</p>\n</li>\n<li><p>Modifying account holder details</p>\n</li>\n<li><p>Changing default account designation</p>\n</li>\n<li><p>Updating currency or country information</p>\n</li>\n<li><p>Replacing bank documentation</p>\n</li>\n<li><p>Adjusting claim usage permissions</p>\n</li>\n</ul>\n<p><strong>Example Update Scenarios:</strong></p>\n<p><strong>Update Account Name Only:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"bankAccountName\": \"Primary EUR Account\"\n}\n\n</code></pre>\n<p><strong>Change Default Status:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"isDefault\": true\n}\n\n</code></pre>\n<p><strong>Update File Only:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"fileName\": \"Updated_Bank_Statement.pdf\",\n    \"fileContent\": \"base64_encoded_content_here\"\n}\n\n</code></pre>\n<p><strong>Update Multiple Fields:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"bankName\": \"New Bank Name\",\n    \"bankAddress\": \"New Address 123\",\n    \"allowedForClaims\": false\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies",":key","banks",":id"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"","key":"key"},{"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"318ace8f-2578-4de8-8d54-18e153f6e073"},{"name":"List bank details","id":"bfde4e7f-7edb-432e-a0eb-a43ab2b4df5d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.vat4u.com/v1/companies/:key/banks","description":"<p>Retrieve bank details for a company.</p>\n<blockquote>\n<p>This endpoint allows retrieving all bank account details associated with a specific company. The authenticated user must have Administrator role in the specified company to access this information. </p>\n</blockquote>\n<p><strong>URL Path Parameter:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{key} - Company UUID key\n\n</code></pre><p><strong>Success Response (HTTP 200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": {\n        \"banks\": [\n            {\n                \"id\": 123,\n                \"bankName\": \"Deutsche Bank AG\",\n                \"bankAddress\": \"Taunusanlage 12, 60325 Frankfurt am Main, Germany\",\n                \"iban\": \"DE89370400440532013000\",\n                \"accountNumber\": \"532013000\",\n                \"bic\": \"DEUTDEFF\",\n                \"accountHolderName\": \"Company ABC GmbH\",\n                \"accountHolderAddress\": \"Kreuzstr 34, 40210 Duesseldorf, Germany\",\n                \"bankAccountName\": \"Primary Business Account\",\n                \"isDefault\": 1,\n                \"allowedForClaims\": 1,\n                \"currency\": \"Euro\",\n                \"currencyCode\": \"EUR\",\n                \"country\": \"Germany\",\n                \"countryCode\": \"DE\",\n                \"fileName\": \"BANK_DETAILS_123.pdf\",\n                \"fileSize\": 245760,\n                \"createdAt\": \"2024-01-15 10:30:00\",\n                \"createdBy\": 456\n            }\n        ]\n    }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p><strong>HTTP 400 Bad Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Error description\"\n}\n\n</code></pre>\n<p><strong>HTTP 401 Unauthorized:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"Unauthorized\",\n    \"message\": \"You don't have enough permissions for this action.\"\n}\n\n</code></pre>\n<p><strong>HTTP 500 Internal Server Error:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"\",\n    \"message\": \"\"\n}\n\n</code></pre>\n<p><strong>URL Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>UUID of the company for which to retrieve bank details</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Response Fields Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>banks</td>\n<td>Array</td>\n<td>Array of bank account objects associated with the company</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Bank Account Object Fields:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Integer</td>\n<td>Internal bank account record ID</td>\n</tr>\n<tr>\n<td>bankName</td>\n<td>String</td>\n<td>Name of the bank institution</td>\n</tr>\n<tr>\n<td>bankAddress</td>\n<td>String</td>\n<td>Physical address of the bank</td>\n</tr>\n<tr>\n<td>iban</td>\n<td>String</td>\n<td>International Bank Account Number (uppercase format)</td>\n</tr>\n<tr>\n<td>accountNumber</td>\n<td>String</td>\n<td>Bank account number</td>\n</tr>\n<tr>\n<td>bic</td>\n<td>String</td>\n<td>Bank Identifier Code (SWIFT code, uppercase format)</td>\n</tr>\n<tr>\n<td>accountHolderName</td>\n<td>String</td>\n<td>Legal name of the account holder</td>\n</tr>\n<tr>\n<td>accountHolderAddress</td>\n<td>String</td>\n<td>Address of the account holder</td>\n</tr>\n<tr>\n<td>bankAccountName</td>\n<td>String</td>\n<td>Internal name/description for the bank account</td>\n</tr>\n<tr>\n<td>isDefault</td>\n<td>Integer</td>\n<td>Flag indicating if this is the default bank account (1=yes, 0=no)</td>\n</tr>\n<tr>\n<td>allowedForClaims</td>\n<td>Integer</td>\n<td>Flag indicating if this account can be used for VAT claims (1=yes, 0=no)</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>String</td>\n<td>Full name of the account currency</td>\n</tr>\n<tr>\n<td>currencyCode</td>\n<td>String</td>\n<td>ISO currency code (e.g., EUR, USD, GBP)</td>\n</tr>\n<tr>\n<td>country</td>\n<td>String</td>\n<td>Full name of the bank's country</td>\n</tr>\n<tr>\n<td>countryCode</td>\n<td>String</td>\n<td>ISO country code (e.g., DE, US, GB)</td>\n</tr>\n<tr>\n<td>fileName</td>\n<td>String</td>\n<td>Name of the uploaded bank statement/document file (if any)</td>\n</tr>\n<tr>\n<td>fileSize</td>\n<td>Integer</td>\n<td>Size of the uploaded file in bytes (if any)</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>String</td>\n<td>Date and time when the bank account was added (YYYY-MM-DD HH:MM:SS)</td>\n</tr>\n<tr>\n<td>createdBy</td>\n<td>Integer</td>\n<td>ID of the user who created this bank account record</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Business Rules and Validation:</strong></p>\n<ul>\n<li><p>The authenticated user must have Administrator role in the specified company</p>\n</li>\n<li><p>Only bank accounts belonging to the specified company are returned</p>\n</li>\n<li><p>Internal system fields (companyId, countryId, currencyId) are excluded from the response</p>\n</li>\n<li><p>Currency and country information is expanded to include both full names and short codes</p>\n</li>\n<li><p>If no bank accounts exist for the company, an empty array is returned</p>\n</li>\n<li><p>File information (fileName, fileSize) is included only if a document was uploaded for the bank account</p>\n</li>\n<li><p>When the bank details are modified the old details are deleted, but kept in the system for audit purposes</p>\n</li>\n</ul>\n<p><strong>Prerequisites:</strong></p>\n<ul>\n<li><p>User authentication is required</p>\n</li>\n<li><p>User must have Administrator role in the target company</p>\n</li>\n<li><p>Company must exist and be accessible to the user</p>\n</li>\n</ul>\n<p><strong>Use Cases:</strong></p>\n<ul>\n<li><p>Retrieving bank account information for payment processing</p>\n</li>\n<li><p>Displaying available bank accounts for VAT claim refunds</p>\n</li>\n<li><p>Auditing company financial account setup</p>\n</li>\n<li><p>Integrating with external accounting systems</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies",":key","banks"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"","key":"key"}]}},"response":[],"_postman_id":"bfde4e7f-7edb-432e-a0eb-a43ab2b4df5d"},{"name":"Delete bank details","id":"8cda476d-242c-4115-8242-f0877709446e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"https://api.vat4u.com/v1/companies/:key/banks/:id","description":"<p>Delete bank account details for a company.</p>\n<blockquote>\n<p>This endpoint allows removing an existing bank account from a specific company. This action permanently removes the bank account information and any associated files from the system. The authenticated user must have Administrator role in the specified company. </p>\n</blockquote>\n<p><strong>URL Path Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{key} - Company UUID key\n{id} - Bank account ID\n\n</code></pre><p><strong>Success Response (HTTP 200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": {\n        \"message\": \"Bank details deleted successfully\"\n    }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p><strong>HTTP 400 Bad Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Bank details with id {id} not found for this company\"\n}\n\n</code></pre>\n<p><strong>HTTP 401 Unauthorized:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"Unauthorized\",\n    \"message\": \"You don't have enough permissions for this action.\"\n}\n\n</code></pre>\n<p><strong>HTTP 500 Internal Server Error:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"\",\n    \"message\": \"\"\n}\n\n</code></pre>\n<p><strong>URL Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>UUID of the company whose bank details will be deleted</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Internal ID of the bank account to be deleted</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Business Rules and Validation:</strong></p>\n<ul>\n<li><p>The authenticated user must have Administrator role in the specified company</p>\n</li>\n<li><p>The bank account with the specified <code>id</code> must exist and belong to the company</p>\n</li>\n<li><p>The bank details entry must be associated with the specified company</p>\n</li>\n<li><p>The deletion is permanent and cannot be undone through the API</p>\n</li>\n<li><p>Associated bank statement files are permanently removed from server storage</p>\n</li>\n<li><p>If the deleted account was the default account, no automatic reassignment occurs</p>\n</li>\n</ul>\n<p><strong>Authorization Requirements:</strong></p>\n<ul>\n<li><p><strong>Target Company</strong>: Administrator role required</p>\n</li>\n<li><p>The user must have administrative access to the company that owns the bank account</p>\n</li>\n<li><p>Double validation ensures user has proper permissions for both the company and the specific bank account</p>\n</li>\n</ul>\n<p><strong>Prerequisites:</strong></p>\n<ul>\n<li><p>User authentication is required</p>\n</li>\n<li><p>User must have Administrator role in the target company</p>\n</li>\n<li><p>Bank account with specified ID must exist</p>\n</li>\n<li><p>Bank account must belong to the specified company</p>\n</li>\n</ul>\n<p><strong>Use Cases:</strong></p>\n<ul>\n<li><p>Removing closed or invalid bank accounts</p>\n</li>\n<li><p>Cleaning up outdated banking information</p>\n</li>\n<li><p>Deleting duplicate bank account entries</p>\n</li>\n<li><p>Compliance with data retention policies</p>\n</li>\n<li><p>Removing accounts no longer used for business operations</p>\n</li>\n</ul>\n<p><strong>Important Notes:</strong></p>\n<ul>\n<li><p><strong>Permanent Action</strong>: This operation cannot be undone through the API</p>\n</li>\n<li><p><strong>File Removal</strong>: Associated bank statement/document files are permanently deleted from server storage</p>\n</li>\n<li><p><strong>Default Account Impact</strong>: If a default account is deleted, the company may not have a default bank account until another is designated</p>\n</li>\n<li><p><strong>Claims Impact</strong>: Removing accounts marked for claims may affect VAT refund processing capabilities</p>\n</li>\n<li><p><strong>Audit Trail</strong>: The deletion action may be logged for audit and compliance purposes</p>\n</li>\n</ul>\n<p><strong>Security Considerations:</strong></p>\n<ul>\n<li><p>Only users with Administrator role in the company can delete bank accounts</p>\n</li>\n<li><p>The system validates that the bank account belongs to the specified company</p>\n</li>\n<li><p>Cross-company bank account deletion is not permitted</p>\n</li>\n<li><p>Double permission validation ensures proper authorization</p>\n</li>\n</ul>\n<p><strong>Related Operations:</strong></p>\n<p>After deleting a bank account, you may want to:</p>\n<ul>\n<li><p>List remaining bank accounts using the List Bank Details endpoint</p>\n</li>\n<li><p>Add a new bank account if replacement is needed</p>\n</li>\n<li><p>Designate a new default account if the deleted account was default</p>\n</li>\n<li><p>Review VAT claim settings if the account was used for claims</p>\n</li>\n</ul>\n<p><strong>Error Scenarios:</strong></p>\n<ul>\n<li><p><strong>Bank Account Not Found</strong>: When the ID doesn't exist or doesn't belong to the company</p>\n</li>\n<li><p><strong>Insufficient Permissions</strong>: When user lacks Administrator role</p>\n</li>\n<li><p><strong>Company Not Found</strong>: When the company UUID is invalid</p>\n</li>\n<li><p><strong>System Errors</strong>: When database or file system issues occur</p>\n</li>\n</ul>\n<p><strong>Financial Impact Considerations:</strong></p>\n<ul>\n<li><p>Ensure all pending transactions are completed before deletion</p>\n</li>\n<li><p>Verify that no active VAT claims are using this account for refunds</p>\n</li>\n<li><p>Consider the impact on financial reporting and reconciliation</p>\n</li>\n<li><p>Maintain proper records for accounting and audit purposes</p>\n</li>\n</ul>\n<p><strong>Best Practices:</strong></p>\n<ul>\n<li><p>Verify the correct bank account ID before deletion</p>\n</li>\n<li><p>Ensure proper backup of banking information if required by regulations</p>\n</li>\n<li><p>Consider deactivating accounts before permanent deletion</p>\n</li>\n<li><p>Coordinate with finance teams before removing active accounts</p>\n</li>\n<li><p>Document the reason for bank account removal for audit trails</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies",":key","banks",":id"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"","key":"key"},{"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"8cda476d-242c-4115-8242-f0877709446e"}],"id":"cde286c4-a9a4-4ac1-b227-3d85ce287bf6","_postman_id":"cde286c4-a9a4-4ac1-b227-3d85ce287bf6","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}}},{"name":"Documents","item":[{"name":"Add company document","id":"851dc49d-8d9b-4cbe-9a19-9377e3c51651","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"type\":\"Identity document legal representative\",\n    \"name\":\"\",\n    \"url\":\"\",\n    \"fileName\": \"adf.pdf\",\n    \"fileContent\":\"\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/companies/:key/document","description":"<p>Add a document to a company.</p>\n<blockquote>\n<p>This endpoint allows adding documents to a company's document collection. Documents can be uploaded as files (base64 encoded) or stored as URL links. The authenticated user must have Administrator role in the specified company. </p>\n</blockquote>\n<p><strong>URL Path Parameter:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{key} - Company UUID key\n\n</code></pre><p><strong>Request Body Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"Identity document legal representative\",\n    \"name\": \"Document\",\n    \"url\": \"\",\n    \"fileName\": \"doc.pdf\",\n    \"fileContent\": \"&lt;base64_string&gt;\"\n}\n\n</code></pre>\n<p><strong>Success Response (HTTP 200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": {\n        \"message\": \"Document created successfully\"\n    }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p><strong>HTTP 400 Bad Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Error description\"\n}\n\n</code></pre>\n<p><strong>HTTP 401 Unauthorized:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"Unauthorized\",\n    \"message\": \"You don't have enough permissions for this action.\"\n}\n\n</code></pre>\n<p><strong>HTTP 500 Internal Server Error:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"error\",\n    \"message\": \"Could not store key. Please contact support if problem persists.\"\n}\n\n</code></pre>\n<p><strong>Request Body Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>String</td>\n<td>Yes</td>\n<td>Document type. Valid values: <code>Contract</code>, <code>Commercial Register</code>, <code>Identity document legal representative</code>, <code>Billing instructions or information</code>, <code>Other</code></td>\n</tr>\n<tr>\n<td>name</td>\n<td>String</td>\n<td>Conditional</td>\n<td>Document name for URL links. Required when <code>url</code> is provided and file upload fields are empty</td>\n</tr>\n<tr>\n<td>url</td>\n<td>String</td>\n<td>Conditional</td>\n<td>Document URL for external links. Required when <code>name</code> is provided and file upload fields are empty</td>\n</tr>\n<tr>\n<td>fileName</td>\n<td>String</td>\n<td>Conditional</td>\n<td>File name with extension for uploaded documents. Required when <code>fileContent</code> is provided and URL fields are empty</td>\n</tr>\n<tr>\n<td>fileContent</td>\n<td>String</td>\n<td>Conditional</td>\n<td>Base64 encoded file content. Required when <code>fileName</code> is provided and URL fields are empty</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>URL Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>UUID of the company to which the document will be added</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Document Upload Modes:</strong></p>\n<p><strong>File Upload Mode:</strong></p>\n<ul>\n<li><p>Provide both <code>fileName</code> and <code>fileContent</code></p>\n</li>\n<li><p>Leave <code>name</code> and <code>url</code> empty</p>\n</li>\n<li><p>The file will be stored on the server and assigned a unique identifier</p>\n</li>\n</ul>\n<p><strong>URL Link Mode:</strong></p>\n<ul>\n<li><p>Provide both <code>name</code> and <code>url</code></p>\n</li>\n<li><p>Leave <code>fileName</code> and <code>fileContent</code> empty</p>\n</li>\n<li><p>The document will be stored as a reference to an external URL</p>\n</li>\n</ul>\n<p><strong>Business Rules and Validation:</strong></p>\n<ul>\n<li><p>The authenticated user must have Administrator role in the specified company</p>\n</li>\n<li><p>Either file upload fields (<code>fileName</code> + <code>fileContent</code>) OR URL fields (<code>name</code> + <code>url</code>) must be provided, but not both</p>\n</li>\n<li><p>The <code>type</code> field must be one of the predefined valid values</p>\n</li>\n<li><p>For file uploads, <code>fileContent</code> must be valid base64 encoded data</p>\n</li>\n<li><p>For URL links, <code>url</code> must be a valid URL format</p>\n</li>\n<li><p>If document type is <code>Contract</code>, the company's contract flag will be automatically set to true</p>\n</li>\n<li><p>File extensions are preserved when uploading files</p>\n</li>\n<li><p>Each document gets a unique system-generated identifier</p>\n</li>\n</ul>\n<p><strong>Valid Document Types:</strong></p>\n<ul>\n<li><p><code>Contract</code> - Legal contracts (automatically sets company contract flag)</p>\n</li>\n<li><p><code>Commercial Register</code> - Commercial registration documents</p>\n</li>\n<li><p><code>Identity document legal representative</code> - ID documents for company representatives</p>\n</li>\n<li><p><code>Billing instructions or information</code> - Billing and payment related documents</p>\n</li>\n<li><p><code>Other</code> - Any other type of company document</p>\n</li>\n</ul>\n<p><strong>Prerequisites:</strong></p>\n<ul>\n<li><p>User authentication is required</p>\n</li>\n<li><p>User must have Administrator role in the target company</p>\n</li>\n<li><p>Company must exist and be accessible to the user</p>\n</li>\n<li><p>For file uploads: sufficient server storage space</p>\n</li>\n<li><p>For URL links: accessible external URL</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies",":key","document"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"79a59b6a-e97f-4a5f-b519-b6f14d9143d7","key":"key"}]}},"response":[],"_postman_id":"851dc49d-8d9b-4cbe-9a19-9377e3c51651"},{"name":"Delete company document","id":"6228508b-9ef8-4e7a-b9df-809fc31b8f28","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"https://api.vat4u.com/v1/companies/:key/document/:id","description":"<p>Delete a company document.</p>\n<blockquote>\n<p>This endpoint allows removing an existing document from a company's document collection. This action permanently removes the document and its associated files from the system. The authenticated user must have Administrator role in the target company. If the deleted document is a contract and no other contracts remain, the company's contract flag will be automatically set to false. </p>\n</blockquote>\n<p><strong>URL Path Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{key} - Company UUID key\n{documentId} - Document ID (must be numeric)\n\n</code></pre><p><strong>Success Response (HTTP 200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": {\n        \"message\": \"Document deleted successfully\"\n    }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p><strong>HTTP 400 Bad Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Document id is not valid\"\n}\n\n</code></pre>\n<p><strong>HTTP 401 Unauthorized:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"Unauthorized\",\n    \"message\": \"You don't have enough permissions for this action.\"\n}\n\n</code></pre>\n<p><strong>HTTP 500 Internal Server Error:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"\",\n    \"message\": \"\"\n}\n\n</code></pre>\n<p><strong>URL Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>UUID of the company whose document will be deleted</td>\n</tr>\n<tr>\n<td>documentId</td>\n<td>Numeric ID of the document to be deleted</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Business Rules and Validation:</strong></p>\n<ul>\n<li><p>The authenticated user must have Administrator role in the target company</p>\n</li>\n<li><p>The <code>documentId</code> must be a valid numeric value (integer)</p>\n</li>\n<li><p>The document must exist and belong to the specified company</p>\n</li>\n<li><p>The deletion is permanent and cannot be undone through the API</p>\n</li>\n<li><p>Associated document files are permanently removed from server storage</p>\n</li>\n<li><p><strong>Contract Logic</strong>: If the deleted document is of type \"Contract\" and no other contracts remain in the company, the company's contract flag is automatically set to false</p>\n</li>\n</ul>\n<p><strong>Authorization Requirements:</strong></p>\n<ul>\n<li><p><strong>Target Company</strong>: Administrator role required</p>\n</li>\n<li><p>The user must have administrative access to the company that owns the document</p>\n</li>\n</ul>\n<p><strong>Prerequisites:</strong></p>\n<ul>\n<li><p>User authentication is required</p>\n</li>\n<li><p>User must have Administrator role in the target company</p>\n</li>\n<li><p>Document with specified ID must exist</p>\n</li>\n<li><p>Document must belong to the specified company</p>\n</li>\n<li><p>Document ID must be a valid numeric value</p>\n</li>\n</ul>\n<p><strong>Use Cases:</strong></p>\n<ul>\n<li><p>Removing outdated or incorrect documents</p>\n</li>\n<li><p>Deleting expired contracts or certificates</p>\n</li>\n<li><p>Cleaning up unnecessary documentation</p>\n</li>\n<li><p>Compliance with document retention policies</p>\n</li>\n<li><p>Replacing documents with updated versions</p>\n</li>\n</ul>\n<p><strong>Important Notes:</strong></p>\n<ul>\n<li><p><strong>Permanent Action</strong>: This operation cannot be undone through the API</p>\n</li>\n<li><p><strong>File Removal</strong>: Associated document files are permanently deleted from server storage</p>\n</li>\n<li><p><strong>Contract Flag Management</strong>: Automatic contract status management based on remaining contract documents</p>\n</li>\n<li><p><strong>Audit Trail</strong>: The deletion action may be logged for audit and compliance purposes</p>\n</li>\n</ul>\n<p><strong>Special Contract Handling:</strong></p>\n<p>When a contract document is deleted:</p>\n<ol>\n<li><p>The system checks all remaining documents for the company</p>\n</li>\n<li><p>If no other documents of type \"Contract\" are found</p>\n</li>\n<li><p>The company's contract flag is automatically set to <code>false</code></p>\n</li>\n<li><p>This affects the company's contract status in the system</p>\n</li>\n</ol>\n<p><strong>Security Considerations:</strong></p>\n<ul>\n<li><p>Only users with Administrator role in the company can delete documents</p>\n</li>\n<li><p>The system validates that the document belongs to the specified company</p>\n</li>\n<li><p>Cross-company document deletion is not permitted</p>\n</li>\n<li><p>Document ID must be numeric to prevent injection attacks</p>\n</li>\n</ul>\n<p><strong>Related Operations:</strong></p>\n<p>After deleting a document, you may want to:</p>\n<ul>\n<li><p>Upload a new document if replacement is needed</p>\n</li>\n<li><p>Review remaining documents for the company</p>\n</li>\n<li><p>Verify the company's contract status if a contract was deleted</p>\n</li>\n<li><p>Update related compliance documentation</p>\n</li>\n</ul>\n<p><strong>Error Scenarios:</strong></p>\n<ul>\n<li><p><strong>Invalid Document ID</strong>: When the ID is not numeric</p>\n</li>\n<li><p><strong>Document Not Found</strong>: When the ID doesn't exist or doesn't belong to the company</p>\n</li>\n<li><p><strong>Insufficient Permissions</strong>: When user lacks Administrator role</p>\n</li>\n<li><p><strong>Company Not Found</strong>: When the company UUID is invalid</p>\n</li>\n<li><p><strong>System Errors</strong>: When database or file system issues occur</p>\n</li>\n</ul>\n<p><strong>Document Types Affected:</strong></p>\n<ul>\n<li><p><code>Contract</code> - Legal contracts (affects company contract flag)</p>\n</li>\n<li><p><code>Commercial Register</code> - Commercial registration documents</p>\n</li>\n<li><p><code>Identity document legal representative</code> - ID documents</p>\n</li>\n<li><p><code>Billing instructions or information</code> - Billing documents</p>\n</li>\n<li><p><code>Other</code> - Any other type of company document</p>\n</li>\n</ul>\n<p><strong>Compliance Considerations:</strong></p>\n<ul>\n<li><p>Ensure proper backup of documents before deletion if required by regulations</p>\n</li>\n<li><p>Verify that deletion doesn't violate document retention policies</p>\n</li>\n<li><p>Consider the impact on ongoing business processes</p>\n</li>\n<li><p>Maintain audit records of document deletion activities</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies",":key","document",":id"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"","key":"key"},{"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"6228508b-9ef8-4e7a-b9df-809fc31b8f28"}],"id":"78210450-f826-4564-8875-f17eebf5f847","_postman_id":"78210450-f826-4564-8875-f17eebf5f847","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}}},{"name":"TAX Certificates","item":[{"name":"Add tax certificate","id":"27c870fe-1de6-4c47-82b4-266db533aed3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"countryCode\": \"DE\",\n    \"validFrom\": \"2024-03-04\",\n    \"validTo\": \"2024-03-09\",\n    \"fileName\": \"ABC.pdf\",\n    \"fileContent\": \"\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/companies/:key/tax_certificate","description":"<p>Add a tax certificate to a company.</p>\n<blockquote>\n<p>This endpoint allows adding a tax certificate to a specific company. Tax certificates are country-specific documents that validate the company's tax status in particular jurisdictions. The authenticated user must have Administrator role in the specified company. All parameters are mandatory for this endpoint. </p>\n</blockquote>\n<p><strong>URL Path Parameter:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{key} - Company UUID key\n\n</code></pre><p><strong>Request Body Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"countryCode\": \"DE\",\n    \"validFrom\": \"2024-03-04\",\n    \"validTo\": \"2024-03-09\",\n    \"fileName\": \"ABC.pdf\",\n    \"fileContent\": \"\"\n}\n\n</code></pre>\n<p><strong>Success Response (HTTP 200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": {\n        \"message\": \"Tax certificate created successfully\"\n    }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p><strong>HTTP 400 Bad Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Invalid country code: XX\"\n}\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Invalid date format or validation error\"\n}\n\n</code></pre>\n<p><strong>HTTP 401 Unauthorized:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"Unauthorized\",\n    \"message\": \"You don't have enough permissions for this action.\"\n}\n\n</code></pre>\n<p><strong>HTTP 500 Internal Server Error:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"\",\n    \"message\": \"\"\n}\n\n</code></pre>\n<p><strong>Request Body Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>countryCode</td>\n<td>String</td>\n<td>Yes</td>\n<td>2-letter ISO country code for which the tax certificate is valid (e.g., DE, FR, US)</td>\n</tr>\n<tr>\n<td>validFrom</td>\n<td>String</td>\n<td>Yes</td>\n<td>Start date of certificate validity in YYYY-MM-DD format</td>\n</tr>\n<tr>\n<td>validTo</td>\n<td>String</td>\n<td>Yes</td>\n<td>End date of certificate validity in YYYY-MM-DD format</td>\n</tr>\n<tr>\n<td>fileName</td>\n<td>String</td>\n<td>Yes</td>\n<td>File name with extension for the tax certificate document</td>\n</tr>\n<tr>\n<td>fileContent</td>\n<td>String</td>\n<td>Yes</td>\n<td>Base64 encoded content of the tax certificate document</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>URL Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>UUID of the company to which the tax certificate will be added</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Business Rules and Validation:</strong></p>\n<ul>\n<li><p>The authenticated user must have Administrator role in the specified company</p>\n</li>\n<li><p><code>countryCode</code> must be a valid 2-letter ISO country code existing in the system</p>\n</li>\n<li><p><code>validFrom</code> and <code>validTo</code> must be in YYYY-MM-DD format</p>\n</li>\n<li><p><code>validTo</code> should be later than or equal to <code>validFrom</code> (logical date validation)</p>\n</li>\n<li><p>Both <code>fileName</code> and <code>fileContent</code> are mandatory</p>\n</li>\n<li><p><code>fileContent</code> must be valid base64 encoded data</p>\n</li>\n<li><p>The system automatically sets time components: valid_from to 00:00:00 and valid_to to 23:59:59</p>\n</li>\n<li><p>Certificate files are stored with a unique naming convention</p>\n</li>\n</ul>\n<p><strong>File Upload Details:</strong></p>\n<ul>\n<li><p><strong>File Storage Location</strong>: Company-specific directory on the server</p>\n</li>\n<li><p><strong>File Naming Convention</strong>: <code>TAX_CERTIFICATE_{companyId}_{countryCode}_{YYYY-DD-HHMMSS}.{originalExtension}</code></p>\n</li>\n<li><p><strong>Supported Formats</strong>: Any file format with proper extension in filename</p>\n</li>\n<li><p><strong>File Processing</strong>: Base64 content is decoded and stored as binary file</p>\n</li>\n<li><p><strong>Directory Creation</strong>: System automatically creates company directory if it doesn't exist</p>\n</li>\n</ul>\n<p><strong>Date Processing:</strong></p>\n<ul>\n<li><p><strong>valid_from</strong>: Converted to <code>YYYY-MM-DD 00:00:00</code> format</p>\n</li>\n<li><p><strong>valid_to</strong>: Converted to <code>YYYY-MM-DD 23:59:59</code> format</p>\n</li>\n<li><p><strong>Input Format</strong>: Must be provided as <code>YYYY-MM-DD</code></p>\n</li>\n<li><p><strong>Validation</strong>: Dates must be valid calendar dates</p>\n</li>\n</ul>\n<p><strong>Prerequisites:</strong></p>\n<ul>\n<li><p>User authentication is required</p>\n</li>\n<li><p>User must have Administrator role in the target company</p>\n</li>\n<li><p>Company must exist and be accessible to the user</p>\n</li>\n<li><p>Valid country code must be provided</p>\n</li>\n<li><p>Valid date range must be specified</p>\n</li>\n<li><p>Valid certificate document must be provided</p>\n</li>\n</ul>\n<p><strong>Use Cases:</strong></p>\n<ul>\n<li><p>Adding tax residency certificates for international operations</p>\n</li>\n<li><p>Storing VAT certificates for specific countries</p>\n</li>\n<li><p>Maintaining compliance documentation for cross-border business</p>\n</li>\n<li><p>Supporting VAT claim filing requirements</p>\n</li>\n<li><p>Establishing tax status for regulatory purposes</p>\n</li>\n</ul>\n<p><strong>Example File Naming:</strong></p>\n<p>For a German tax certificate uploaded on March 15, 2024, the system would generate:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>TAX_CERTIFICATE_12345_DE_2024-15-103045.pdf\n\n</code></pre><p><strong>Common Country Codes:</strong></p>\n<ul>\n<li><p><code>DE</code> - Germany</p>\n</li>\n<li><p><code>FR</code> - France</p>\n</li>\n<li><p><code>GB</code> - United Kingdom</p>\n</li>\n<li><p><code>US</code> - United States</p>\n</li>\n<li><p><code>IT</code> - Italy</p>\n</li>\n<li><p><code>ES</code> - Spain</p>\n</li>\n<li><p><code>NL</code> - Netherlands</p>\n</li>\n<li><p><code>AT</code> - Austria</p>\n</li>\n</ul>\n<p><strong>Related Information:</strong></p>\n<p>Tax certificates are used to:</p>\n<ul>\n<li><p>Validate company tax status in specific jurisdictions</p>\n</li>\n<li><p>Support VAT registration and claim processes</p>\n</li>\n<li><p>Meet compliance requirements for international business</p>\n</li>\n<li><p>Provide evidence of tax obligations and rights</p>\n</li>\n<li><p>Support audit and regulatory review processes</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies",":key","tax_certificate"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"79a59b6a-e97f-4a5f-b519-b6f14d9143d7","key":"key"}]}},"response":[],"_postman_id":"27c870fe-1de6-4c47-82b4-266db533aed3"},{"name":"Delete tax certificate","id":"8852837e-ce05-43cb-bf4e-438c1fa16df8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"https://api.vat4u.com/v1/companies/:key/tax_certificate/:id","description":"<p>Delete a company tax certificate.</p>\n<blockquote>\n<p>This endpoint allows removing an existing tax certificate for a specific company. This action permanently removes the tax certificate and its associated documentation. The authenticated user must have Administrator role in the target company. </p>\n</blockquote>\n<p><strong>URL Path Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{key} - Company UUID key\n{id} - Tax certificate ID\n\n</code></pre><p><strong>Success Response (HTTP 200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": {\n        \"message\": \"Tax certificate deleted successfully\"\n    }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p><strong>HTTP 400 Bad Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Tax certificate with id {id} not found for this company\"\n}\n\n</code></pre>\n<p><strong>HTTP 401 Unauthorized:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"Unauthorized\",\n    \"message\": \"You don't have enough permissions for this action.\"\n}\n\n</code></pre>\n<p><strong>HTTP 500 Internal Server Error:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"\",\n    \"message\": \"\"\n}\n\n</code></pre>\n<p><strong>URL Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>UUID of the company whose tax certificate will be deleted</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Internal ID of the tax certificate to be deleted</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Business Rules and Validation:</strong></p>\n<ul>\n<li><p>The authenticated user must have Administrator role in the target company</p>\n</li>\n<li><p>The tax certificate with the specified <code>id</code> must exist and belong to the company</p>\n</li>\n<li><p>The certificate entry must be associated with the specified company</p>\n</li>\n<li><p>The deletion is permanent and cannot be undone through the API</p>\n</li>\n<li><p>Associated certificate files may be removed from the server storage</p>\n</li>\n<li><p>All validity periods and country associations for this certificate are removed</p>\n</li>\n</ul>\n<p><strong>Authorization Requirements:</strong></p>\n<ul>\n<li><p><strong>Target Company</strong>: Administrator role required</p>\n</li>\n<li><p>The user must have administrative access to the company that owns the tax certificate</p>\n</li>\n</ul>\n<p><strong>Prerequisites:</strong></p>\n<ul>\n<li><p>User authentication is required</p>\n</li>\n<li><p>User must have Administrator role in the target company</p>\n</li>\n<li><p>Tax certificate with specified ID must exist</p>\n</li>\n<li><p>Tax certificate must belong to the specified company</p>\n</li>\n</ul>\n<p><strong>Use Cases:</strong></p>\n<ul>\n<li><p>Removing expired tax certificates</p>\n</li>\n<li><p>Deleting invalid or incorrect certificates</p>\n</li>\n<li><p>Cleaning up outdated tax documentation</p>\n</li>\n<li><p>Compliance with document retention policies</p>\n</li>\n<li><p>Replacing certificates with updated versions</p>\n</li>\n</ul>\n<p><strong>Important Notes:</strong></p>\n<ul>\n<li><p><strong>Permanent Action</strong>: This operation cannot be undone through the API</p>\n</li>\n<li><p><strong>File Removal</strong>: Associated certificate files may be permanently deleted from server storage</p>\n</li>\n<li><p><strong>Compliance Impact</strong>: Removing certificates may affect VAT filing capabilities in specific countries</p>\n</li>\n<li><p><strong>Audit Trail</strong>: The deletion action may be logged for audit and compliance purposes</p>\n</li>\n</ul>\n<p><strong>Security Considerations:</strong></p>\n<ul>\n<li><p>Only users with Administrator role in the company can delete tax certificates</p>\n</li>\n<li><p>The system validates that the tax certificate belongs to the specified company</p>\n</li>\n<li><p>Cross-company certificate deletion is not permitted</p>\n</li>\n<li><p>Deletion requires proper authentication and authorization</p>\n</li>\n</ul>\n<p><strong>Related Operations:</strong></p>\n<p>After deleting a tax certificate, you may want to:</p>\n<ul>\n<li><p>Upload a new certificate if replacement is needed</p>\n</li>\n<li><p>Review remaining certificates for the company</p>\n</li>\n<li><p>Verify VAT filing capabilities for affected countries</p>\n</li>\n<li><p>Update compliance documentation as needed</p>\n</li>\n</ul>\n<p><strong>Error Scenarios:</strong></p>\n<ul>\n<li><p><strong>Certificate Not Found</strong>: When the ID doesn't exist or doesn't belong to the company</p>\n</li>\n<li><p><strong>Insufficient Permissions</strong>: When user lacks Administrator role</p>\n</li>\n<li><p><strong>Company Not Found</strong>: When the company UUID is invalid</p>\n</li>\n<li><p><strong>System Errors</strong>: When database or file system issues occur</p>\n</li>\n</ul>\n<p><strong>Compliance Considerations:</strong></p>\n<ul>\n<li><p>Ensure proper backup of certificates before deletion if required by regulations</p>\n</li>\n<li><p>Verify that deletion doesn't violate document retention policies</p>\n</li>\n<li><p>Consider the impact on ongoing VAT processes and claims</p>\n</li>\n<li><p>Maintain audit records of certificate deletion activities</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies",":key","tax_certificate",":id"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"id":"cf25e1df-fa4f-433c-8cfa-5ab81e9d43c6","type":"any","value":"79a59b6a-e97f-4a5f-b519-b6f14d9143d7","key":"key"},{"id":"4cc937dc-b56a-4e1d-a4b8-41a2b2241e0e","type":"any","value":"951","key":"id"}]}},"response":[],"_postman_id":"8852837e-ce05-43cb-bf4e-438c1fa16df8"}],"id":"e0e157ca-5f2c-42b6-95ae-1f8d9fd6935d","_postman_id":"e0e157ca-5f2c-42b6-95ae-1f8d9fd6935d","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}}},{"name":"Representative","item":[{"name":"List representatives","id":"608ded65-3678-43f3-9a6f-7865811ac0d3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.vat4u.com/v1/companies/:key/representative","description":"<p>Retrieve representatives for a company.</p>\n<blockquote>\n<p>This endpoint allows retrieving all representatives associated with a specific company. Representatives are entities that can act on behalf of the company when filing VAT claims in various countries. The authenticated user must have Administrator role in the specified company to access this information. </p>\n</blockquote>\n<p><strong>URL Path Parameter:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{key} - Company UUID key\n\n</code></pre><p><strong>Success Response (HTTP 200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": {\n        \"representatives\": [\n            {\n                \"id\": 789,\n                \"companyId\": 12345,\n                \"legalName\": \"VAT Representative Services Ltd\",\n                \"contactPerson\": \"John Smith\",\n                \"poaFileName\": \"POA18883_8720_2025-0505-171438.pdf\",\n                \"createdAt\": \"2025-05-05 05:14:38\",\n                \"modifiedAt\": \"2025-05-05 17:14:38\",\n                \"userId\": 123,\n                \"modifiedBy\": null,\n                \"representativeLegalName\": \"My Client\",\n                \"modifiedByUserName\": null,\n                \"countries\": [\n                    {\n                        \"name\": \"Germany\",\n                        \"code\": \"DE\"\n                    },\n                    {\n                        \"name\": \"France\", \n                        \"code\": \"FR\"\n                    }\n                ]\n            }\n        ]\n    }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p><strong>HTTP 400 Bad Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Error description\"\n}\n\n</code></pre>\n<p><strong>HTTP 401 Unauthorized:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"Unauthorized\",\n    \"message\": \"You don't have enough permissions for this action.\"\n}\n\n</code></pre>\n<p><strong>HTTP 500 Internal Server Error:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"\",\n    \"message\": \"\"\n}\n\n</code></pre>\n<p><strong>URL Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>UUID of the company for which to retrieve representatives</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Response Fields Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>representatives</td>\n<td>Array</td>\n<td>Array of representative objects associated with the company</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Representative Object Fields:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Integer</td>\n<td>Internal VAT4U ID of the representative record</td>\n</tr>\n<tr>\n<td>companyId</td>\n<td>Integer</td>\n<td>Internal VAT4U ID of the company registered as the representative</td>\n</tr>\n<tr>\n<td>legalName</td>\n<td>String</td>\n<td>Legal name of the representative company</td>\n</tr>\n<tr>\n<td>contactPerson</td>\n<td>String</td>\n<td>Name of the contact person at the representative company</td>\n</tr>\n<tr>\n<td>poaFileName</td>\n<td>String</td>\n<td>File name of the Power of Attorney document</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>String</td>\n<td>Date and time when the representative record was created (YYYY-MM-DD HH:MM:SS)</td>\n</tr>\n<tr>\n<td>countries</td>\n<td>Array</td>\n<td>List of countries where this representative is authorized to act</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Country Object Fields (within countries array):</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>name</td>\n<td>String</td>\n<td>Full international name of the country</td>\n</tr>\n<tr>\n<td>short_name</td>\n<td>String</td>\n<td>ISO 3166 Alpha-2 country code (e.g., DE, FR, US)</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Business Rules and Validation:</strong></p>\n<ul>\n<li><p>The authenticated user must have Administrator role in the specified company</p>\n</li>\n<li><p>Only representatives belonging to the specified company are returned</p>\n</li>\n<li><p>Each representative includes the list of countries where they can act on behalf of the company</p>\n</li>\n<li><p>Country information is returned with both full name and ISO short code</p>\n</li>\n<li><p>If no representatives exist for the company, an empty array is returned</p>\n</li>\n<li><p>Representatives can only be accessed by users who have appropriate permissions</p>\n</li>\n</ul>\n<p><strong>Prerequisites:</strong></p>\n<ul>\n<li><p>User authentication is required</p>\n</li>\n<li><p>User must have Administrator role in the target company</p>\n</li>\n<li><p>Company must exist and be accessible to the user</p>\n</li>\n</ul>\n<p><strong>Use Cases:</strong></p>\n<ul>\n<li><p>Displaying available representatives for VAT claim filing</p>\n</li>\n<li><p>Managing company representation across different countries</p>\n</li>\n<li><p>Auditing representative relationships and authorizations</p>\n</li>\n<li><p>Selecting appropriate representative based on claim destination country</p>\n</li>\n<li><p>Compliance reporting for cross-border VAT operations</p>\n</li>\n</ul>\n<p><strong>Related Information:</strong></p>\n<p>Representatives are used during VAT claim creation to specify which entity will handle the claim filing process in the destination country. Each representative must have:</p>\n<ul>\n<li><p>A valid Power of Attorney (POA) document</p>\n</li>\n<li><p>Authorization for specific countries</p>\n</li>\n<li><p>An active company profile in the VAT4U system</p>\n</li>\n<li><p>Proper permissions setup for the requesting user</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies",":key","representative"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"","key":"key"}]}},"response":[],"_postman_id":"608ded65-3678-43f3-9a6f-7865811ac0d3"},{"name":"Add representative","id":"2cfc2912-893b-4ce0-9dad-a0a3d59223a8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"representativeKey\": \"\",\n    \"countries\": [\"DE\", \"PL\"],\n    \"contactPerson\": \"Max Mustermann\",\n    \"fileName\": \"POA.pdf\",\n    \"fileContent\": \"\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/companies/:key/representative","description":"<p>Add a representative to a company.</p>\n<blockquote>\n<p>This endpoint allows adding a new representative to a specific company. Representatives are entities that can act on behalf of the company when filing VAT claims in various countries. The authenticated user must have Administrator role in both the target company and the representative company. A Power of Attorney (POA) document must be uploaded as part of the process. </p>\n</blockquote>\n<p><strong>URL Path Parameter:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{key} - Company UUID key\n\n</code></pre><p><strong>Request Body Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"representativeKey\": \"661ca9b7-95e0-4c10-96d4-237719f14100\",\n    \"countries\": [\"DE\", \"PL\"],\n    \"contactPerson\": \"Max Mustermann\",\n    \"fileName\": \"POA.pdf\",\n    \"fileContent\": \"\"\n}\n\n</code></pre>\n<p><strong>Success Response (HTTP 200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": {\n        \"message\": \"Representative created successfully\"\n    }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p><strong>HTTP 400 Bad Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Error description\"\n}\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Invalid country code: XX\"\n}\n\n</code></pre>\n<p><strong>HTTP 401 Unauthorized:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"Unauthorized\",\n    \"message\": \"You don't have enough permissions for this action.\"\n}\n\n</code></pre>\n<p><strong>HTTP 500 Internal Server Error:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"\",\n    \"message\": \"\"\n}\n\n</code></pre>\n<p><strong>Request Body Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>representativeKey</td>\n<td>String</td>\n<td>Yes</td>\n<td>UUID of the company that will act as representative</td>\n</tr>\n<tr>\n<td>countries</td>\n<td>Array</td>\n<td>Yes</td>\n<td>Array of 2-letter ISO country codes where representative is authorized (e.g., [\"DE\", \"PL\", \"GB\"])</td>\n</tr>\n<tr>\n<td>contactPerson</td>\n<td>String</td>\n<td>Yes</td>\n<td>Full name of the contact person at the representative company</td>\n</tr>\n<tr>\n<td>fileName</td>\n<td>String</td>\n<td>Yes</td>\n<td>File name with extension for the Power of Attorney document</td>\n</tr>\n<tr>\n<td>fileContent</td>\n<td>String</td>\n<td>Yes</td>\n<td>Base64 encoded content of the Power of Attorney document</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>URL Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>UUID of the company to which the representative will be added</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Business Rules and Validation:</strong></p>\n<ul>\n<li><p>The authenticated user must have Administrator role in the target company</p>\n</li>\n<li><p>The authenticated user must have Administrator role in the representative company (or at least access to it)</p>\n</li>\n<li><p>The <code>representativeKey</code> must reference an existing company in the VAT4U system</p>\n</li>\n<li><p>All country codes in the <code>countries</code> array must be valid 2-letter ISO country codes existing in the system</p>\n</li>\n<li><p>Both <code>fileName</code> and <code>fileContent</code> are mandatory for POA document upload</p>\n</li>\n<li><p>The POA file is stored with a unique naming convention: <code>POA{companyId}_{representativeId}_{timestamp}.{extension}</code></p>\n</li>\n<li><p>File content must be valid base64 encoded data</p>\n</li>\n<li><p>The representative company cannot represent itself</p>\n</li>\n<li><p>Country codes are validated against the system's country database</p>\n</li>\n</ul>\n<p><strong>File Upload Details:</strong></p>\n<ul>\n<li><p><strong>File Storage Location</strong>: Company-specific directory on the server</p>\n</li>\n<li><p><strong>File Naming Convention</strong>: <code>POA{companyId}_{representativeId}_{YYYY-DD-HHMMSS}.{originalExtension}</code></p>\n</li>\n<li><p><strong>Supported Formats</strong>: Any file format with proper extension in filename</p>\n</li>\n<li><p><strong>File Processing</strong>: Base64 content is decoded and stored as binary file</p>\n</li>\n<li><p><strong>Directory Creation</strong>: System automatically creates company directory if it doesn't exist</p>\n</li>\n</ul>\n<p><strong>Authorization Requirements:</strong></p>\n<p>The user must have appropriate permissions for both companies involved:</p>\n<ul>\n<li><p><strong>Target Company</strong>: Administrator role required</p>\n</li>\n<li><p><strong>Representative Company</strong>: User must have access (checked during validation)</p>\n</li>\n</ul>\n<p><strong>Prerequisites:</strong></p>\n<ul>\n<li><p>User authentication is required</p>\n</li>\n<li><p>User must have Administrator role in the target company</p>\n</li>\n<li><p>User must have access to the representative company</p>\n</li>\n<li><p>Representative company must exist and be active in the system</p>\n</li>\n<li><p>Valid country codes must be provided</p>\n</li>\n<li><p>Valid POA document must be provided</p>\n</li>\n<li><p>Sufficient server storage space for file upload</p>\n</li>\n</ul>\n<p><strong>Use Cases:</strong></p>\n<ul>\n<li><p>Setting up VAT claim representatives for cross-border operations</p>\n</li>\n<li><p>Establishing legal representation in specific countries</p>\n</li>\n<li><p>Compliance with local VAT filing requirements</p>\n</li>\n<li><p>Delegating VAT claim filing authority to specialized service providers</p>\n</li>\n</ul>\n<p><strong>Related Information:</strong></p>\n<ul>\n<li><p>Representatives can be used during VAT claim creation to specify which entity will handle the filing</p>\n</li>\n<li><p>Each representative relationship is country-specific</p>\n</li>\n<li><p>POA documents serve as legal authorization for representation</p>\n</li>\n<li><p>Representatives must be existing companies within the VAT4U platform</p>\n</li>\n<li><p>Multiple representatives can be added for different countries or regions</p>\n</li>\n</ul>\n<p><strong>Example Country Codes:</strong></p>\n<ul>\n<li><p><code>DE</code> - Germany</p>\n</li>\n<li><p><code>PL</code> - Poland</p>\n</li>\n<li><p><code>FR</code> - France</p>\n</li>\n<li><p><code>GB</code> - United Kingdom</p>\n</li>\n<li><p><code>ES</code> - Spain</p>\n</li>\n<li><p><code>IT</code> - Italy</p>\n</li>\n<li><p><code>NL</code> - Netherlands</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies",":key","representative"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"79a59b6a-e97f-4a5f-b519-b6f14d9143d7","key":"key"}]}},"response":[],"_postman_id":"2cfc2912-893b-4ce0-9dad-a0a3d59223a8"},{"name":"Update company representative","id":"abf31355-61fb-46bf-9cf1-c3ca5bec0cb9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\n    \"representativeKey\": \"\",\n    \"countries\": [\"DE\", \"PL\"],\n    \"contactPerson\": \"Max Mustermann\",\n    \"fileName\": \"POA.pdf\",\n    \"fileContent\": \"\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/companies/:key/representative/:id","description":"<p>Update a company representative.</p>\n<blockquote>\n<p>This endpoint allows updating an existing representative relationship for a specific company. Representatives are entities that can act on behalf of the company when filing VAT claims in various countries. The authenticated user must have Administrator role in both the target company and the representative company. All parameters are optional - only provided fields will be updated. </p>\n</blockquote>\n<p><strong>URL Path Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{key} - Company UUID key\n{id} - Representative relationship ID\n\n</code></pre><p><strong>Request Body Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"representativeKey\": \"661ca9b7-95e0-4c10-96d4-237719f14100\",\n    \"countries\": [\"DE\", \"PL\"],\n    \"contactPerson\": \"Max Mustermann\",\n    \"fileName\": \"POA.pdf\",\n    \"fileContent\": \"\"\n}\n\n</code></pre>\n<p><strong>Success Response (HTTP 200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": {\n        \"message\": \"Representative created successfully\"\n    }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p><strong>HTTP 400 Bad Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Representative with id {id} not found for this company\"\n}\n\n</code></pre>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Invalid country code: XX\"\n}\n\n</code></pre>\n<p><strong>HTTP 401 Unauthorized:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"Unauthorized\",\n    \"message\": \"You don't have enough permissions for this action.\"\n}\n\n</code></pre>\n<p><strong>HTTP 500 Internal Server Error:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"\",\n    \"message\": \"\"\n}\n\n</code></pre>\n<p><strong>Request Body Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Type</strong></th>\n<th><strong>Required</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>representativeKey</td>\n<td>String</td>\n<td>No</td>\n<td>UUID of the company that will act as representative (updates representative company)</td>\n</tr>\n<tr>\n<td>countries</td>\n<td>Array</td>\n<td>No</td>\n<td>Array of 2-letter ISO country codes where representative is authorized (e.g., [\"DE\", \"PL\", \"GB\"])</td>\n</tr>\n<tr>\n<td>contactPerson</td>\n<td>String</td>\n<td>No</td>\n<td>Full name of the contact person at the representative company</td>\n</tr>\n<tr>\n<td>fileName</td>\n<td>String</td>\n<td>Conditional</td>\n<td>File name with extension for the Power of Attorney document. Required if <code>fileContent</code> is provided</td>\n</tr>\n<tr>\n<td>fileContent</td>\n<td>String</td>\n<td>Conditional</td>\n<td>Base64 encoded content of the Power of Attorney document. Required if <code>fileName</code> is provided</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>URL Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>UUID of the company whose representative will be updated</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Internal ID of the representative relationship to be updated</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Business Rules and Validation:</strong></p>\n<ul>\n<li><p>The authenticated user must have Administrator role in the target company</p>\n</li>\n<li><p>The authenticated user must have Administrator role in the representative company (or at least access to it)</p>\n</li>\n<li><p>The representative relationship with the specified <code>id</code> must exist and belong to the company</p>\n</li>\n<li><p>If <code>representativeKey</code> is provided, it must reference an existing company in the VAT4U system</p>\n</li>\n<li><p>All country codes in the <code>countries</code> array must be valid 2-letter ISO country codes existing in the system</p>\n</li>\n<li><p>If POA document fields are provided, both <code>fileName</code> and <code>fileContent</code> must be specified together</p>\n</li>\n<li><p>Only provided fields will be updated; missing fields will retain their current values</p>\n</li>\n<li><p>If a new POA file is uploaded, it will replace the existing one</p>\n</li>\n</ul>\n<p><strong>Update Behavior:</strong></p>\n<ul>\n<li><p><strong>Partial Updates</strong>: Only fields provided in the request will be updated</p>\n</li>\n<li><p><strong>Field Retention</strong>: Fields not included in the request will keep their existing values</p>\n</li>\n<li><p><strong>File Replacement</strong>: Uploading a new POA file completely replaces the existing file</p>\n</li>\n<li><p><strong>Country Override</strong>: Providing a new countries array completely replaces the existing country list</p>\n</li>\n<li><p><strong>Representative Change</strong>: Changing <code>representativeKey</code> transfers the relationship to a different company</p>\n</li>\n</ul>\n<p><strong>File Upload Details:</strong></p>\n<ul>\n<li><p><strong>File Storage Location</strong>: Company-specific directory on the server</p>\n</li>\n<li><p><strong>File Naming Convention</strong>: <code>POA{companyId}_{representativeId}_{YYYY-DD-HHMMSS}.{originalExtension}</code></p>\n</li>\n<li><p><strong>File Processing</strong>: Base64 content is decoded and stored as binary file</p>\n</li>\n<li><p><strong>File Replacement</strong>: New uploads overwrite existing POA files</p>\n</li>\n</ul>\n<p><strong>Authorization Requirements:</strong></p>\n<p>The user must have appropriate permissions for both companies involved:</p>\n<ul>\n<li><p><strong>Target Company</strong>: Administrator role required</p>\n</li>\n<li><p><strong>Representative Company</strong>: User must have access (checked during validation)</p>\n</li>\n</ul>\n<p><strong>Prerequisites:</strong></p>\n<ul>\n<li><p>User authentication is required</p>\n</li>\n<li><p>User must have Administrator role in the target company</p>\n</li>\n<li><p>User must have access to the representative company (if changing representative)</p>\n</li>\n<li><p>Representative relationship with specified ID must exist</p>\n</li>\n<li><p>Representative company must exist and be active in the system (if changing representative)</p>\n</li>\n<li><p>Valid country codes must be provided (if updating countries)</p>\n</li>\n<li><p>Valid POA document must be provided (if updating file)</p>\n</li>\n</ul>\n<p><strong>Use Cases:</strong></p>\n<ul>\n<li><p>Updating contact person information for existing representative</p>\n</li>\n<li><p>Modifying country authorization scope for representative</p>\n</li>\n<li><p>Replacing expired or updated Power of Attorney documents</p>\n</li>\n<li><p>Changing the representative company while maintaining the relationship</p>\n</li>\n<li><p>Adjusting representative permissions for specific countries</p>\n</li>\n</ul>\n<p><strong>Example Update Scenarios:</strong></p>\n<p><strong>Update Contact Person Only:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"contactPerson\": \"John Smith\"\n}\n\n</code></pre>\n<p><strong>Update Countries Only:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"countries\": [\"DE\", \"FR\", \"IT\"]\n}\n\n</code></pre>\n<p><strong>Replace POA Document:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"fileName\": \"Updated_POA.pdf\",\n    \"fileContent\": \"base64_encoded_content_here\"\n}\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies",":key","representative",":id"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"","key":"key"},{"type":"any","value":"","key":"id"}]}},"response":[],"_postman_id":"abf31355-61fb-46bf-9cf1-c3ca5bec0cb9"},{"name":"Delete representative","id":"49dc7522-35c5-497a-afa9-9ccc90d46938","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"https://api.vat4u.com/v1/companies/:key/representative/:id","description":"<p>Delete a company representative.</p>\n<blockquote>\n<p>This endpoint allows removing an existing representative relationship for a specific company. This action permanently removes the representative's authorization to act on behalf of the company for VAT claims. The authenticated user must have Administrator role in the target company. </p>\n</blockquote>\n<p><strong>URL Path Parameters:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{key} - Company UUID key\n{id} - Representative relationship ID\n\n</code></pre><p><strong>Success Response (HTTP 200 OK):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": {\n        \"message\": \"Representative deleted successfully\"\n    }\n}\n\n</code></pre>\n<p><strong>Error Responses:</strong></p>\n<p><strong>HTTP 400 Bad Request:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"ERROR_CODE\",\n    \"message\": \"Representative with id {id} not found for this company\"\n}\n\n</code></pre>\n<p><strong>HTTP 401 Unauthorized:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"Unauthorized\",\n    \"message\": \"You don't have enough permissions for this action.\"\n}\n\n</code></pre>\n<p><strong>HTTP 500 Internal Server Error:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"error\",\n    \"code\": \"\",\n    \"message\": \"\"\n}\n\n</code></pre>\n<p><strong>URL Parameters Description:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>key</td>\n<td>UUID of the company whose representative will be deleted</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Internal ID of the representative relationship to be deleted</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Business Rules and Validation:</strong></p>\n<ul>\n<li><p>The authenticated user must have Administrator role in the target company</p>\n</li>\n<li><p>The representative relationship with the specified <code>id</code> must exist and belong to the company</p>\n</li>\n<li><p>The representative entry must be associated with the specified company</p>\n</li>\n<li><p>The deletion is permanent and cannot be undone through the API</p>\n</li>\n<li><p>All country authorizations for this representative relationship are removed</p>\n</li>\n<li><p>Associated Power of Attorney documents remain stored but are no longer linked</p>\n</li>\n</ul>\n<p><strong>Authorization Requirements:</strong></p>\n<ul>\n<li><p><strong>Target Company</strong>: Administrator role required</p>\n</li>\n<li><p>The user must have administrative access to the company that owns the representative relationship</p>\n</li>\n</ul>\n<p><strong>Prerequisites:</strong></p>\n<ul>\n<li><p>User authentication is required</p>\n</li>\n<li><p>User must have Administrator role in the target company</p>\n</li>\n<li><p>Representative relationship with specified ID must exist</p>\n</li>\n<li><p>Representative relationship must belong to the specified company</p>\n</li>\n</ul>\n<p><strong>Use Cases:</strong></p>\n<ul>\n<li><p>Terminating representative services</p>\n</li>\n<li><p>Removing expired or invalid representative relationships</p>\n</li>\n<li><p>Cleaning up unused representative authorizations</p>\n</li>\n<li><p>Compliance with changing business requirements</p>\n</li>\n<li><p>Revoking representative access after contract termination</p>\n</li>\n</ul>\n<p><strong>Important Notes:</strong></p>\n<ul>\n<li><p><strong>Permanent Action</strong>: This operation cannot be undone through the API</p>\n</li>\n<li><p><strong>File Retention</strong>: POA documents may remain on the server but will no longer be accessible through the representative relationship</p>\n</li>\n<li><p><strong>Claim Impact</strong>: Existing VAT claims that used this representative will not be affected, but future claims cannot use this representative</p>\n</li>\n<li><p><strong>Audit Trail</strong>: The deletion action may be logged for audit purposes</p>\n</li>\n</ul>\n<p><strong>Security Considerations:</strong></p>\n<ul>\n<li><p>Only users with Administrator role in the company can delete representatives</p>\n</li>\n<li><p>The system validates that the representative relationship belongs to the specified company</p>\n</li>\n<li><p>Cross-company representative deletion is not permitted</p>\n</li>\n</ul>\n<p><strong>Related Operations:</strong></p>\n<p>After deleting a representative, you may want to:</p>\n<ul>\n<li><p>List remaining representatives using the List Representatives endpoint</p>\n</li>\n<li><p>Add a new representative if replacement is needed</p>\n</li>\n<li><p>Review VAT claims that were filed through the deleted representative</p>\n</li>\n</ul>\n<p><strong>Error Scenarios:</strong></p>\n<ul>\n<li><p><strong>Representative Not Found</strong>: When the ID doesn't exist or doesn't belong to the company</p>\n</li>\n<li><p><strong>Insufficient Permissions</strong>: When user lacks Administrator role</p>\n</li>\n<li><p><strong>Company Not Found</strong>: When the company UUID is invalid</p>\n</li>\n<li><p><strong>System Errors</strong>: When database or file system issues occur</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","companies",":key","representative",":id"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"id":"c67d8467-5f80-4482-9d59-cc2fcb093244","type":"any","value":"79a59b6a-e97f-4a5f-b519-b6f14d9143d7","key":"key"},{"id":"97e644d3-4452-406d-9d90-c5ee1e4f2e57","type":"any","value":"1872","key":"id"}]}},"response":[],"_postman_id":"49dc7522-35c5-497a-afa9-9ccc90d46938"}],"id":"40094012-c2a0-46c8-ad61-10e808b679ed","_postman_id":"40094012-c2a0-46c8-ad61-10e808b679ed","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}}}],"id":"f671553f-ba48-473b-beb2-e7dd3cf8da3d","_postman_id":"f671553f-ba48-473b-beb2-e7dd3cf8da3d","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}}},{"name":"Claim","item":[{"name":"List claims","id":"d312acd8-f5f7-474b-8b5e-769d71bb9343","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.vat4u.com/v1/claims?claimantKey=5b94dea4-4eb1-4943-a742-a92c35b6cf10&page=0&modifiedAfter=2023-02-02","description":"<p>Retrieve list of claims from the platform.</p>\n<blockquote>\n<p>This endpoint has pagination. Pay attention to the page URL query parameter. If you omit this parameter API will return all companies from your profile. <strong>Hint</strong>: This is useful if you would like to retrieve all the records in a single API call. </p>\n</blockquote>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>companyIdclaimantKey: String (optional) - Filter single claimant claims. Use \"key\" property from the Companies API\npage: Number (optional) - Page to be returned when using pagination. If ommited system will return first 10.000 records.\nmodifiedAfter: Date (optional) use to filter entities that have modifiedAt date after the specified date (format YYYY-MM-DD)\n\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": [{List of claims}],\n    \"pagination\": {\n        \"totalRecords\": {Total number of claims},\n        \"currentPage\": {Returned page},\n        \"perPage\": {Number of claims per page},\n        \"totalPages\": {Total number of pages in the API}\n    }\n}\n\n</code></pre>\n<p><strong>Single claim object:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n            \"id\": 123456,\n            \"claimCode\": \"\",\n            \"createdAt\": \"2023-12-02 08:02:14\",\n            \"claimedDateExchangeRate\": 0.2311,\n            \"claimedNotifficationSentAt\": \"2023-12-04 08:02:14\",\n            \"claimType\": \"CLAIM_TO_TAX_ADMINISTRATION\",\n            \"createdBy\": {\n                \"id\": 465,\n                \"firstName\": \"Demo\",\n                \"lastName\": \"User\",\n                \"email\": \"test@vat4u.com\"\n            },\n            \"cor\": {\n                \"id\": 3,\n                \"code\": \"CZ\",\n                \"name\": \"Czech Republic\"\n            },\n            \"currency\": {\n                \"code\": \"CZK\",\n                \"name\": \"Czech Kurony\"\n            },\n            \"claimant\": {\n                \"id\": 2,\n                \"legalName\": \"Demo 2\"\n            },\n            \"claimantEmail\": \"test-claims@vat4u.com\",\n            \"period\": \"01/22 - 12/22\",\n            \"startDate\": \"2022-01-01 00:00:00\",\n            \"endDate\": \"2022-12-31 00:00:00\",\n            \"referenceCode\": \"\",\n            \"confirmedReceptionByTaxAdministration\": false,\n            \"netTotal\": 29648.95,\n            \"vatTotal\": 2082.65,\n            \"potentialCashback\": 2082.65,\n            \"expensesPurpose\": \"\",\n            \"representative\": null,\n            \"hasAttachment\": false,\n            \"refundTo\": \"applicant\",\n            \"bankAccount\": {\n                \"id\": 7112,\n                \"internalName\": \"Test\",\n                \"bankAddress\": \"Test\",\n                \"bankName\": \"Test\",\n                \"iban\": \"Test\",\n                \"bic\": \"Test\",\n                \"accountNumber\": \"Test\",\n                \"accountHolderName\": \"Test\",\n                \"accountHolderAddress\": \"Test\",\n                \"createdAt\": \"2023-03-28 01:05:31\",\n                \"createdBy\": 465\n            },\n            \"isVerified\": false,\n            \"verifiedByUser\": null,\n            \"verifiedAt\": null,\n            \"declaration\": false,\n            \"approvedAmount\": 2082.65,\n            \"approvedDate\": \"2023-03-01 00:00:00\",\n            \"approvedDateExchangeRate\": 0.3306,\n            \"approvedEur\": 6299.61,\n            \"potentialClaimFee\": 104.13,\n            \"claimFee\": 314.98,\n            \"submittedAt\": null,\n            \"claimAccountingPeriodYear\": null,\n            \"claimAccountingPeriodMonth\": null,\n            \"totalExpensesCount\": \"55\",\n            \"claimOutputCurrencyCode\": null,\n            \"claimOutputFxRate\": 1,\n            \"refundStatus\": {\n                \"code\": \"APPROVED\",\n                \"title\": \"Approved\"\n            },\n            \"vatFlowStatus\": {\n                \"code\": \"DOMESTIC\",\n                \"title\": \"Domestic\"\n            },\n            \"nextStageStatus\": {\n                \"code\": \"ARCHIVED\",\n                \"title\": \"Archived\"\n            },\n            \"approvalRate\": {\n                \"totalDeductibleAmount\": 2082.65,\n                \"totalApprovedAmount\": 2082.65\n            },\n            \"modifiedAt\": \"2023-02-14 14:54:11\",\n            \"parentClaim\": null,\n            \"childClaims\": []\n        }\n\n</code></pre>\n<p><strong>Single claim object fields description</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Internal VtotalT4U Claim ID</td>\n</tr>\n<tr>\n<td>claimCode</td>\n<td>Internal VAT4U Claim code (UUID)</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>Date when claim was created (YYYY-MM-DD HH:MM:SS)</td>\n</tr>\n<tr>\n<td>claimedDateExchangeRate</td>\n<td>Exchange rate at the day when claim was changed to status Claimed</td>\n</tr>\n<tr>\n<td>claimedNotifficationSentAt</td>\n<td>Date when notification was sent to client that claim was sent to TAX Administration - When claim was first time moved to status Claimed</td>\n</tr>\n<tr>\n<td>claimType</td>\n<td>Claim type can be claim to Vendor or claim to TAX Administration</td>\n</tr>\n<tr>\n<td>claimantEmail</td>\n<td>Claimant email set during the claim creation</td>\n</tr>\n<tr>\n<td>period</td>\n<td>Claim period short notation MM/YY - MM/YY</td>\n</tr>\n<tr>\n<td>startDate</td>\n<td>Claim period start date</td>\n</tr>\n<tr>\n<td>endDate</td>\n<td>Claim period end date</td>\n</tr>\n<tr>\n<td>referenceCode</td>\n<td></td>\n</tr>\n<tr>\n<td>confirmedReceptionByTaxAdministration</td>\n<td></td>\n</tr>\n<tr>\n<td>netTotal</td>\n<td>Total NET amount of the claim in Local currency</td>\n</tr>\n<tr>\n<td>vatTotal</td>\n<td>Total VAT amount of the claim in Local currency</td>\n</tr>\n<tr>\n<td>potentialCashback</td>\n<td>Total Deductible amount of the claim in Local currency</td>\n</tr>\n<tr>\n<td>expensesPurpose</td>\n<td>Expense purpose description provided during the claim creation (specific to 13th directive claims)</td>\n</tr>\n<tr>\n<td>hasAttachment</td>\n<td>Indicating if the claim has attachments</td>\n</tr>\n<tr>\n<td>refundTo</td>\n<td>applicant or representative depending which Bank account is seelcted during the claim creation</td>\n</tr>\n<tr>\n<td>representative</td>\n<td>Representative company object if representative was used for this claim</td>\n</tr>\n<tr>\n<td>createdBy</td>\n<td>User object representing the user who created the claim</td>\n</tr>\n<tr>\n<td>cor</td>\n<td>Country object representing the claim Country of Refund</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>Currency object representing the claim currency</td>\n</tr>\n<tr>\n<td>claimant</td>\n<td>Claimant short notation - reference to the Company</td>\n</tr>\n<tr>\n<td>bankAccount</td>\n<td>Bank account used for the claim</td>\n</tr>\n<tr>\n<td>refundStatus</td>\n<td>Claim refund status</td>\n</tr>\n<tr>\n<td>vatFlowStatus</td>\n<td>Calim VAT Flow status</td>\n</tr>\n<tr>\n<td>nextStageStatus</td>\n<td>Claim Next stage status</td>\n</tr>\n<tr>\n<td>approvalRate</td>\n<td>Claim approval statistics</td>\n</tr>\n<tr>\n<td>modifiedAt</td>\n<td>Date when claim was last updated</td>\n</tr>\n<tr>\n<td>parentClaim</td>\n<td>Parent claim ID if applicable (default null)</td>\n</tr>\n<tr>\n<td>childClaims</td>\n<td>Child claim IDs if applicable (default empty array)</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>User object</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Internal VAT4U User ID</td>\n</tr>\n<tr>\n<td>firstName</td>\n<td>First name</td>\n</tr>\n<tr>\n<td>lastName</td>\n<td>Last name</td>\n</tr>\n<tr>\n<td>email</td>\n<td>User email</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Claim status object (Refund, VAT Flow, Next stage)</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>code</td>\n<td>Code of the claim status</td>\n</tr>\n<tr>\n<td>title</td>\n<td>Title of the claim status</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Country refund of the claim</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Country internal VAT4U Id</td>\n</tr>\n<tr>\n<td>code</td>\n<td>Country name in ISO 3166 Alpha 2</td>\n</tr>\n<tr>\n<td>name</td>\n<td>International country name</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Currency of the claim</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>code</td>\n<td>Currency name in ISO 4217 Alpha 3</td>\n</tr>\n<tr>\n<td>name</td>\n<td>International currency name</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Claimant of the claim (Reference to the Company API)</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Company internal VAT4U Id</td>\n</tr>\n<tr>\n<td>legalName</td>\n<td>Claimant legal name</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Bank account details linked to the claim</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>internalName</td>\n<td>Internal name of the Bank account</td>\n</tr>\n<tr>\n<td>bankAddress</td>\n<td>Address of the bank</td>\n</tr>\n<tr>\n<td>bankName</td>\n<td>Bank name</td>\n</tr>\n<tr>\n<td>iban</td>\n<td>IBAN</td>\n</tr>\n<tr>\n<td>bic</td>\n<td>BIC</td>\n</tr>\n<tr>\n<td>accountNumber</td>\n<td>Account Number</td>\n</tr>\n<tr>\n<td>accountHolderName</td>\n<td>Account holder name</td>\n</tr>\n<tr>\n<td>accountHolderAddress</td>\n<td>Account holder address</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>Date when this bank account was created in VAT4U - YYYY-MM-DD HH:MM:SS format</td>\n</tr>\n<tr>\n<td>createdBy</td>\n<td>ID of the user who created this bank account</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","claims"],"host":["https://api.vat4u.com"],"query":[{"key":"claimantKey","value":"5b94dea4-4eb1-4943-a742-a92c35b6cf10"},{"key":"page","value":"0"},{"key":"modifiedAfter","value":"2023-02-02"}],"variable":[]}},"response":[{"id":"9c3a2b1b-5b00-496f-af7b-cd849e13a091","name":"Successful response","originalRequest":{"method":"GET","header":[],"url":{"raw":"https://api.vat4u.com/v1/claims?claimantKey=5b94dea4-4eb1-4943-a742-a92c35b6cf10&page=0&modifiedAfter=2023-02-02","host":["https://api.vat4u.com"],"path":["v1","claims"],"query":[{"key":"claimantKey","value":"5b94dea4-4eb1-4943-a742-a92c35b6cf10"},{"key":"page","value":"0"},{"key":"modifiedAfter","value":"2023-02-02"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Headers","value":"Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method"},{"key":"Access-Control-Allow-Methods","value":"GET, POST"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Cache-Control","value":"no-store, no-cache, must-revalidate"},{"key":"Content-Encoding","value":"gzip"},{"key":"Content-Length","value":"927"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Date","value":"Tue, 23 Apr 2024 14:14:29 GMT"},{"key":"Expires","value":"Thu, 19 Nov 1981 08:52:00 GMT"},{"key":"Pragma","value":"no-cache"},{"key":"Server","value":"Apache/2.4.41 (Ubuntu)"},{"key":"Set-Cookie","value":"ci_session=a5ed9lsg5kahjf30h4rv6tec79o5tsbf; expires=Tue, 23-Apr-2024 14:44:29 GMT; Max-Age=1800; path=/; domain=.app.vat4u.local; secure; HttpOnly; SameSite=Lax"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/7.4.33"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": [\n        {\n            \"id\": 6155,\n            \"key\": \"9c3cf2cd-c3ab-428d-85a2-fa968f763fad\",\n            \"createdAt\": \"2024-03-05 16:08:41\",\n            \"claimedDateExchangeRate\": 10,\n            \"claimedNotifficationSentAt\": null,\n            \"claimType\": \"CLAIM_TO_TAX_ADMINISTRATION\",\n            \"createdBy\": {\n                \"id\": 465,\n                \"firstName\": \"Demo\",\n                \"lastName\": \"User\",\n                \"email\": \"test@vat4u.com\"\n            },\n            \"cor\": {\n                \"id\": 9,\n                \"code\": \"ES\",\n                \"name\": \"Spain\"\n            },\n            \"currency\": {\n                \"code\": \"EUR\",\n                \"name\": \"Euro\"\n            },\n            \"claimant\": {\n                \"id\": 2,\n                \"legalName\": \"Demo2\",\n                \"key\": \"5b94dea4-4eb1-4943-a742-a92c35b6cf10\"\n            },\n            \"claimantEmail\": \"test-claims@vat4u.com\",\n            \"period\": \"01/23 - 12/23\",\n            \"startDate\": \"2023-01-01 00:00:00\",\n            \"endDate\": \"2023-12-31 00:00:00\",\n            \"referenceCode\": \"\",\n            \"confirmedReceptionByTaxAdministration\": false,\n            \"netTotal\": 123.97,\n            \"vatTotal\": 26.03,\n            \"potentialCashback\": 26.03,\n            \"expensesPurpose\": \"\",\n            \"representative\": null,\n            \"hasAttachment\": false,\n            \"refundTo\": \"applicant\",\n            \"bankAccount\": {\n                \"id\": 7115,\n                \"internalName\": \"Test\",\n                \"bankAddress\": \"test\",\n                \"bankName\": \"test\",\n                \"iban\": \"TESY\",\n                \"bic\": \"TEST\",\n                \"accountNumber\": \"test\",\n                \"accountHolderName\": \"test\",\n                \"accountHolderAddress\": \"test\",\n                \"createdAt\": \"2024-01-25 10:23:59\",\n                \"createdBy\": 465\n            },\n            \"isVerified\": true,\n            \"verifiedByUser\": 465,\n            \"verifiedAt\": \"2024-04-23 12:23:54\",\n            \"declaration\": true,\n            \"approvedAmount\": 26.03,\n            \"approvedDate\": \"2024-03-19 00:36:34\",\n            \"approvedDateExchangeRate\": 10,\n            \"approvedEur\": 2.6,\n            \"potentialClaimFee\": 0,\n            \"claimFee\": 0,\n            \"submittedAt\": null,\n            \"claimAccountingPeriodYear\": null,\n            \"claimAccountingPeriodMonth\": null,\n            \"totalExpensesCount\": \"1\",\n            \"claimOutputCurrencyCode\": \"EUR\",\n            \"claimOutputFxRate\": 1,\n            \"refundStatus\": {\n                \"code\": \"EXCLUDED\",\n                \"title\": \"Excluded\"\n            },\n            \"vatFlowStatus\": {\n                \"code\": \"FOREIGN_8TH\",\n                \"title\": \"Foreign - 8th\"\n            },\n            \"nextStageStatus\": {\n                \"code\": \"ARCHIVED\",\n                \"title\": \"Archived\"\n            },\n            \"approvalRate\": {\n                \"totalDeductibleAmount\": 26.03,\n                \"totalApprovedAmount\": 26.03\n            },\n            \"modifiedAt\": \"2024-04-23 12:28:27\",\n            \"parentClaim\": null,\n            \"childClaims\": []\n        }\n    ],\n    \"pagination\": {\n        \"totalRecords\": 1,\n        \"currentPage\": 0,\n        \"perPage\": 25,\n        \"totalPages\": 1\n    }\n}"}],"_postman_id":"d312acd8-f5f7-474b-8b5e-769d71bb9343"},{"name":"Single claim","id":"f40429aa-cca3-41ac-a927-ff0490d5d3ac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.vat4u.com/v1/claims/:claimKey","description":"<p>Retrieve single claim by KEY.</p>\n<p><strong>Path parameters</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Include claim \"key\" from the list of claims to retrieve a single claim data.\n\n</code></pre><p><strong>Response</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"success\",\n    \"data\": [{Claim object}],\n}\nResponse:\n``` json\n{\n    \"status\": \"success\",\n    \"data\": [{Claim object}]\n    }\n}\n\n</code></pre>\n<p><strong>Single claim object:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n            \"id\": 123456,\n            \"claimCode\": \"\",\n            \"createdAt\": \"2023-12-02 08:02:14\",\n            \"claimedDateExchangeRate\": 0.2311,\n            \"claimedNotifficationSentAt\": \"2023-12-04 08:02:14\",\n            \"claimType\": \"CLAIM_TO_TAX_ADMINISTRATION\",\n            \"createdBy\": {\n                \"id\": 465,\n                \"firstName\": \"Demo\",\n                \"lastName\": \"User\",\n                \"email\": \"test@vat4u.com\"\n            },\n            \"cor\": {\n                \"id\": 3,\n                \"code\": \"CZ\",\n                \"name\": \"Czech Republic\"\n            },\n            \"currency\": {\n                \"code\": \"CZK\",\n                \"name\": \"Czech Kurony\"\n            },\n            \"claimant\": {\n                \"id\": 2,\n                \"legalName\": \"Demo 2\"\n            },\n            \"claimantEmail\": \"test-claims@vat4u.com\",\n            \"period\": \"01/22 - 12/22\",\n            \"startDate\": \"2022-01-01 00:00:00\",\n            \"endDate\": \"2022-12-31 00:00:00\",\n            \"referenceCode\": \"\",\n            \"confirmedReceptionByTaxAdministration\": false,\n            \"netTotal\": 29648.95,\n            \"vatTotal\": 2082.65,\n            \"potentialCashback\": 2082.65,\n            \"expensesPurpose\": \"\",\n            \"representative\": null,\n            \"hasAttachment\": false,\n            \"refundTo\": \"applicant\",\n            \"bankAccount\": {\n                \"id\": 7112,\n                \"internalName\": \"Test\",\n                \"bankAddress\": \"Test\",\n                \"bankName\": \"Test\",\n                \"iban\": \"Test\",\n                \"bic\": \"Test\",\n                \"accountNumber\": \"Test\",\n                \"accountHolderName\": \"Test\",\n                \"accountHolderAddress\": \"Test\",\n                \"createdAt\": \"2023-03-28 01:05:31\",\n                \"createdBy\": 465\n            },\n            \"isVerified\": false,\n            \"verifiedByUser\": null,\n            \"verifiedAt\": null,\n            \"declaration\": false,\n            \"approvedAmount\": 2082.65,\n            \"approvedDate\": \"2023-03-01 00:00:00\",\n            \"approvedDateExchangeRate\": 0.3306,\n            \"approvedEur\": 6299.61,\n            \"potentialClaimFee\": 104.13,\n            \"claimFee\": 314.98,\n            \"submittedAt\": null,\n            \"claimAccountingPeriodYear\": null,\n            \"claimAccountingPeriodMonth\": null,\n            \"totalExpensesCount\": \"55\",\n            \"claimOutputCurrencyCode\": null,\n            \"claimOutputFxRate\": 1,\n            \"refundStatus\": {\n                \"code\": \"APPROVED\",\n                \"title\": \"Approved\"\n            },\n            \"vatFlowStatus\": {\n                \"code\": \"DOMESTIC\",\n                \"title\": \"Domestic\"\n            },\n            \"nextStageStatus\": {\n                \"code\": \"ARCHIVED\",\n                \"title\": \"Archived\"\n            },\n            \"approvalRate\": {\n                \"totalDeductibleAmount\": 2082.65,\n                \"totalApprovedAmount\": 2082.65\n            },\n            \"modifiedAt\": \"2023-02-14 14:54:11\",\n            \"parentClaim\": null,\n            \"childClaims\": []\n        }\n\n</code></pre>\n<p><strong>Single claim object fields description</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Internal VtotalT4U Claim ID</td>\n</tr>\n<tr>\n<td>claimCode</td>\n<td>Internal VAT4U Claim code (UUID)</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>Date when claim was created (YYYY-MM-DD HH:MM:SS)</td>\n</tr>\n<tr>\n<td>claimedDateExchangeRate</td>\n<td>Exchange rate at the day when claim was changed to status Claimed</td>\n</tr>\n<tr>\n<td>claimedNotifficationSentAt</td>\n<td>Date when notification was sent to client that claim was sent to TAX Administration - When claim was first time moved to status Claimed</td>\n</tr>\n<tr>\n<td>claimType</td>\n<td>Claim type can be claim to Vendor or claim to TAX Administration</td>\n</tr>\n<tr>\n<td>claimantEmail</td>\n<td>Claimant email set during the claim creation</td>\n</tr>\n<tr>\n<td>period</td>\n<td>Claim period short notation MM/YY - MM/YY</td>\n</tr>\n<tr>\n<td>startDate</td>\n<td>Claim period start date</td>\n</tr>\n<tr>\n<td>endDate</td>\n<td>Claim period end date</td>\n</tr>\n<tr>\n<td>referenceCode</td>\n<td></td>\n</tr>\n<tr>\n<td>confirmedReceptionByTaxAdministration</td>\n<td></td>\n</tr>\n<tr>\n<td>netTotal</td>\n<td>Total NET amount of the claim in Local currency</td>\n</tr>\n<tr>\n<td>vatTotal</td>\n<td>Total VAT amount of the claim in Local currency</td>\n</tr>\n<tr>\n<td>potentialCashback</td>\n<td>Total Deductible amount of the claim in Local currency</td>\n</tr>\n<tr>\n<td>expensesPurpose</td>\n<td>Expense purpose description provided during the claim creation (specific to 13th directive claims)</td>\n</tr>\n<tr>\n<td>hasAttachment</td>\n<td>Indicating if the claim has attachments</td>\n</tr>\n<tr>\n<td>refundTo</td>\n<td>applicant or representative depending which Bank account is seelcted during the claim creation</td>\n</tr>\n<tr>\n<td>representative</td>\n<td>Representative company object if representative was used for this claim</td>\n</tr>\n<tr>\n<td>createdBy</td>\n<td>User object representing the user who created the claim</td>\n</tr>\n<tr>\n<td>cor</td>\n<td>Country object representing the claim Country of Refund</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>Currency object representing the claim currency</td>\n</tr>\n<tr>\n<td>claimant</td>\n<td>Claimant short notation - reference to the Company</td>\n</tr>\n<tr>\n<td>bankAccount</td>\n<td>Bank account used for the claim</td>\n</tr>\n<tr>\n<td>refundStatus</td>\n<td>Claim refund status</td>\n</tr>\n<tr>\n<td>vatFlowStatus</td>\n<td>Calim VAT Flow status</td>\n</tr>\n<tr>\n<td>nextStageStatus</td>\n<td>Claim Next stage status</td>\n</tr>\n<tr>\n<td>approvalRate</td>\n<td>Claim approval statistics</td>\n</tr>\n<tr>\n<td>modifiedAt</td>\n<td>Date when claim was last updated</td>\n</tr>\n<tr>\n<td>parentClaim</td>\n<td>Parent claim ID if applicable (default null)</td>\n</tr>\n<tr>\n<td>childClaims</td>\n<td>Child claim IDs if applicable (default empty array)</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>User object</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Internal VAT4U User ID</td>\n</tr>\n<tr>\n<td>firstName</td>\n<td>First name</td>\n</tr>\n<tr>\n<td>lastName</td>\n<td>Last name</td>\n</tr>\n<tr>\n<td>email</td>\n<td>User email</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Claim status object (Refund, VAT Flow, Next stage)</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>code</td>\n<td>Code of the claim status</td>\n</tr>\n<tr>\n<td>title</td>\n<td>Title of the claim status</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Country refund of the claim</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Country internal VAT4U Id</td>\n</tr>\n<tr>\n<td>code</td>\n<td>Country name in ISO 3166 Alpha 2</td>\n</tr>\n<tr>\n<td>name</td>\n<td>International country name</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Currency of the claim</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>code</td>\n<td>Currency name in ISO 4217 Alpha 3</td>\n</tr>\n<tr>\n<td>name</td>\n<td>International currency name</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Claimant of the claim (Reference to the Company API)</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>Company internal VAT4U Id</td>\n</tr>\n<tr>\n<td>legalName</td>\n<td>Claimant legal name</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Bank account details linked to the claim</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Field</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>internalName</td>\n<td>Internal name of the Bank account</td>\n</tr>\n<tr>\n<td>bankAddress</td>\n<td>Address of the bank</td>\n</tr>\n<tr>\n<td>bankName</td>\n<td>Bank name</td>\n</tr>\n<tr>\n<td>iban</td>\n<td>IBAN</td>\n</tr>\n<tr>\n<td>bic</td>\n<td>BIC</td>\n</tr>\n<tr>\n<td>accountNumber</td>\n<td>Account Number</td>\n</tr>\n<tr>\n<td>accountHolderName</td>\n<td>Account holder name</td>\n</tr>\n<tr>\n<td>accountHolderAddress</td>\n<td>Account holder address</td>\n</tr>\n<tr>\n<td>createdAt</td>\n<td>Date when this bank account was created in VAT4U - YYYY-MM-DD HH:MM:SS format</td>\n</tr>\n<tr>\n<td>createdBy</td>\n<td>ID of the user who created this bank account</td>\n</tr>\n</tbody>\n</table>\n</div>","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","claims",":claimKey"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"","key":"claimKey"}]}},"response":[{"id":"823af695-856a-4606-95a6-f80f800cb752","name":"Successful response","originalRequest":{"method":"GET","header":[],"url":"https://api.vat4u.com/v1/claims/9c3cf2cd-c3ab-428d-85a2-fa968f763fad"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Access-Control-Allow-Headers","value":"Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method"},{"key":"Access-Control-Allow-Methods","value":"GET, POST"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Cache-Control","value":"no-store, no-cache, must-revalidate"},{"key":"Content-Encoding","value":"gzip"},{"key":"Content-Length","value":"890"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Date","value":"Tue, 23 Apr 2024 14:21:29 GMT"},{"key":"Expires","value":"Thu, 19 Nov 1981 08:52:00 GMT"},{"key":"Pragma","value":"no-cache"},{"key":"Server","value":"Apache/2.4.41 (Ubuntu)"},{"key":"Set-Cookie","value":"ci_session=mfv1ekt8jp2jv0a9r9h7ep3g4vgif38a; expires=Tue, 23-Apr-2024 14:51:29 GMT; Max-Age=1800; path=/; domain=.app.vat4u.local; secure; HttpOnly; SameSite=Lax"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/7.4.33"}],"cookie":[],"responseTime":null,"body":"{\n    \"status\": \"success\",\n    \"data\": {\n        \"id\": 6155,\n        \"key\": \"9c3cf2cd-c3ab-428d-85a2-fa968f763fad\",\n        \"createdAt\": \"2024-03-05 16:08:41\",\n        \"claimedDateExchangeRate\": 10,\n        \"claimedNotifficationSentAt\": null,\n        \"claimType\": \"CLAIM_TO_TAX_ADMINISTRATION\",\n        \"createdBy\": {\n            \"id\": 465,\n            \"firstName\": \"Demo\",\n            \"lastName\": \"User\",\n            \"email\": \"test@vat4u.com\"\n        },\n        \"cor\": {\n            \"id\": 9,\n            \"code\": \"ES\",\n            \"name\": \"Spain\"\n        },\n        \"currency\": {\n            \"code\": \"EUR\",\n            \"name\": \"Euro\"\n        },\n        \"claimant\": {\n            \"id\": 2,\n            \"legalName\": \"Demo2\",\n            \"key\": \"5b94dea4-4eb1-4943-a742-a92c35b6cf10\"\n        },\n        \"claimantEmail\": \"test-claims@vat4u.com\",\n        \"period\": \"01/23 - 12/23\",\n        \"startDate\": \"2023-01-01 00:00:00\",\n        \"endDate\": \"2023-12-31 00:00:00\",\n        \"referenceCode\": \"\",\n        \"confirmedReceptionByTaxAdministration\": false,\n        \"netTotal\": 123.97,\n        \"vatTotal\": 26.03,\n        \"potentialCashback\": 26.03,\n        \"expensesPurpose\": \"\",\n        \"representative\": null,\n        \"hasAttachment\": false,\n        \"refundTo\": \"applicant\",\n        \"bankAccount\": {\n            \"id\": 7115,\n            \"internalName\": \"Test\",\n            \"bankAddress\": \"test\",\n            \"bankName\": \"test\",\n            \"iban\": \"TESY\",\n            \"bic\": \"TEST\",\n            \"accountNumber\": \"test\",\n            \"accountHolderName\": \"test\",\n            \"accountHolderAddress\": \"test\",\n            \"createdAt\": \"2024-01-25 10:23:59\",\n            \"createdBy\": 465\n        },\n        \"isVerified\": true,\n        \"verifiedByUser\": 465,\n        \"verifiedAt\": \"2024-04-23 12:23:54\",\n        \"declaration\": true,\n        \"approvedAmount\": 26.03,\n        \"approvedDate\": \"2024-03-19 00:36:34\",\n        \"approvedDateExchangeRate\": 10,\n        \"approvedEur\": 2.6,\n        \"potentialClaimFee\": 0,\n        \"claimFee\": 0,\n        \"submittedAt\": null,\n        \"claimAccountingPeriodYear\": null,\n        \"claimAccountingPeriodMonth\": null,\n        \"totalExpensesCount\": \"1\",\n        \"claimOutputCurrencyCode\": \"EUR\",\n        \"claimOutputFxRate\": 1,\n        \"refundStatus\": {\n            \"code\": \"EXCLUDED\",\n            \"title\": \"Excluded\"\n        },\n        \"vatFlowStatus\": {\n            \"code\": \"FOREIGN_8TH\",\n            \"title\": \"Foreign - 8th\"\n        },\n        \"nextStageStatus\": {\n            \"code\": \"ARCHIVED\",\n            \"title\": \"Archived\"\n        },\n        \"approvalRate\": {\n            \"totalDeductibleAmount\": 26.03,\n            \"totalApprovedAmount\": 26.03\n        },\n        \"modifiedAt\": \"2024-04-23 12:28:27\",\n        \"parentClaim\": null,\n        \"childClaims\": []\n    }\n}"}],"_postman_id":"f40429aa-cca3-41ac-a927-ff0490d5d3ac"}],"id":"93b31c6c-69c0-413c-9688-17d5fc27d2e0","_postman_id":"93b31c6c-69c0-413c-9688-17d5fc27d2e0","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}}},{"name":"Category","item":[{"name":"List categories","id":"12ae9cb7-bf39-4093-8bfc-cdb7df556004","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.vat4u.com/v1/categories/:countryCode","description":"<h2 id=\"get-vat4u-system-categories-list\">Get VAT4U System Categories List</h2>\n<p>This endpoint retrieves a list of expense categories from VAT4U.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p>Path parameter indicating shortcode for country to retrieve country specific categories. If ommited, API will return complete list of available categories. Note: some categories might not be active in all the countries.</p>\n<p>To check the active categories for specific country, provide a country code in the path.</p>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>The response will include a JSON object containing the following key:</p>\n<ul>\n<li><p><code>categories</code>: An array of categories.</p>\n</li>\n<li><p><code>country</code>: Country details if list of categories is retrieved for specific country.</p>\n</li>\n</ul>\n<h3 id=\"notes\">Notes</h3>\n<ul>\n<li><p>Ensure that you have the necessary permissions to access this endpoint.</p>\n</li>\n<li><p>The response may vary based on the user's access level and the data available in the system.</p>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","categories",":countryCode"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"","key":"countryCode"}]}},"response":[{"id":"22932b65-7a72-4e7a-be7b-f1388ad9a1ab","name":"List categories for specific country","originalRequest":{"method":"GET","header":[],"url":"https://api.vat4u.com/v1/categories/DE"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.27.4"},{"key":"Date","value":"Fri, 17 Oct 2025 15:02:44 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Set-Cookie","value":"ci_session=uo3oigl7gatqvj1vendji7d5tdtc04hg; expires=Fri, 17 Oct 2025 15:32:44 GMT; Max-Age=1800; path=/; domain=app.vat4u.local; secure; HttpOnly; SameSite=Lax"},{"key":"Expires","value":"Thu, 19 Nov 1981 08:52:00 GMT"},{"key":"Cache-Control","value":"no-store, no-cache, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Headers","value":"Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method"},{"key":"Access-Control-Allow-Methods","value":"GET, POST"},{"key":"X-Proxy-Cache","value":"BYPASS"}],"cookie":[],"responseTime":null,"body":"{\n    \"country\": {\n        \"id\": 5,\n        \"name\": \"Germany\",\n        \"short_name\": \"DE\",\n        \"code\": \"DE\",\n        \"eu_member\": true\n    },\n    \"categories\": [\n        {\n            \"id\": 1,\n            \"name\": \"Accommodation\",\n            \"group\": {\n                \"order\": \"1\",\n                \"name\": \"Hotel\"\n            }\n        },\n        {\n            \"id\": 8,\n            \"name\": \"City tax\",\n            \"group\": {\n                \"order\": \"1\",\n                \"name\": \"Hotel\"\n            }\n        }\n    ]\n}"},{"id":"26cb831a-4256-4533-8b55-6517997f3774","name":"List all categories from system","originalRequest":{"method":"GET","header":[],"url":"https://api.vat4u.com/v1/categories"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.27.4"},{"key":"Date","value":"Fri, 17 Oct 2025 15:03:07 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Set-Cookie","value":"ci_session=be4ajj8uh0heknpqql6028v1aoqo27rn; expires=Fri, 17 Oct 2025 15:33:07 GMT; Max-Age=1800; path=/; domain=app.vat4u.local; secure; HttpOnly; SameSite=Lax"},{"key":"Expires","value":"Thu, 19 Nov 1981 08:52:00 GMT"},{"key":"Cache-Control","value":"no-store, no-cache, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Headers","value":"Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method"},{"key":"Access-Control-Allow-Methods","value":"GET, POST"},{"key":"X-Proxy-Cache","value":"BYPASS"}],"cookie":[],"responseTime":null,"body":"{\n    \"country\": null,\n    \"categories\": [\n        {\n            \"id\": 1,\n            \"name\": \"Accommodation\",\n            \"group\": {\n                \"order\": \"1\",\n                \"name\": \"Hotel\"\n            }\n        },\n        {\n            \"id\": 2,\n            \"name\": \"Accommodation for employee or management\",\n            \"group\": {\n                \"order\": \"1\",\n                \"name\": \"Hotel\"\n            }\n        },\n        {\n            \"id\": 3,\n            \"name\": \"Accommodation for client or supplier\",\n            \"group\": {\n                \"order\": \"1\",\n                \"name\": \"Hotel\"\n            }\n        }\n    ]\n}"}],"_postman_id":"12ae9cb7-bf39-4093-8bfc-cdb7df556004"},{"name":"Get mapping","id":"6893c8c4-8b39-417c-9d51-f5e60a7a6691","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.vat4u.com/v1/categories/mapping/:categoryMappingId","description":"<h2 id=\"get-category-mapping\">Get Category Mapping</h2>\n<p>This endpoint retrieves a category mapping stored in the system.</p>\n<h3 id=\"request-parameters\">Request Parameters</h3>\n<p><code>categoryMappingId</code> should be provided in the path.</p>\n<h3 id=\"expected-response\">Expected Response</h3>\n<p>The response will include a JSON object containing the following keys:</p>\n<ul>\n<li><p><code>name</code> - Name of the mapping to be identified in the application UI when importing the data.</p>\n</li>\n<li><p><code>mapping</code>: An array of objects, each containing details relevant to mapping of User category to VAT4U system expense category.</p>\n<ul>\n<li><p><code>user</code>: User category from the 3rd party system</p>\n</li>\n<li><p><code>system</code>: VAT4U system category</p>\n</li>\n<li><p><code>countries</code>: Specific system category for each country (in case country requires special split)</p>\n</li>\n</ul>\n</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","categories","mapping",":categoryMappingId"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"","key":"categoryMappingId"}]}},"response":[{"id":"9516023d-8940-4266-8a51-164cfee36197","name":"Category mapping response","originalRequest":{"method":"GET","header":[],"url":"https://api.vat4u.com/v1/categories/mapping/0552c7c9-9b62-4669-a324-4abf2a6820ca"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"Server","value":"nginx/1.27.4"},{"key":"Date","value":"Fri, 17 Oct 2025 15:08:31 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Set-Cookie","value":"ci_session=iblimhg9u10nmlaud8rqkbiastltt25s; expires=Fri, 17 Oct 2025 15:38:31 GMT; Max-Age=1800; path=/; domain=app.vat4u.local; secure; HttpOnly; SameSite=Lax"},{"key":"Expires","value":"Thu, 19 Nov 1981 08:52:00 GMT"},{"key":"Cache-Control","value":"no-store, no-cache, must-revalidate"},{"key":"Pragma","value":"no-cache"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Headers","value":"Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method"},{"key":"Access-Control-Allow-Methods","value":"GET, POST"},{"key":"X-Proxy-Cache","value":"BYPASS"}],"cookie":[],"responseTime":null,"body":"{\n    \"mapping\": {\n        \"key\": \"0552c7c9-9b62-4669-a324-4abf2a6820ca\",\n        \"type\": \"category\",\n        \"modified_at\": null,\n        \"modified_by\": null,\n        \"name\": \"\",\n        \"mapping\": [\n            {\n                \"user\": \"Accomodation\",\n                \"system\": \"Accommodation\",\n                \"countries\": {\n                    \"DE\": \"Accommodation\"\n                }\n            }\n        ]\n    }\n}"}],"_postman_id":"6893c8c4-8b39-417c-9d51-f5e60a7a6691"}],"id":"8eecd967-3484-4723-aee8-120de04973c3","_postman_id":"8eecd967-3484-4723-aee8-120de04973c3","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}}},{"name":"Webhooks","item":[{"name":"Supported events","id":"05d2ee2a-fc74-4075-b5a7-ba48b240300b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"https://api.vat4u.com/v1/webhooks/events","description":"<h3 id=\"list-existing-webhooks\"><strong>List existing webhooks</strong></h3>\n<p><strong>Purpose:</strong><br />This GET request retrieves a list of webhooks configured for a specific company. Use this endpoint to view all webhook subscriptions associated with the provided company.</p>\n<p><strong>Path Variable:</strong></p>\n<ul>\n<li><code>companyId</code> (string, optional): The unique identifier of the company whose webhooks you want to list. If not supplied, all webhooks from companies where API user has access will be retrieved.</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","webhooks","events"],"host":["https://api.vat4u.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"05d2ee2a-fc74-4075-b5a7-ba48b240300b"},{"name":"Create webhook","id":"d42b31ed-aef8-411c-8406-71fd66136a55","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"companyId\": \"20218c8d-3b51-4a07-846d-db724fa19ab9\",\n    \"aggregateClients\": true,\n    \"url\": \"https://fc212aa72198.ngrok-free.app/message\",\n    \"events\": [\n        \"company.created\",\n        \"company.updated\",\n        \"expense.created\",\n        \"expense.updated\",\n        \"expense.compliance_check_finished\",\n        \"expense.compliance_check_failed\",\n        \"expense.data_verification_finished\",\n        \"expense.data_verification_failed\",\n        \"expense.smart_ai_finished\",\n        \"expense.smart_ai_failed\"\n    ],\n    \"name\": \"Webhook test\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.vat4u.com/v1/webhooks","description":"<h3 id=\"create-new-webhook\"><strong>Create new webhook</strong></h3>\n<p><strong>Purpose:</strong><br />Creates a new webhook for a specified company. Webhooks allow your application to receive real-time notifications about specific events (e.g., when an expense compliance check is finished).</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">  {\n    \"companyId\": \"string\",           // Required. The unique identifier of the company.\n    \"aggregateClients\": \"bool\"       // Optional. If enabled, the webhook will receive events for all clients of the company.\n    \"url\": \"string\",                 // Required. The endpoint to receive webhook events.\n    \"events\": [\"string\"],             // Required. List of event types to subscribe to.\n    \"name\": \"string\"                  // Optional. Name for the webhook.\n  }\n\n</code></pre>\n<ul>\n<li><p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">        {\n          \"companyId\": \"5b94dea4-4eb1-4943-a742-a92c35b6cf10\",\n          \"url\": \"https://webhook.example.com/123\",\n          \"events\": [\"expense.compliance_check_finished\"],\n          \"name\": \"Webhook test\"\n        }\n\n</code></pre>\n</li>\n</ul>\n<p><strong>Expected Response:</strong></p>\n<ul>\n<li><p>Status: <code>200 OK</code></p>\n</li>\n<li><p>Body Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">        {\n          \"id\": 21,\n          \"name\": \"Webhook test\",\n          \"url\": \"https://webhook.example.com/123\",\n          \"events\": [\"expense.compliance_check_finished\"],\n          \"status\": \"active\",\n          \"lastEventAt\": null,\n          \"secret\": \"&lt;webhook_secret&gt;\"\n        }\n\n</code></pre>\n</li>\n</ul>\n<p><strong>Important Notes:</strong></p>\n<ul>\n<li><p>The <code>secret</code> in the response should be securely stored; it is used to verify the authenticity of webhook events. It is returned only uppon creation of the webhook and cannot be retrieved again.</p>\n</li>\n<li><p>The <code>events</code> array determines which event types will trigger the webhook. Currently the following events are available:</p>\n</li>\n</ul>\n<p>company.created<br />company.updated<br />expense.created<br />expense.updated<br />expense.compliance_check_finished<br />expense.compliance_check_failed<br />expense.data_verification_finished<br />expense.data_verification_failed<br />expense.smart_ai_finished<br />expense.smart_ai_failed</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","webhooks"],"host":["https://api.vat4u.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"d42b31ed-aef8-411c-8406-71fd66136a55"},{"name":"List webhooks","id":"0f3ab842-7bce-4d05-ad20-5f1790426fcc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"https://api.vat4u.com/v1/webhooks/:companyKey","description":"<h3 id=\"list-existing-webhooks\"><strong>List existing webhooks</strong></h3>\n<p><strong>Purpose:</strong><br />This GET request retrieves a list of webhooks configured for a specific company. Use this endpoint to view all webhook subscriptions associated with the provided company.</p>\n<p><strong>Path Variable:</strong></p>\n<ul>\n<li><code>companyId</code> (string, optional): The unique identifier of the company whose webhooks you want to list. If not supplied, all webhooks from companies where API user has access will be retrieved.</li>\n</ul>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","webhooks",":companyKey"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"","key":"companyKey"}]}},"response":[],"_postman_id":"0f3ab842-7bce-4d05-ad20-5f1790426fcc"},{"name":"Delete webhook","id":"89c59f85-fb8a-445e-8cae-ee4373030736","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":""},"url":"https://api.vat4u.com/v1/webhooks/:id","description":"<h3 id=\"delete-webhook-by-id\"><strong>Delete webhook by ID</strong></h3>\n<p>This request deletes a specific webhook from the system using its unique identifier.</p>\n<h3 id=\"purpose\">Purpose</h3>\n<p>Use this endpoint to permanently remove a webhook that is no longer needed. Deleting a webhook will stop all future event notifications from being sent to the webhook's configured URL.</p>\n<h3 id=\"path-variables\">Path Variables</h3>\n<ul>\n<li><strong>id</strong> (string, required): The unique ID of the webhook you wish to delete.</li>\n</ul>\n<h3 id=\"important-notes\">Important notes</h3>\n<p>This action is irreversible. Once deleted, the webhook cannot be recovered.</p>\n<p>Events might be delivered shortly after the webhook is removed until the scheduled events are completely fan out.</p>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","webhooks",":id"],"host":["https://api.vat4u.com"],"query":[],"variable":[{"type":"any","value":"11","key":"id"}]}},"response":[],"_postman_id":"89c59f85-fb8a-445e-8cae-ee4373030736"}],"id":"1c1d3e05-3f6a-4da4-b2a7-d1748281b0c3","_postman_id":"1c1d3e05-3f6a-4da4-b2a7-d1748281b0c3","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}}},{"name":"Country","item":[{"name":"List countries","id":"70975024-8f1b-4d90-bb92-1a9a19ebf2de","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.vat4u.com/v1/countries","description":"<h2 id=\"get-countries\">Get Countries</h2>\n<p>Retrieves a list of countries supported by the API, including metadata such as country codes, EU membership status, and whether the country is currently in scope or out of scope of VAT4U.</p>\n<h3 id=\"response-format\">Response Format</h3>\n<p>A successful response returns HTTP 200 and a JSON array of country objects. Each object contains:</p>\n<ul>\n<li><p><code>id</code> (integer): Unique identifier for the country.</p>\n</li>\n<li><p><code>name</code> (string): Full country name.</p>\n</li>\n<li><p><code>short_name</code> (string): Short country name or abbreviation.</p>\n</li>\n<li><p><code>code</code> (string): Country code (ISO).</p>\n</li>\n<li><p><code>eu_member</code> (boolean): Indicates if the country is a member of the European Union.</p>\n</li>\n<li><p><code>in_scope</code> (boolean): Indicates if the country is currently in scope of VAT4U.</p>\n</li>\n</ul>\n<h4 id=\"example-response\">Example Response</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"id\": 1,\n    \"name\": \"Belgium\",\n    \"short_name\": \"BE\",\n    \"code\": \"BE\",\n    \"eu_member\": true,\n    \"in_scope\": false\n  },\n  ...\n]\n\n</code></pre>\n","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}},"urlObject":{"path":["v1","countries"],"host":["https://api.vat4u.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"70975024-8f1b-4d90-bb92-1a9a19ebf2de"}],"id":"81a9ea6a-48ea-4329-a4d3-bee9f6f06213","_postman_id":"81a9ea6a-48ea-4329-a4d3-bee9f6f06213","description":"","auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]},"isInherited":true,"source":{"_postman_id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","id":"4c1c61d8-d443-4144-8465-1a7d77deeb6d","name":"VAT4U API","type":"collection"}}}],"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"{{accessToken}}"}]}},"event":[{"listen":"prerequest","script":{"id":"d04ce103-63fc-4645-b3fd-7c243b6c0ada","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"071e2a24-4d20-4e07-a1d4-ddac69b9c8ed","type":"text/javascript","exec":[""]}}],"variable":[{"key":"baseUrl","value":"https://api.vat4u.com"},{"key":"version","value":"v1"},{"key":"authToken","value":"TOKEN_HERE"}]}