{"info":{"_postman_id":"833ab547-d8ea-4a71-815f-bc3eb99182c8","name":"euShipments API documentation","description":"<html><head></head><body><img src=\"https://content.pstmn.io/45e56e60-317d-47c5-ba8d-671ebf773110/ZXVzaGlwbWVudHMuY29tLnBuZw==\" alt=\"WEB%20SERVICES\" width=\"680\" height=\"81\">\n\n<p>Welcome to the euShipments public API documentation.</p>\n<p>The requests to the API are HTTP GET or HTTP POST. For POST requests the body contains a JSON string; the response is always in JSON format.</p>\n<p><strong>API Base URLs</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>Base URL</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Test</td>\n<td><a href=\"https://test-api.inout.bg/api/v1/\">https://test-api.inout.bg/api/v1/</a></td>\n</tr>\n<tr>\n<td>Production</td>\n<td><a href=\"https://api1.inout.bg/api/v1/\">https://api1.inout.bg/api/v1/</a></td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Authorization</strong></p>\n<p>Every request must include your API token in the Authorization header, with the keyword \"Bearer\" before the token:</p>\n<p><code>Authorization: Bearer &lt;API_TOKEN&gt;</code></p>\n<p>The API token is provided on request by euShipments.</p>\n<p><strong>How to use any web service</strong></p>\n<p>Web Service URL: BASE_URL + API endpoint</p>\n<p>Example for the test environment: <a href=\"https://test-api.inout.bg/api/v1/get-countries\">https://test-api.inout.bg/api/v1/get-countries</a></p>\n<p>Example for the production environment: <a href=\"https://api1.inout.bg/api/v1/get-countries\">https://api1.inout.bg/api/v1/get-countries</a></p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"26992907","collectionId":"833ab547-d8ea-4a71-815f-bc3eb99182c8","publishedId":"2s93Y2S2Q8","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2023-04-19T13:31:14.000Z"},"item":[{"name":"AWB Creation","item":[{"name":"Shipment_Creation_Web_Service_v1.5","id":"514bf6b0-5805-4538-955b-865d3bbb9320","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"testMode\": 0, //On the test environment, all shipments save on test env.\n    \"senderId\": 333, //ID of company, obtain an ID from Companies Web Service or your key account manager.\n    \"courierId\": 20, //ID of courier, obtain an ID from Couriers Web Service. Optional, but recommended.\n    \"waybillAvailableDate\": \"2023-06-29\", //Dispatch date. Must be between today and 9 days ahead.\n    \"serviceName\": \"crossborder\", //By default use \"crossborder\". Service \"eushipmentsairexpress\" is only for delivery partner \"DLH\".\n    \"recipient\": {\n        \"name\": \"Test User\", //Name of recipient or company. Typically, both customer names (first name and last name) or company.\n        \"countryIsoCode\": \"HU\", //Two-letter uppercase country ISO code. Required without cityId.\n        \"cityId\": 20144281, //The ID of a city where the shipment needs to delivery. Obtain an ID from Cities_Web_Service_v1.0. Using cityId, cityName and zipCode can be null.\n        \"region\": \"null\", //The Municipality/county where the city is located.\n        \"cityName\": \"Balatonszárszó\", //City name. If you have your own nomenclature with cities, you can fill in the fields cityName, zipCode and region.\n        \"zipCode\": \"8624\", //Zip code.\n        \"streetName\": \"test street\", //Name of the street - e.g. Main street or Main street 10. Optional when officeId or officeCode is sent.\n        \"buildingNumber\": 0, //Number of the street/building - e.g. 10\n        \"officeId\": 1297, //If the courier supports PUDO delivery, you can send the ID of the PUDO. Obtain the PUDO IDs from \"Courier_Offices_Web_Service_v1.2\"\n        \"addressText\": \"additional text, address test\", //Additional address information - e.g. bl.25 et. 3 *NOT ALL COURIERS SUPPORT IT*\n        \"contactPerson\": \"Test User\", //Contact person. Usually is the same as the name of recipient.\n        \"phoneNumber\": \"00889000000\", //Recipient's phone number - mandatory for all couriers.\n        \"email\": \"test@example.com\" //Recipient's email - highly recommended. If empty, a placeholder address is substituted.\n    },\n    \"awb\": {\n        \"shipmentType\": \"pack\", //pack or pallet\n        \"parcels\": 1, //Number of parcels in the shipment. *NOT ALL COURIERS SUPPORT MULTIPARCEL SERVICE*\n        \"envelopes\": 0, //Always send \"0\".\n        \"totalWeight\": 1.000, //Total weight of the shipment in kg. The value has to be equal to the sum of all packages.\n        \"declaredValue\": 0, //Insurance amount of the shipment. *NOT ALL COURIERS SUPPORT THE SERVICE*\n        \"bankRepayment\": 0.0, //COD amount of the shipment in local currency. You can set to 0 if the shipment doesn't have a COD amount.\n        \"otherRepayment\": \"additional text for repayment\", //The service is no longer supported\n        \"observations\": \"notes\", //Additional information about the shipment/products. (notes)\n        \"openPackage\": false, //Check up the shipment before pay.\n        \"shipmentPayer\": \"sender\", //Always \"sender\"\n        \"saturdayDelivery\": false, //The service is no longer supported\n        \"referenceNumber\": \"000000\", //Client reference number. Important: The information in the field must be unique to avoid duplicate shipments!\n        \"products\": \"test product\", //The content of the shipment. e.g. product1 product2\n        \"fragile\": 1, //Marker whether the content is fragile. (fragile = 1 if the content is fragile) - Used only for BG\n        \"productsInfo\": \"1111;2222;3333;4444\", //Additional product information.\n        \"piecesInPack\": 4, //Products amount in one shipment. e.g If the shipment contain 5 products the field will be filled with 5.\n        \"packages\": {\n            \"1\": {\n                \"dimensions\": {\n                    \"width\": 20,\n                    \"height\": 20,\n                    \"length\": 20\n                },\n                \"weight\": 2.300\n            }\n        }\n    },\n    \"returnLabel\": {\n        \"nDaysValid\": 0 //By default is 0 (infinity). Used only for Greece\n    }\n}\n","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/createAWB","description":"<p>We can now offer you the ability to ask for a shipment creation directly from your company's software or website by taking advantage of \"Shipment Creation\".</p>\n<p>Requirements</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>createAWB</td>\n<td>Creates a new shipment according to the provided API token and the shipment's data.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Method: POST\nAuthorization: Bearer API_TOKEN</p>\n<p>Example URLs</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>URL</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Test</td>\n<td><a href=\"https://test-api.inout.bg/api/v1/createAWB\">https://test-api.inout.bg/api/v1/createAWB</a></td>\n</tr>\n<tr>\n<td>Production</td>\n<td><a href=\"https://api1.inout.bg/api/v1/createAWB\">https://api1.inout.bg/api/v1/createAWB</a></td>\n</tr>\n</tbody>\n</table>\n</div><p>API Call Input Fields\nBody (JSON)</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>boolean</td>\n<td>yes</td>\n<td></td>\n<td>If you want to use the API only for tests, set this field to true. Applies only to the production environment. On the test environment, all shipments save on test env.</td>\n</tr>\n<tr>\n<td>senderId (company id)</td>\n<td>integer</td>\n<td>yes</td>\n<td>Must be an existing company ID.</td>\n<td>ID of company, obtain an ID from Companies Web Service. Please for more information, see Companies Web Service.</td>\n</tr>\n<tr>\n<td>courierId</td>\n<td>integer</td>\n<td>no (recommended)</td>\n<td>Must be an existing courier ID.</td>\n<td>ID of courier, obtain an ID from Couriers Web Service. If omitted, the system automatically selects the courier configured for the destination country on your account and returns an error if none is configured. We recommend always sending it explicitly.</td>\n</tr>\n<tr>\n<td>serviceName</td>\n<td>string</td>\n<td>no</td>\n<td>Must be a service supported by the selected courier.</td>\n<td>Service name, e.g. crossborder (default) or eushipmentsairexpress. If omitted or not supported by the selected courier, the courier's first available service is used, and otherwise the system default (crossborder).</td>\n</tr>\n<tr>\n<td>waybillAvailableDate</td>\n<td>date</td>\n<td>yes</td>\n<td>Must be between today and 9 days ahead (format YYYY-MM-DD).</td>\n<td>The date on which the shipment is to be dispatched.</td>\n</tr>\n<tr>\n<td>responseData.id</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>When set to true, the response also contains the internal record id of the created shipment (field id).</td>\n</tr>\n<tr>\n<td>courierReturnAWB</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Request a courier return AWB together with the shipment, where the courier supports it (e.g. DHL, Zasilkovna, PPL).</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>recipient</strong></p>\n<p>Addressing: send EITHER recipient.cityId OR recipient.countryIsoCode + recipient.cityName + (recipient.zipCode OR recipient.region).</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>restrictions</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>yes</td>\n<td>Max 100 characters.</td>\n<td>Name of recipient or company. Typically, both customer names (first name and last name) or a company name are filled in.</td>\n</tr>\n<tr>\n<td>cityId</td>\n<td>integer</td>\n<td>conditional</td>\n<td>Required when countryIsoCode and cityName are not sent. Must be an existing city ID.</td>\n<td>The ID of the city where the shipment needs to be delivered. Obtain an ID from the Cities resource. Please for more information, see Cities web service.</td>\n</tr>\n<tr>\n<td>countryIsoCode</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required without cityId. Two-letter uppercase ISO code, e.g. BG, RO, HU.</td>\n<td>Two-letter country ISO code of the delivery country.</td>\n</tr>\n<tr>\n<td>cityName</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required without cityId. Max 100 characters.</td>\n<td>City name. If you have your own nomenclature with cities, you can fill in the fields cityName, zipCode and region instead of cityId.</td>\n</tr>\n<tr>\n<td>zipCode</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required without cityId and region. Max 15 characters.</td>\n<td>Zip code.</td>\n</tr>\n<tr>\n<td>region</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required without cityId and zipCode. Max 100 characters. Recommended for Romania.</td>\n<td>Region (county/municipality).</td>\n</tr>\n<tr>\n<td>officeId</td>\n<td>integer</td>\n<td>no</td>\n<td>Must be an existing office ID.</td>\n<td>Delivery to a courier office / PUDO / locker: the ID of the office, obtained from Courier_Offices_Web_Service_v1.2. When officeId or officeCode is sent, streetName becomes optional.</td>\n</tr>\n<tr>\n<td>officeCode</td>\n<td>string</td>\n<td>no</td>\n<td>Must be an existing courier office code.</td>\n<td>The courier's own office code (field COURIER_OFFICE_CODE in Courier_Offices_Web_Service_v1.2). Alternative to officeId. When either is sent, streetName becomes optional.</td>\n</tr>\n<tr>\n<td>streetName</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required unless officeId or officeCode is sent. Max 200 characters.</td>\n<td>Name of the street - e.g. Main street or Main street 10. Legacy option: office delivery can also be requested by adding the keyword \"to office: \" followed by the office name/address (e.g. \" to office: Русе Николаевска\") - this is still accepted, but we recommend using officeId or officeCode instead.</td>\n</tr>\n<tr>\n<td>buildingNumber</td>\n<td>string or number</td>\n<td>no</td>\n<td>Values longer than 8 characters are split: the first 8 characters stay in buildingNumber and the remainder is appended to addressText.</td>\n<td>Number of the street/building - e.g. 10.</td>\n</tr>\n<tr>\n<td>addressText</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Additional address information - e.g. bl. 25, et. 3. Not all couriers support it.</td>\n</tr>\n<tr>\n<td>contactPerson</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Contact person. Usually the same as the name of the recipient.</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>string</td>\n<td>yes</td>\n<td>Max 100 characters.</td>\n<td>Phone number of the recipient.</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>no</td>\n<td>Not validated.</td>\n<td>Email of the recipient - highly recommended. If left empty, the system substitutes an internal placeholder address.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>awb</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>shipmentType</td>\n<td>string</td>\n<td>no</td>\n<td>Enum: pack, pallet</td>\n<td>Type of the shipment. Default is pack. For pallet shipments see Shipment_Creation_Web_Service_v1.5 Pallet.</td>\n</tr>\n<tr>\n<td>parcels</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min 0.</td>\n<td>Number of parcels in the shipment. Not all couriers support multi-parcel service. For pallet shipments send 0.</td>\n</tr>\n<tr>\n<td>envelopes</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min 0.</td>\n<td>Number of envelopes in the shipment. Usually 0.</td>\n</tr>\n<tr>\n<td>pallets</td>\n<td>integer</td>\n<td>no</td>\n<td></td>\n<td>The number of pallets (used with shipmentType = pallet).</td>\n</tr>\n<tr>\n<td>totalWeight</td>\n<td>numeric</td>\n<td>yes</td>\n<td>Min 0.01.</td>\n<td>Total weight of the shipment in kg. The value has to be equal to the sum of all packages.</td>\n</tr>\n<tr>\n<td>declaredValue</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.</td>\n<td>Insurance amount of the shipment. The service returns an error when the value is above the permitted maximum for the country. Not all couriers support the service.</td>\n</tr>\n<tr>\n<td>bankRepayment</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.</td>\n<td>COD amount of the shipment in local currency. You can set it to 0 or omit it if the shipment doesn't have a COD amount.</td>\n</tr>\n<tr>\n<td>otherRepayment</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Additional information to COD.</td>\n</tr>\n<tr>\n<td>observations</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Additional information about the shipment/products (notes).</td>\n</tr>\n<tr>\n<td>openPackage</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Check up the shipment before pay. Not supported by all couriers.</td>\n</tr>\n<tr>\n<td>saturdayDelivery</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Saturday delivery. Not available for some countries.</td>\n</tr>\n<tr>\n<td>referenceNumber</td>\n<td>string</td>\n<td>yes</td>\n<td>Max 100 characters. <strong>Must be unique to avoid duplicate shipments!</strong></td>\n<td>Client reference number. Usually the unique number of the order from your site or an invoice number. Helps for tracking and reporting.</td>\n</tr>\n<tr>\n<td>products</td>\n<td>string</td>\n<td>no</td>\n<td>Max 1000 characters.</td>\n<td>The content of the shipment as free text, e.g. product1 product2.</td>\n</tr>\n<tr>\n<td>fragile</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Marker whether the content is fragile (fragile = 1 if the content is fragile). Used only for BG.</td>\n</tr>\n<tr>\n<td>productsInfo</td>\n<td>string</td>\n<td>no</td>\n<td>Max 2000 characters.</td>\n<td>Additional product information.</td>\n</tr>\n<tr>\n<td>piecesInPack</td>\n<td>integer</td>\n<td>no</td>\n<td></td>\n<td>Products amount in one shipment, e.g. if the shipment contains 5 products the field is filled with 5.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>awb.document</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>restrictions</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>no</td>\n<td>Enum: invoice</td>\n<td>Type of the attached document.</td>\n</tr>\n<tr>\n<td>content</td>\n<td>base64 string</td>\n<td>no</td>\n<td></td>\n<td>PDF content, base64 encoded.</td>\n</tr>\n<tr>\n<td>format</td>\n<td>string</td>\n<td>no</td>\n<td>Enum: pdf</td>\n<td>Format of the attached document.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>awb.packages</strong></p>\n<p>Optional. If awb.packages (and awb.pallets) are omitted, the system creates one package per parcel with default dimensions 10 x 10 x 20 cm, and totalWeight is spread evenly across the parcels.</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>dimensions.width</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.1.</td>\n<td>Width of the specific parcel in cm.</td>\n</tr>\n<tr>\n<td>dimensions.height</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.1.</td>\n<td>Height of the specific parcel in cm.</td>\n</tr>\n<tr>\n<td>dimensions.length</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.1.</td>\n<td>Length of the specific parcel in cm.</td>\n</tr>\n<tr>\n<td>weight</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.001.</td>\n<td>Weight of the specific parcel in kg.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>products</strong> (top-level array)</p>\n<p>Optional. Declares the shipment content as structured items.</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>refNumber</td>\n<td>string</td>\n<td>yes</td>\n<td></td>\n<td>Reference number of the product.</td>\n</tr>\n<tr>\n<td>qty</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min 1.</td>\n<td>Quantity of the product.</td>\n</tr>\n<tr>\n<td>price</td>\n<td>numeric</td>\n<td>no</td>\n<td></td>\n<td>Unit price of the product (with VAT).</td>\n</tr>\n<tr>\n<td>priceWithoutVat</td>\n<td>numeric</td>\n<td>no</td>\n<td></td>\n<td>Unit price of the product without VAT.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Note:</strong> for senders shipping with Econt or Speedy whose account is configured with a cash receipt, the sum of price x qty over all products must be equal to awb.bankRepayment (when the COD amount is greater than 0), otherwise the request is rejected with a validation error.</p>\n<p><strong>sender</strong></p>\n<p>Optional. Overrides the sender contact data printed on the label / sent to the courier.</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>restrictions</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>no</td>\n<td>Max 255 characters.</td>\n<td>Sender name.</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>string</td>\n<td>no</td>\n<td>Max 20 characters.</td>\n<td>Sender phone number.</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>no</td>\n<td>Valid email.</td>\n<td>Sender email.</td>\n</tr>\n<tr>\n<td>econtCODAggrement</td>\n<td>string</td>\n<td>no</td>\n<td>Max 20 characters.</td>\n<td>Econt COD agreement number.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>invoice</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>number</td>\n<td>string</td>\n<td>no</td>\n<td>Max 30 characters.</td>\n<td>Invoice number.</td>\n</tr>\n<tr>\n<td>issueDate</td>\n<td>date</td>\n<td>no</td>\n<td></td>\n<td>Invoice issue date.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>courierRequest</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>date</td>\n<td>date string</td>\n<td>no</td>\n<td>Must be today or later.</td>\n<td>The date on which the courier must visit the address.</td>\n</tr>\n<tr>\n<td>timeFrom</td>\n<td>time string</td>\n<td>no</td>\n<td>Format HH:MM.</td>\n<td>Starting time of the visit.</td>\n</tr>\n<tr>\n<td>timeTo</td>\n<td>time string</td>\n<td>no</td>\n<td>Format HH:MM.</td>\n<td>End time of the visit.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>customsData</strong> (legacy, non-EU destinations)</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>dutyPaymentInfo</td>\n<td>string</td>\n<td>no</td>\n<td>Enum: DDU, DDP</td>\n<td>Mandatory for countries outside the European Union. DDU (Delivery duty unpaid), DDP (Delivery duty paid).</td>\n</tr>\n<tr>\n<td>customsValue</td>\n<td>numeric</td>\n<td>no</td>\n<td></td>\n<td>Mandatory for countries outside the European Union.</td>\n</tr>\n</tbody>\n</table>\n</div><p>For shipments to non-EU destinations a full structured customs declaration (customs_declaration block with products and exportData) can also be sent - see Shipment_Creation_Web_Service_v1.5-NON-EU for the complete field list.</p>\n<p><strong>returnLabel</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>nDaysValid</td>\n<td>integer</td>\n<td>no</td>\n<td>Min 0. Default 0 (no expiry).</td>\n<td>Number of days the return label is valid. For now used only for Greece.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>API Response (Output Fields)</strong></p>\n<p>On success the service returns HTTP 200 with:</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>awb</td>\n<td>AWB number.</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Internal record id of the shipment. Returned only when responseData.id is sent as true.</td>\n</tr>\n<tr>\n<td>barcode</td>\n<td>Barcode of the shipment printed on the label.</td>\n</tr>\n<tr>\n<td>returnLabelNumber</td>\n<td>Return label number, populated only for couriers that issue a return label as part of the create-shipment call (e.g. Geniki RR number, Zasilkovna return label). Empty for couriers that don't support it.</td>\n</tr>\n<tr>\n<td>packagesBarcodes</td>\n<td>Barcodes of the ADDITIONAL packages only (the main label barcode is in barcode). For single-parcel shipments this is an empty array.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example (3 parcels):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"awb\": 7000008793166,\n    \"barcode\": \"7000008793166001F4348\",\n    \"returnLabelNumber\": \"\",\n    \"packagesBarcodes\": [\n        \"7000008793166002F4348\",\n        \"7000008793166003F4348\"\n    ]\n}\n\n</code></pre>\n<p><strong>Example (single parcel):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"awb\": 7000008793166,\n    \"barcode\": \"7000008793166001F4348\",\n    \"returnLabelNumber\": \"\",\n    \"packagesBarcodes\": []\n}\n\n</code></pre>\n<p>On error the response body has the shape:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"error text\"\n}\n\n</code></pre>\n<p>HTTP Errors:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not found data.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Unprocessable Entity. Wrong input data.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","createAWB"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"514bf6b0-5805-4538-955b-865d3bbb9320"},{"name":"Shipment_Creation_Web_Service_v1.5 Pallet","id":"f1564d93-2826-4fee-841b-0402551be0d6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"serviceName\": \"crossborder\",\r\n    \"waybillAvailableDate\": \"2022-08-30\",\r\n    \"senderId\": \"333\",\r\n    \"courierId\": \"15\",\r\n    \"testMode\": \"0\",\r\n    \"awb\": {\r\n        \"shipmentType\": \"pallet\",\r\n        \"referenceNumber\": \"1234567\",\r\n        \"totalWeight\": \"100\",\r\n        \"envelopes\": \"0\",\r\n        \"parcels\": \"0\",\r\n        \"pallets\": \"1\",\r\n        \"declaredValue\": 5,\r\n        \"observations\": null,\r\n        \"products\": \"test test\",\r\n        \"packages\": {\r\n            \"1\": {\r\n                \"dimensions\": {\r\n                    \"width\": \"80\",\r\n                    \"height\": \"150\",\r\n                    \"length\": \"120\"\r\n                },\r\n                \"weight\": \"100\"\r\n            }\r\n        },\r\n        \"bankRepayment\": null\r\n    },\r\n    \"recipient\": {\r\n        \"name\": \"API - TESTS\",\r\n        \"cityId\": null,\r\n        \"countryIsoCode\": \"BG\",\r\n        \"cityName\": \"София\",\r\n        \"zipCode\": \"1000\",\r\n        \"region\": null,\r\n        \"streetName\": \"ул. Иван Вазов 12\",\r\n        \"buildingNumber\": null,\r\n        \"addressText\": null,\r\n        \"phoneNumber\": \"0887000000\",\r\n        \"contactPerson\": \"API - TESTS\",\r\n        \"email\": \"example@example.com\"\r\n    },\r\n    \"courierRequest\": {\r\n        \"date\": \"2022-08-30\",\r\n        \"timeFrom\": \"00:00\",\r\n        \"timeTo\": \"00:00\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/createAWB","description":"<p>We can now offer you the ability to ask for a shipment creation directly from your company's software or website by taking advantage of \"Shipment Creation\". This page describes the creation of PALLET shipments - the endpoint and validation are the same as Shipment_Creation_Web_Service_v1.5, with the pallet-specific fields highlighted below.</p>\n<p>Requirements</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>createAWB</td>\n<td>Creates a new shipment according to the provided API token and the shipment's data.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Method: POST\nAuthorization: Bearer API_TOKEN</p>\n<p>Example URLs</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>URL</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Test</td>\n<td><a href=\"https://test-api.inout.bg/api/v1/createAWB\">https://test-api.inout.bg/api/v1/createAWB</a></td>\n</tr>\n<tr>\n<td>Production</td>\n<td><a href=\"https://api1.inout.bg/api/v1/createAWB\">https://api1.inout.bg/api/v1/createAWB</a></td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Pallet specifics</strong></p>\n<ul>\n<li>Send awb.shipmentType = \"pallet\".</li>\n<li>Send the number of pallets in awb.pallets and set awb.parcels to 0.</li>\n<li>Describe each pallet in awb.packages with its real dimensions (cm) and weight (kg).</li>\n</ul>\n<p>API Call Input Fields\nBody (JSON)</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>boolean</td>\n<td>yes</td>\n<td></td>\n<td>If you want to use the API only for tests, set this field to true. Applies only to the production environment. On the test environment, all shipments save on test env.</td>\n</tr>\n<tr>\n<td>senderId (company id)</td>\n<td>integer</td>\n<td>yes</td>\n<td>Must be an existing company ID.</td>\n<td>ID of company, obtain an ID from Companies Web Service. Please for more information, see Companies Web Service.</td>\n</tr>\n<tr>\n<td>courierId</td>\n<td>integer</td>\n<td>no (recommended)</td>\n<td>Must be an existing courier ID.</td>\n<td>ID of courier, obtain an ID from Couriers Web Service. If omitted, the system automatically selects the courier configured for the destination country on your account and returns an error if none is configured. We recommend always sending it explicitly.</td>\n</tr>\n<tr>\n<td>serviceName</td>\n<td>string</td>\n<td>no</td>\n<td>Must be a service supported by the selected courier.</td>\n<td>Service name, e.g. crossborder (default) or eushipmentsairexpress. If omitted or not supported by the selected courier, the courier's first available service is used, and otherwise the system default (crossborder).</td>\n</tr>\n<tr>\n<td>waybillAvailableDate</td>\n<td>date</td>\n<td>yes</td>\n<td>Must be between today and 9 days ahead (format YYYY-MM-DD).</td>\n<td>The date on which the shipment is to be dispatched.</td>\n</tr>\n<tr>\n<td>responseData.id</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>When set to true, the response also contains the internal record id of the created shipment (field id).</td>\n</tr>\n<tr>\n<td>courierReturnAWB</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Request a courier return AWB together with the shipment, where the courier supports it (e.g. DHL, Zasilkovna, PPL).</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>recipient</strong></p>\n<p>Addressing: send EITHER recipient.cityId OR recipient.countryIsoCode + recipient.cityName + (recipient.zipCode OR recipient.region).</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>restrictions</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>yes</td>\n<td>Max 100 characters.</td>\n<td>Name of recipient or company. Typically, both customer names (first name and last name) or a company name are filled in.</td>\n</tr>\n<tr>\n<td>cityId</td>\n<td>integer</td>\n<td>conditional</td>\n<td>Required when countryIsoCode and cityName are not sent. Must be an existing city ID.</td>\n<td>The ID of the city where the shipment needs to be delivered. Obtain an ID from the Cities resource. Please for more information, see Cities web service.</td>\n</tr>\n<tr>\n<td>countryIsoCode</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required without cityId. Two-letter uppercase ISO code, e.g. BG, RO, HU.</td>\n<td>Two-letter country ISO code of the delivery country.</td>\n</tr>\n<tr>\n<td>cityName</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required without cityId. Max 100 characters.</td>\n<td>City name. If you have your own nomenclature with cities, you can fill in the fields cityName, zipCode and region instead of cityId.</td>\n</tr>\n<tr>\n<td>zipCode</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required without cityId and region. Max 15 characters.</td>\n<td>Zip code.</td>\n</tr>\n<tr>\n<td>region</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required without cityId and zipCode. Max 100 characters. Recommended for Romania.</td>\n<td>Region (county/municipality).</td>\n</tr>\n<tr>\n<td>officeId</td>\n<td>integer</td>\n<td>no</td>\n<td>Must be an existing office ID.</td>\n<td>Delivery to a courier office / PUDO / locker: the ID of the office, obtained from Courier_Offices_Web_Service_v1.2. When officeId or officeCode is sent, streetName becomes optional.</td>\n</tr>\n<tr>\n<td>officeCode</td>\n<td>string</td>\n<td>no</td>\n<td>Must be an existing courier office code.</td>\n<td>The courier's own office code (field COURIER_OFFICE_CODE in Courier_Offices_Web_Service_v1.2). Alternative to officeId. When either is sent, streetName becomes optional.</td>\n</tr>\n<tr>\n<td>streetName</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required unless officeId or officeCode is sent. Max 200 characters.</td>\n<td>Name of the street - e.g. Main street or Main street 10. Legacy option: office delivery can also be requested by adding the keyword \"to office: \" followed by the office name/address - this is still accepted, but we recommend using officeId or officeCode instead.</td>\n</tr>\n<tr>\n<td>buildingNumber</td>\n<td>string or number</td>\n<td>no</td>\n<td>Values longer than 8 characters are split: the first 8 characters stay in buildingNumber and the remainder is appended to addressText.</td>\n<td>Number of the street/building - e.g. 10.</td>\n</tr>\n<tr>\n<td>addressText</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Additional address information - e.g. bl. 25, et. 3. Not all couriers support it.</td>\n</tr>\n<tr>\n<td>contactPerson</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Contact person. Usually the same as the name of the recipient.</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>string</td>\n<td>yes</td>\n<td>Max 100 characters.</td>\n<td>Phone number of the recipient.</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>no</td>\n<td>Not validated.</td>\n<td>Email of the recipient - highly recommended. If left empty, the system substitutes an internal placeholder address.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>awb</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>shipmentType</td>\n<td>string</td>\n<td>yes (for pallets)</td>\n<td>Enum: pack, pallet</td>\n<td>Send \"pallet\" for pallet shipments.</td>\n</tr>\n<tr>\n<td>parcels</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min 0.</td>\n<td>Number of parcels in the shipment. For pallet shipments send 0.</td>\n</tr>\n<tr>\n<td>envelopes</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min 0.</td>\n<td>Number of envelopes in the shipment. Usually 0.</td>\n</tr>\n<tr>\n<td>pallets</td>\n<td>integer</td>\n<td>yes (for pallets)</td>\n<td></td>\n<td>The number of pallets in the shipment.</td>\n</tr>\n<tr>\n<td>totalWeight</td>\n<td>numeric</td>\n<td>yes</td>\n<td>Min 0.01.</td>\n<td>Total weight of the shipment in kg. The value has to be equal to the sum of all packages.</td>\n</tr>\n<tr>\n<td>declaredValue</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.</td>\n<td>Insurance amount of the shipment. The service returns an error when the value is above the permitted maximum for the country. Not all couriers support the service.</td>\n</tr>\n<tr>\n<td>bankRepayment</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.</td>\n<td>COD amount of the shipment in local currency. You can set it to 0 or omit it if the shipment doesn't have a COD amount.</td>\n</tr>\n<tr>\n<td>otherRepayment</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Additional information to COD.</td>\n</tr>\n<tr>\n<td>observations</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Additional information about the shipment/products (notes).</td>\n</tr>\n<tr>\n<td>openPackage</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Check up the shipment before pay. Not supported by all couriers.</td>\n</tr>\n<tr>\n<td>saturdayDelivery</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Saturday delivery. Not available for some countries.</td>\n</tr>\n<tr>\n<td>referenceNumber</td>\n<td>string</td>\n<td>yes</td>\n<td>Max 100 characters. <strong>Must be unique to avoid duplicate shipments!</strong></td>\n<td>Client reference number. Usually the unique number of the order from your site or an invoice number. Helps for tracking and reporting.</td>\n</tr>\n<tr>\n<td>products</td>\n<td>string</td>\n<td>no</td>\n<td>Max 1000 characters.</td>\n<td>The content of the shipment as free text, e.g. product1 product2.</td>\n</tr>\n<tr>\n<td>fragile</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Marker whether the content is fragile (fragile = 1 if the content is fragile). Used only for BG.</td>\n</tr>\n<tr>\n<td>productsInfo</td>\n<td>string</td>\n<td>no</td>\n<td>Max 2000 characters.</td>\n<td>Additional product information.</td>\n</tr>\n<tr>\n<td>piecesInPack</td>\n<td>integer</td>\n<td>no</td>\n<td></td>\n<td>Products amount in one shipment, e.g. if the shipment contains 5 products the field is filled with 5.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>awb.document</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>restrictions</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>no</td>\n<td>Enum: invoice</td>\n<td>Type of the attached document.</td>\n</tr>\n<tr>\n<td>content</td>\n<td>base64 string</td>\n<td>no</td>\n<td></td>\n<td>PDF content, base64 encoded.</td>\n</tr>\n<tr>\n<td>format</td>\n<td>string</td>\n<td>no</td>\n<td>Enum: pdf</td>\n<td>Format of the attached document.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>awb.packages</strong></p>\n<p>Recommended for pallet shipments - describe each pallet with its real dimensions. If awb.packages and awb.pallets are omitted, the system creates one package per parcel with default dimensions 10 x 10 x 20 cm, and totalWeight is spread evenly across the parcels.</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>dimensions.width</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.1.</td>\n<td>Width of the specific pallet in cm.</td>\n</tr>\n<tr>\n<td>dimensions.height</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.1.</td>\n<td>Height of the specific pallet in cm.</td>\n</tr>\n<tr>\n<td>dimensions.length</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.1.</td>\n<td>Length of the specific pallet in cm.</td>\n</tr>\n<tr>\n<td>weight</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.001.</td>\n<td>Weight of the specific pallet in kg.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>products</strong> (top-level array)</p>\n<p>Optional. Declares the shipment content as structured items.</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>refNumber</td>\n<td>string</td>\n<td>yes</td>\n<td></td>\n<td>Reference number of the product.</td>\n</tr>\n<tr>\n<td>qty</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min 1.</td>\n<td>Quantity of the product.</td>\n</tr>\n<tr>\n<td>price</td>\n<td>numeric</td>\n<td>no</td>\n<td></td>\n<td>Unit price of the product (with VAT).</td>\n</tr>\n<tr>\n<td>priceWithoutVat</td>\n<td>numeric</td>\n<td>no</td>\n<td></td>\n<td>Unit price of the product without VAT.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Note:</strong> for senders shipping with Econt or Speedy whose account is configured with a cash receipt, the sum of price x qty over all products must be equal to awb.bankRepayment (when the COD amount is greater than 0), otherwise the request is rejected with a validation error.</p>\n<p><strong>sender</strong></p>\n<p>Optional. Overrides the sender contact data printed on the label / sent to the courier.</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>restrictions</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>no</td>\n<td>Max 255 characters.</td>\n<td>Sender name.</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>string</td>\n<td>no</td>\n<td>Max 20 characters.</td>\n<td>Sender phone number.</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>no</td>\n<td>Valid email.</td>\n<td>Sender email.</td>\n</tr>\n<tr>\n<td>econtCODAggrement</td>\n<td>string</td>\n<td>no</td>\n<td>Max 20 characters.</td>\n<td>Econt COD agreement number.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>invoice</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>number</td>\n<td>string</td>\n<td>no</td>\n<td>Max 30 characters.</td>\n<td>Invoice number.</td>\n</tr>\n<tr>\n<td>issueDate</td>\n<td>date</td>\n<td>no</td>\n<td></td>\n<td>Invoice issue date.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>courierRequest</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>date</td>\n<td>date string</td>\n<td>no</td>\n<td>Must be today or later.</td>\n<td>The date on which the courier must visit the address.</td>\n</tr>\n<tr>\n<td>timeFrom</td>\n<td>time string</td>\n<td>no</td>\n<td>Format HH:MM.</td>\n<td>Starting time of the visit.</td>\n</tr>\n<tr>\n<td>timeTo</td>\n<td>time string</td>\n<td>no</td>\n<td>Format HH:MM.</td>\n<td>End time of the visit.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>customsData</strong> (legacy, non-EU destinations)</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>dutyPaymentInfo</td>\n<td>string</td>\n<td>no</td>\n<td>Enum: DDU, DDP</td>\n<td>Mandatory for countries outside the European Union. DDU (Delivery duty unpaid), DDP (Delivery duty paid).</td>\n</tr>\n<tr>\n<td>customsValue</td>\n<td>numeric</td>\n<td>no</td>\n<td></td>\n<td>Mandatory for countries outside the European Union.</td>\n</tr>\n</tbody>\n</table>\n</div><p>For shipments to non-EU destinations a full structured customs declaration (customs_declaration block with products and exportData) can also be sent - see Shipment_Creation_Web_Service_v1.5-NON-EU for the complete field list.</p>\n<p><strong>returnLabel</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>nDaysValid</td>\n<td>integer</td>\n<td>no</td>\n<td>Min 0. Default 0 (no expiry).</td>\n<td>Number of days the return label is valid. For now used only for Greece.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>API Response (Output Fields)</strong></p>\n<p>On success the service returns HTTP 200 with:</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>awb</td>\n<td>AWB number.</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Internal record id of the shipment. Returned only when responseData.id is sent as true.</td>\n</tr>\n<tr>\n<td>barcode</td>\n<td>Barcode of the shipment printed on the label.</td>\n</tr>\n<tr>\n<td>returnLabelNumber</td>\n<td>Return label number, populated only for couriers that issue a return label as part of the create-shipment call (e.g. Geniki RR number, Zasilkovna return label). Empty for couriers that don't support it.</td>\n</tr>\n<tr>\n<td>packagesBarcodes</td>\n<td>Barcodes of the ADDITIONAL packages only (the main label barcode is in barcode). For single-pallet shipments this is an empty array.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"awb\": \"1507023066\",\n    \"barcode\": \"1507023066001\",\n    \"returnLabelNumber\": \"\",\n    \"packagesBarcodes\": []\n}\n\n</code></pre>\n<p>On error the response body has the shape:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"error text\"\n}\n\n</code></pre>\n<p>HTTP Errors:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not found data.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Unprocessable Entity. Wrong input data.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","createAWB"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"f1564d93-2826-4fee-841b-0402551be0d6"},{"name":"Shipment_Creation_Web_Service_v1.5-NON-EU","id":"0d9826c8-93db-48fc-813f-a128dd223c02","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"testMode\": 0,\n    \"senderId\": 333,\n    \"courierId\": 20,\n    \"waybillAvailableDate\": \"2023-01-23\",\n    \"serviceName\": \"eushipmentsairexpress\",\n    \"recipient\": {\n        \"name\": \"Test User\",\n        \"countryIsoCode\": \"HU\",\n        \"cityId\": 20144281,\n        \"region\": \"null\",\n        \"cityName\": \"Balatonszárszó\",\n        \"zipCode\": \"8624\",\n        \"streetName\": \"test street\",\n        \"buildingNumber\": 0,\n        \"addressText\": \"additional text, address test\",\n        \"contactPerson\": \"Test User\",\n        \"phoneNumber\": \"00889000000\",\n        \"email\": \"test@example.com\"\n    },\n    \"awb\": {\n        \"parcels\": 1,\n        \"envelopes\": 0,\n        \"totalWeight\": 1.000,\n        \"declaredValue\": 0,\n        \"bankRepayment\": 0.0,\n        \"otherRepayment\": \"additional text for repayment\",\n        \"observations\": \"notes\",\n        \"openPackage\": false,\n        \"shipmentPayer\": \"sender\",\n        \"saturdayDelivery\": false,\n        \"referenceNumber\": \"000000\",\n        \"products\": \"test product\",\n        \"fragile\": 1,\n        \"productsInfo\": \"1111;2222;3333;4444\",\n        \"piecesInPack\": 4,\n        \"document\": {\n            \"type\": \"invoice\",\n            \"content\": \"JVBERi0xLjcKJcfsj6IKOCAwIG9iago8PC9MZW5ndGggOSAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nL1bW3fbxhF95++Yc3JO66Tmeu8L6M2SL1EqW44oOy99gUjYpg8vMkg6UU4f0qRu2vSW...\",\n            \"format\": \"pdf\"\n        },\n        \"packages\": [\n            {\n                \"dimensions\": {\n                    \"width\": 20,\n                    \"height\": 20,\n                    \"length\": 20\n                },\n                \"weight\": 1\n            }\n        ]\n    },\n    \"customs_declaration\": {\n        \"products\": [\n            {\n                \"description\": \"Cotton T-shirt\",\n                \"taric\": \"6109100010\",\n                \"base_value\": 35.50,\n                \"quantity\": 1,\n                \"weight\": 1,\n                \"country_of_origin\": \"BG\",\n                \"client_ref\": \"SKU-000123\"\n            }\n        ],\n        \"exportData\": {\n            \"country_of_export\": \"BG\",\n            \"declaration_country\": \"BG\",\n            \"ioss_number\": \"IM1234567890123\"\n        }\n    },\n    \"customsData\": {\n        \"dutyPaymentInfo\": \"DDU\",\n        \"customsValue\": 35.50\n    }\n}\n","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/createAWB","description":"<p>We can now offer you the ability to ask for a shipment creation directly from your company's software or website by taking advantage of \"Shipment Creation\". This page describes the creation of shipments to NON-EU destinations - the endpoint and validation are the same as Shipment_Creation_Web_Service_v1.5, plus the customs blocks described below.</p>\n<p>Requirements</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>createAWB</td>\n<td>Creates a new shipment according to the provided API token and the shipment's data.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Method: POST\nAuthorization: Bearer API_TOKEN</p>\n<p>Example URLs</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>URL</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Test</td>\n<td><a href=\"https://test-api.inout.bg/api/v1/createAWB\">https://test-api.inout.bg/api/v1/createAWB</a></td>\n</tr>\n<tr>\n<td>Production</td>\n<td><a href=\"https://api1.inout.bg/api/v1/createAWB\">https://api1.inout.bg/api/v1/createAWB</a></td>\n</tr>\n</tbody>\n</table>\n</div><p>API Call Input Fields\nBody (JSON)</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>boolean</td>\n<td>yes</td>\n<td></td>\n<td>If you want to use the API only for tests, set this field to true. Applies only to the production environment. On the test environment, all shipments save on test env.</td>\n</tr>\n<tr>\n<td>senderId (company id)</td>\n<td>integer</td>\n<td>yes</td>\n<td>Must be an existing company ID.</td>\n<td>ID of company, obtain an ID from Companies Web Service. Please for more information, see Companies Web Service.</td>\n</tr>\n<tr>\n<td>courierId</td>\n<td>integer</td>\n<td>no (recommended)</td>\n<td>Must be an existing courier ID.</td>\n<td>ID of courier, obtain an ID from Couriers Web Service. If omitted, the system automatically selects the courier configured for the destination country on your account and returns an error if none is configured. We recommend always sending it explicitly.</td>\n</tr>\n<tr>\n<td>serviceName</td>\n<td>string</td>\n<td>no</td>\n<td>Must be a service supported by the selected courier.</td>\n<td>Service name, e.g. crossborder (default) or eushipmentsairexpress. If omitted or not supported by the selected courier, the courier's first available service is used, and otherwise the system default (crossborder).</td>\n</tr>\n<tr>\n<td>waybillAvailableDate</td>\n<td>date</td>\n<td>yes</td>\n<td>Must be between today and 9 days ahead (format YYYY-MM-DD).</td>\n<td>The date on which the shipment is to be dispatched.</td>\n</tr>\n<tr>\n<td>responseData.id</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>When set to true, the response also contains the internal record id of the created shipment (field id).</td>\n</tr>\n<tr>\n<td>courierReturnAWB</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Request a courier return AWB together with the shipment, where the courier supports it (e.g. DHL, Zasilkovna, PPL).</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>recipient</strong></p>\n<p>Addressing: send EITHER recipient.cityId OR recipient.countryIsoCode + recipient.cityName + (recipient.zipCode OR recipient.region).</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>restrictions</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>yes</td>\n<td>Max 100 characters.</td>\n<td>Name of recipient or company. Typically, both customer names (first name and last name) or a company name are filled in.</td>\n</tr>\n<tr>\n<td>cityId</td>\n<td>integer</td>\n<td>conditional</td>\n<td>Required when countryIsoCode and cityName are not sent. Must be an existing city ID.</td>\n<td>The ID of the city where the shipment needs to be delivered. Obtain an ID from the Cities resource. Please for more information, see Cities web service.</td>\n</tr>\n<tr>\n<td>countryIsoCode</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required without cityId. Two-letter uppercase ISO code, e.g. GB, RS, CH.</td>\n<td>Two-letter country ISO code of the delivery country.</td>\n</tr>\n<tr>\n<td>cityName</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required without cityId. Max 100 characters.</td>\n<td>City name. If you have your own nomenclature with cities, you can fill in the fields cityName, zipCode and region instead of cityId.</td>\n</tr>\n<tr>\n<td>zipCode</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required without cityId and region. Max 15 characters.</td>\n<td>Zip code.</td>\n</tr>\n<tr>\n<td>region</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required without cityId and zipCode. Max 100 characters.</td>\n<td>Region (county/municipality).</td>\n</tr>\n<tr>\n<td>officeId</td>\n<td>integer</td>\n<td>no</td>\n<td>Must be an existing office ID.</td>\n<td>Delivery to a courier office / PUDO / locker: the ID of the office, obtained from Courier_Offices_Web_Service_v1.2. When officeId or officeCode is sent, streetName becomes optional.</td>\n</tr>\n<tr>\n<td>officeCode</td>\n<td>string</td>\n<td>no</td>\n<td>Must be an existing courier office code.</td>\n<td>The courier's own office code (field COURIER_OFFICE_CODE in Courier_Offices_Web_Service_v1.2). Alternative to officeId. When either is sent, streetName becomes optional.</td>\n</tr>\n<tr>\n<td>streetName</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required unless officeId or officeCode is sent. Max 200 characters.</td>\n<td>Name of the street - e.g. Main street or Main street 10. Legacy option: office delivery can also be requested by adding the keyword \"to office: \" followed by the office name/address - this is still accepted, but we recommend using officeId or officeCode instead.</td>\n</tr>\n<tr>\n<td>buildingNumber</td>\n<td>string or number</td>\n<td>no</td>\n<td>Values longer than 8 characters are split: the first 8 characters stay in buildingNumber and the remainder is appended to addressText.</td>\n<td>Number of the street/building - e.g. 10.</td>\n</tr>\n<tr>\n<td>addressText</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Additional address information - e.g. bl. 25, et. 3. Not all couriers support it.</td>\n</tr>\n<tr>\n<td>contactPerson</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Contact person. Usually the same as the name of the recipient.</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>string</td>\n<td>yes</td>\n<td>Max 100 characters.</td>\n<td>Phone number of the recipient.</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>no</td>\n<td>Not validated.</td>\n<td>Email of the recipient - highly recommended. If left empty, the system substitutes an internal placeholder address.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>awb</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>shipmentType</td>\n<td>string</td>\n<td>no</td>\n<td>Enum: pack, pallet</td>\n<td>Type of the shipment. Default is pack.</td>\n</tr>\n<tr>\n<td>parcels</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min 0.</td>\n<td>Number of parcels in the shipment. Not all couriers support multi-parcel service.</td>\n</tr>\n<tr>\n<td>envelopes</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min 0.</td>\n<td>Number of envelopes in the shipment. Usually 0.</td>\n</tr>\n<tr>\n<td>pallets</td>\n<td>integer</td>\n<td>no</td>\n<td></td>\n<td>The number of pallets (used with shipmentType = pallet).</td>\n</tr>\n<tr>\n<td>totalWeight</td>\n<td>numeric</td>\n<td>yes</td>\n<td>Min 0.01.</td>\n<td>Total weight of the shipment in kg. The value has to be equal to the sum of all packages.</td>\n</tr>\n<tr>\n<td>declaredValue</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.</td>\n<td>Insurance amount of the shipment. The service returns an error when the value is above the permitted maximum for the country. Not all couriers support the service.</td>\n</tr>\n<tr>\n<td>bankRepayment</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.</td>\n<td>COD amount of the shipment in local currency. You can set it to 0 or omit it if the shipment doesn't have a COD amount.</td>\n</tr>\n<tr>\n<td>otherRepayment</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Additional information to COD.</td>\n</tr>\n<tr>\n<td>observations</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Additional information about the shipment/products (notes).</td>\n</tr>\n<tr>\n<td>openPackage</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Check up the shipment before pay. Not supported by all couriers.</td>\n</tr>\n<tr>\n<td>saturdayDelivery</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Saturday delivery. Not available for some countries.</td>\n</tr>\n<tr>\n<td>referenceNumber</td>\n<td>string</td>\n<td>yes</td>\n<td>Max 100 characters. <strong>Must be unique to avoid duplicate shipments!</strong></td>\n<td>Client reference number. Usually the unique number of the order from your site or an invoice number. Helps for tracking and reporting.</td>\n</tr>\n<tr>\n<td>products</td>\n<td>string</td>\n<td>no</td>\n<td>Max 1000 characters.</td>\n<td>The content of the shipment as free text, e.g. product1 product2.</td>\n</tr>\n<tr>\n<td>fragile</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Marker whether the content is fragile (fragile = 1 if the content is fragile). Used only for BG.</td>\n</tr>\n<tr>\n<td>productsInfo</td>\n<td>string</td>\n<td>no</td>\n<td>Max 2000 characters.</td>\n<td>Additional product information.</td>\n</tr>\n<tr>\n<td>piecesInPack</td>\n<td>integer</td>\n<td>no</td>\n<td></td>\n<td>Products amount in one shipment, e.g. if the shipment contains 5 products the field is filled with 5.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>awb.document</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>restrictions</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>no</td>\n<td>Enum: invoice</td>\n<td>Type of the attached document.</td>\n</tr>\n<tr>\n<td>content</td>\n<td>base64 string</td>\n<td>no</td>\n<td></td>\n<td>PDF content, base64 encoded (e.g. the commercial invoice).</td>\n</tr>\n<tr>\n<td>format</td>\n<td>string</td>\n<td>no</td>\n<td>Enum: pdf</td>\n<td>Format of the attached document.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>awb.packages</strong></p>\n<p>Optional. If awb.packages (and awb.pallets) are omitted, the system creates one package per parcel with default dimensions 10 x 10 x 20 cm, and totalWeight is spread evenly across the parcels.</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>dimensions.width</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.1.</td>\n<td>Width of the specific parcel in cm.</td>\n</tr>\n<tr>\n<td>dimensions.height</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.1.</td>\n<td>Height of the specific parcel in cm.</td>\n</tr>\n<tr>\n<td>dimensions.length</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.1.</td>\n<td>Length of the specific parcel in cm.</td>\n</tr>\n<tr>\n<td>weight</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.001.</td>\n<td>Weight of the specific parcel in kg.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>products</strong> (top-level array)</p>\n<p>Optional. Declares the shipment content as structured items.</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>refNumber</td>\n<td>string</td>\n<td>yes</td>\n<td></td>\n<td>Reference number of the product.</td>\n</tr>\n<tr>\n<td>qty</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min 1.</td>\n<td>Quantity of the product.</td>\n</tr>\n<tr>\n<td>price</td>\n<td>numeric</td>\n<td>no</td>\n<td></td>\n<td>Unit price of the product (with VAT).</td>\n</tr>\n<tr>\n<td>priceWithoutVat</td>\n<td>numeric</td>\n<td>no</td>\n<td></td>\n<td>Unit price of the product without VAT.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Note:</strong> for senders shipping with Econt or Speedy whose account is configured with a cash receipt, the sum of price x qty over all products must be equal to awb.bankRepayment (when the COD amount is greater than 0), otherwise the request is rejected with a validation error.</p>\n<p><strong>sender</strong></p>\n<p>Optional. Overrides the sender contact data printed on the label / sent to the courier.</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>restrictions</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>no</td>\n<td>Max 255 characters.</td>\n<td>Sender name.</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>string</td>\n<td>no</td>\n<td>Max 20 characters.</td>\n<td>Sender phone number.</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>no</td>\n<td>Valid email.</td>\n<td>Sender email.</td>\n</tr>\n<tr>\n<td>econtCODAggrement</td>\n<td>string</td>\n<td>no</td>\n<td>Max 20 characters.</td>\n<td>Econt COD agreement number.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>invoice</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>number</td>\n<td>string</td>\n<td>no</td>\n<td>Max 30 characters.</td>\n<td>Invoice number.</td>\n</tr>\n<tr>\n<td>issueDate</td>\n<td>date</td>\n<td>no</td>\n<td></td>\n<td>Invoice issue date.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>courierRequest</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>date</td>\n<td>date string</td>\n<td>no</td>\n<td>Must be today or later.</td>\n<td>The date on which the courier must visit the address.</td>\n</tr>\n<tr>\n<td>timeFrom</td>\n<td>time string</td>\n<td>no</td>\n<td>Format HH:MM.</td>\n<td>Starting time of the visit.</td>\n</tr>\n<tr>\n<td>timeTo</td>\n<td>time string</td>\n<td>no</td>\n<td>Format HH:MM.</td>\n<td>End time of the visit.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>customs_declaration</strong> (structured customs declaration - recommended for non-EU destinations)</p>\n<p>Optional block. When sent, all of its required sub-fields must be present. The declaration is stored together with the shipment and used for the export documents.</p>\n<p><strong>customs_declaration.products</strong> (array, at least 1 item)</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>description</td>\n<td>string</td>\n<td>yes</td>\n<td>Max 255 characters.</td>\n<td>Description of the goods on this line.</td>\n</tr>\n<tr>\n<td>taric</td>\n<td>string</td>\n<td>yes</td>\n<td>Max 10 characters.</td>\n<td>TARIC / HS commodity code of the goods.</td>\n</tr>\n<tr>\n<td>base_value</td>\n<td>numeric</td>\n<td>yes</td>\n<td>Min 0.01.</td>\n<td>Customs value of this line.</td>\n</tr>\n<tr>\n<td>quantity</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min 1.</td>\n<td>Quantity of the goods on this line.</td>\n</tr>\n<tr>\n<td>weight</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min 1.</td>\n<td>Weight of the goods on this line.</td>\n</tr>\n<tr>\n<td>country_of_origin</td>\n<td>string</td>\n<td>yes</td>\n<td>Two-letter uppercase ISO code.</td>\n<td>Country of origin of the goods.</td>\n</tr>\n<tr>\n<td>client_ref</td>\n<td>string</td>\n<td>yes</td>\n<td>Max 100 characters.</td>\n<td>Your reference for this product line.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>customs_declaration.exportData</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>country_of_export</td>\n<td>string</td>\n<td>yes</td>\n<td>Two-letter uppercase ISO code.</td>\n<td>Country from which the goods are exported.</td>\n</tr>\n<tr>\n<td>declaration_country</td>\n<td>string</td>\n<td>yes</td>\n<td>Two-letter uppercase ISO code.</td>\n<td>Country in which the customs declaration is lodged.</td>\n</tr>\n<tr>\n<td>ioss_number</td>\n<td>string</td>\n<td>conditional</td>\n<td>Max 15 characters. Required whenever customs_declaration is sent, except for courier 805 where it is optional.</td>\n<td>IOSS number of the seller.</td>\n</tr>\n</tbody>\n</table>\n</div><p>If the customs_declaration data fails validation after the shipment is created, the API responds with HTTP 422 and an error message, so always check the response.</p>\n<p><strong>customsData</strong> (legacy customs block - still accepted)</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>dutyPaymentInfo</td>\n<td>string</td>\n<td>no</td>\n<td>Enum: DDU, DDP</td>\n<td>Mandatory for countries outside the European Union. DDU (Delivery duty unpaid), DDP (Delivery duty paid).</td>\n</tr>\n<tr>\n<td>customsValue</td>\n<td>numeric</td>\n<td>no</td>\n<td></td>\n<td>Mandatory for countries outside the European Union.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>returnLabel</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>nDaysValid</td>\n<td>integer</td>\n<td>no</td>\n<td>Min 0. Default 0 (no expiry).</td>\n<td>Number of days the return label is valid. For now used only for Greece.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>API Response (Output Fields)</strong></p>\n<p>On success the service returns HTTP 200 with:</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>awb</td>\n<td>AWB number.</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Internal record id of the shipment. Returned only when responseData.id is sent as true.</td>\n</tr>\n<tr>\n<td>barcode</td>\n<td>Barcode of the shipment printed on the label.</td>\n</tr>\n<tr>\n<td>returnLabelNumber</td>\n<td>Return label number, populated only for couriers that issue a return label as part of the create-shipment call (e.g. Geniki RR number, Zasilkovna return label). Empty for couriers that don't support it.</td>\n</tr>\n<tr>\n<td>packagesBarcodes</td>\n<td>Barcodes of the ADDITIONAL packages only (the main label barcode is in barcode). For single-parcel shipments this is an empty array.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"awb\": \"1507023066\",\n    \"barcode\": \"1507023066001\",\n    \"returnLabelNumber\": \"\",\n    \"packagesBarcodes\": []\n}\n\n</code></pre>\n<p>On error the response body has the shape:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"error text\"\n}\n\n</code></pre>\n<p>HTTP Errors:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not found data.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Unprocessable Entity. Wrong input data.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","createAWB"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"0d9826c8-93db-48fc-813f-a128dd223c02"},{"name":"Pickup_AWB_Creation_Web_Service-v1.0","id":"afa63781-0182-4cf0-89aa-b1c45ede5ac7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"companyId\": 333,\n    \"courierId\": 20,\n    \"sender\": {\n        \"name\": \"TEST API\",\n        \"cityId\": 20142210,\n        \"countryIsoCode\": \"HU\",\n        \"cityName\": null,\n        \"zipCode\": null,\n        \"region\": null,\n        \"streetName\": \"Nagymező u.\",\n        \"contactPerson\": \"TEST API\",\n        \"phoneNumber\": \"+3655237191\",\n        \"email\": \"test@example.com\"\n    },\n    \"awb\": {\n        \"parcels\": 1,\n        \"totalWeight\": 1,\n        \"observations\": null,\n        \"products\": \"test products\",\n        \"referenceNumber\": \"PICKUP-000001\",\n        \"packages\": [\n            {\n                \"dimensions\": {\n                    \"width\": 10,\n                    \"height\": 10,\n                    \"length\": 10\n                },\n                \"weight\": 1\n            }\n        ]\n    }\n}\n","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/awb/pickup","description":"<p>We can now offer you the ability to create a pickup request for a shipment directly from your company's software or website by taking advantage of \"Pickup AWB Creation\".</p>\n<p>Requirements</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/awb/pickup</td>\n<td>Creating a pickup AWB in our system via API.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Method: POST\nAuthorization: Bearer API_TOKEN</p>\n<p>Example URLs</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>URL</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Test</td>\n<td><a href=\"https://test-api.inout.bg/api/v1/awb/pickup\">https://test-api.inout.bg/api/v1/awb/pickup</a></td>\n</tr>\n<tr>\n<td>Production</td>\n<td><a href=\"https://api1.inout.bg/api/v1/awb/pickup\">https://api1.inout.bg/api/v1/awb/pickup</a></td>\n</tr>\n</tbody>\n</table>\n</div><p>API Call Input Fields\nBody (JSON)</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>companyId</td>\n<td>integer</td>\n<td>yes</td>\n<td>There must be a company with the selected ID.</td>\n<td>ID of company, you can receive it from the Companies Web Service.</td>\n</tr>\n<tr>\n<td>courierId</td>\n<td>integer</td>\n<td>yes</td>\n<td>There must be a courier with the selected ID.</td>\n<td>ID of courier, you can receive it from the Couriers Web Service. Always required for pickup AWBs.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>sender</strong></p>\n<p>Addressing: send EITHER sender.cityId OR sender.countryIsoCode + sender.cityName + (sender.zipCode OR sender.region).</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>restrictions</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>yes</td>\n<td>Max 100 characters.</td>\n<td>Name of sender or company. Typically, both sender names (first name and last name) or a company name are filled in.</td>\n</tr>\n<tr>\n<td>cityId</td>\n<td>integer</td>\n<td>conditional</td>\n<td>Required when countryIsoCode and cityName are not sent. Must be an existing city ID.</td>\n<td>The ID of the city from which the shipment will be picked up. Obtain an ID from the Cities resource. Please for more information, see Cities web service.</td>\n</tr>\n<tr>\n<td>countryIsoCode</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required without cityId. Two-letter uppercase ISO code, e.g. BG, HU.</td>\n<td>Two-letter country ISO code of the pickup country.</td>\n</tr>\n<tr>\n<td>cityName</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required without cityId. Max 100 characters.</td>\n<td>Sender's city name, e.g. Sofia.</td>\n</tr>\n<tr>\n<td>zipCode</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required without cityId and region. Max 15 characters.</td>\n<td>Sender's city zip code, e.g. 1000.</td>\n</tr>\n<tr>\n<td>region</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required without cityId and zipCode. Max 100 characters. Recommended for Romania.</td>\n<td>Sender's region.</td>\n</tr>\n<tr>\n<td>officeId</td>\n<td>integer</td>\n<td>no</td>\n<td>Must be an existing office ID.</td>\n<td>Pickup from a courier office / PUDO: the ID of the office from Courier_Offices_Web_Service_v1.2. When officeId or officeCode is sent, streetName becomes optional.</td>\n</tr>\n<tr>\n<td>officeCode</td>\n<td>string</td>\n<td>no</td>\n<td>Must be an existing courier office code.</td>\n<td>The courier's own office code. Alternative to officeId. When either is sent, streetName becomes optional.</td>\n</tr>\n<tr>\n<td>streetName</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required unless officeId or officeCode is sent. Max 200 characters.</td>\n<td>Name of the street of the pickup address - e.g. Main street or Main street 10.</td>\n</tr>\n<tr>\n<td>contactPerson</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Contact person. Usually the same as the name of the sender.</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>string</td>\n<td>yes</td>\n<td>Max 100 characters.</td>\n<td>Sender's phone number.</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>yes</td>\n<td>Must be a valid email address.</td>\n<td>Sender's email.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>awb</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>parcels</td>\n<td>integer</td>\n<td>yes</td>\n<td>Must be exactly 1.</td>\n<td>Number of parcels in the pickup shipment. Only single-parcel pickups are supported.</td>\n</tr>\n<tr>\n<td>totalWeight</td>\n<td>numeric</td>\n<td>yes</td>\n<td>Min 0.01.</td>\n<td>Total weight of the shipment in kg.</td>\n</tr>\n<tr>\n<td>observations</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Additional information about the shipment/products (notes).</td>\n</tr>\n<tr>\n<td>referenceNumber</td>\n<td>string</td>\n<td>yes</td>\n<td>Max 100 characters. <strong>Must be unique!</strong></td>\n<td>Client reference number. Usually the unique number of the pickup request from your system. Helps for tracking and reporting.</td>\n</tr>\n<tr>\n<td>products</td>\n<td>string</td>\n<td>no</td>\n<td>Max 1000 characters.</td>\n<td>The content of the shipment, e.g. product1 product2.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>awb.packages</strong></p>\n<p>Optional array.</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>dimensions.width</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.1.</td>\n<td>Package width in cm.</td>\n</tr>\n<tr>\n<td>dimensions.height</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.1.</td>\n<td>Package height in cm.</td>\n</tr>\n<tr>\n<td>dimensions.length</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.1.</td>\n<td>Package length in cm.</td>\n</tr>\n<tr>\n<td>weight</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.001.</td>\n<td>Package weight in kg.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>API Response (Output Fields)</strong></p>\n<p>On success the service returns HTTP 200 with:</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>pickupAWBNumber</td>\n<td>Pickup AWB number.</td>\n</tr>\n<tr>\n<td>id</td>\n<td>Internal record id of the pickup AWB.</td>\n</tr>\n<tr>\n<td>lockerCode</td>\n<td>The courier's pickup-order / locker code, or null when not applicable.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"pickupAWBNumber\": \"3169951776\",\n    \"id\": 12345678,\n    \"lockerCode\": null\n}\n\n</code></pre>\n<p><strong>Important:</strong> most runtime errors (courier rejection, duplicate reference number, partner API not responding, etc.) are returned with HTTP 200 and a body of the shape below. Always check the response body for an \"error\" key, even when the HTTP status is 200.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"error text\"\n}\n\n</code></pre>\n<p>Validation failures return HTTP 422.</p>\n<p>HTTP Errors:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service - either the created pickup AWB or an error object (check for the \"error\" key).</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not found record.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Unprocessable Entity. Wrong input data.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","awb","pickup"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"afa63781-0182-4cf0-89aa-b1c45ede5ac7"},{"name":"PDF_Web_Service_v1.2","id":"4d9a884e-528e-4a01-a3d6-0621b765f73c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api1.inout.bg/api/v1/print/{AWBnumber}?testMode=0","description":"<p>We can now offer you the ability to ask for a shipping label directly from your company's software or website by taking advantage of \"PDF Web Service\".</p>\n<p><strong>Requirements:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>print/{AWBnumber}</td>\n<td>Get the shipping label as a PDF file (A4 or label format, base64 encoded) or as a raw ZPL string.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: GET</strong>\n<strong>Authorization: Bearer API_TOKEN</strong></p>\n<p><strong>API Call Input Fields</strong>\n<strong>URL query parameters</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>boolean</td>\n<td>yes</td>\n<td></td>\n<td>If you want to use the API only for tests set this field to true. Applies only to the production environment. On the test environment, all shipments save on test env.</td>\n</tr>\n<tr>\n<td>printFileType</td>\n<td>smallInt</td>\n<td>no</td>\n<td>Allowed values: 1, 2, 3. Default: 2</td>\n<td>Choose the print format:<br />1 = PDF in A4 format;<br />2 = PDF in label format (default when the parameter is omitted);<br />3 = raw ZPL (Zebra Programming Language) label.<br />A4/label formats work only if the courier also supports the waybill in both formats. Important: if a specific label type is configured for your account in our system, you receive the PDF in the format configured in our system.<br />ZPL (printFileType=3) is available only for couriers that provide a ZPL label; for all other couriers the service returns an error.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Notes:</strong></p>\n<ul>\n<li>For multi-parcel shipments only the label of the MAIN package can be requested. Requesting the AWB number of a secondary parcel returns HTTP 422 with the error \"Additional package detected. Please print the main package instead.\"</li>\n<li>If the number you pass is an InOut pre-AWB label number (an InOut label created before the courier AWB exists), the InOut label is returned instead of a courier label.</li>\n</ul>\n<p><strong>Example URLs:</strong></p>\n<p>Test: <a href=\"https://test-api.inout.bg/api/v1/print/64506083?testMode=1\">https://test-api.inout.bg/api/v1/print/64506083?testMode=1</a>\nProduction: <a href=\"https://api1.inout.bg/api/v1/print/64506083?testMode=0\">https://api1.inout.bg/api/v1/print/64506083?testMode=0</a></p>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>type</td>\n<td>Document type: \"PDF\" or \"ZPL\".</td>\n</tr>\n<tr>\n<td>awb_print</td>\n<td>For type \"PDF\" - the base64 encoded PDF file. For type \"ZPL\" - the raw ZPL string (not base64 encoded).</td>\n</tr>\n</tbody>\n</table>\n</div><p>Example (PDF):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"PDF\",\n    \"awb_print\": \"JVBERi0xLjQKJ... (base64 encoded PDF)\"\n}\n\n</code></pre>\n<p>Example (ZPL, printFileType=3):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"ZPL\",\n    \"awb_print\": \"^XA^CI28... (raw ZPL string)\"\n}\n\n</code></pre>\n<p><strong>HTTP Errors:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not found data.</td>\n</tr>\n<tr>\n<td>408</td>\n<td>The partner API did not answer. Please try again later!</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Unprocessable Entity. Wrong input data. / Additional package detected. Please print the main package instead. / ZPL not available for this courier.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","print","{AWBnumber}"],"host":["api1","inout","bg"],"query":[{"key":"testMode","value":"0"}],"variable":[]}},"response":[],"_postman_id":"4d9a884e-528e-4a01-a3d6-0621b765f73c"},{"name":"Waybills_History_Web_Service-v1.0","id":"95f11446-a09e-45fd-b480-a72d12540c51","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n\t\"testMode\": 0,\r\n\t\"awbs\": [\r\n\t\t{\r\n\t\t\t\"awb\": \"321654987456\"\r\n\t\t}, \r\n\t\t{\r\n\t\t\t\"awb\": \"321654123456\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"awb\": \"987654321\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"awb\": \"654321897654\"\r\n\t\t}\r\n\t]\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/fulfilment/waybills-history","description":"<p>We can now offer you the ability to get the statuses history for a list of AWB numbers directly from your company's software or website by taking advantage of \"Waybills History Web Service\".</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/fulfilment/waybills-history</td>\n<td>Receive the statuses history for up to 100 AWB numbers in one request. The lookup is strictly BY AWB NUMBER (the shipment number returned at AWB creation), not by order reference number.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: POST</strong>\n<strong>Authorization: Bearer API_TOKEN</strong></p>\n<p><strong>API Call Input Fields</strong>\n<strong>Body (JSON)</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>boolean</td>\n<td>yes</td>\n<td></td>\n<td>If you want to use the API only for tests set this field to true. Applies only to the production environment. On the test environment, all shipments save on test env.</td>\n</tr>\n<tr>\n<td>awbs</td>\n<td>array of objects</td>\n<td>yes</td>\n<td>max 100 AWB's per request</td>\n<td>List of the AWB numbers you want to check.</td>\n</tr>\n<tr>\n<td>awb</td>\n<td>string</td>\n<td>yes</td>\n<td>Must exist in our DB and must be created with your API Token</td>\n<td>Shipment number (AWB).</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"testMode\": 0,\n    \"awbs\": [\n        {\n            \"awb\": \"321654987456\"\n        },\n        {\n            \"awb\": \"321654123456\"\n        },\n        {\n            \"awb\": \"987654321\"\n        },\n        {\n            \"awb\": \"654321897654\"\n        }\n    ]\n}\n\n</code></pre>\n<p><strong>Example URLs:</strong></p>\n<p>Test: <a href=\"https://test-api.inout.bg/api/v1/fulfilment/waybills-history\">https://test-api.inout.bg/api/v1/fulfilment/waybills-history</a>\nProduction: <a href=\"https://api1.inout.bg/api/v1/fulfilment/waybills-history\">https://api1.inout.bg/api/v1/fulfilment/waybills-history</a></p>\n<p><strong>API Response (Output Fields)</strong></p>\n<p>The service returns an array with one entry per requested AWB, in the same order as the request.</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>refNum</td>\n<td>Your order reference number - the value you sent in \"referenceNumber\" when the AWB was created. Null in not-found entries.</td>\n</tr>\n<tr>\n<td>awb</td>\n<td>The AWB number from your request.</td>\n</tr>\n<tr>\n<td>newReturnNumber</td>\n<td>The return AWB number, if a return shipment was generated for this AWB. Null if no return shipment exists.</td>\n</tr>\n<tr>\n<td>courierId</td>\n<td>The ID of the last-mile courier delivering the shipment.</td>\n</tr>\n<tr>\n<td>courierName</td>\n<td>The name of the last-mile courier delivering the shipment.</td>\n</tr>\n<tr>\n<td>error</td>\n<td>Text of a possible error for this AWB (e.g. AWB not found or not accessible with your API token). Null when the AWB was found.</td>\n</tr>\n<tr>\n<td>errorCode</td>\n<td>Error code for this AWB, if any (e.g. 404 when the AWB was not found). Null when the AWB was found.</td>\n</tr>\n<tr>\n<td>statusesHistory</td>\n<td>Array with the statuses history. Empty array when the AWB was not found.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>StatusesHistory (Data Structure)</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>Record identifier.</td>\n</tr>\n<tr>\n<td>STATUS</td>\n<td>Status text (e.g. In transit, On delivery etc.).</td>\n</tr>\n<tr>\n<td>DATE</td>\n<td>The moment the status occurred at the courier (courier event time). The history is ordered by this field.</td>\n</tr>\n<tr>\n<td>DATE_CREATED</td>\n<td>The date when the record was stored in the euShipments system.</td>\n</tr>\n<tr>\n<td>COMMENT</td>\n<td>The name of the status in the native language for every country.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Shipment statuses</strong> (current as of July 2026, generated from the live system):</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>ID</strong></th>\n<th><strong>Status</strong></th>\n<th><strong>Final Status</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>On delivery</td>\n<td>No</td>\n</tr>\n<tr>\n<td>2</td>\n<td>In transit</td>\n<td>No</td>\n</tr>\n<tr>\n<td>3</td>\n<td>Delivered</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>4</td>\n<td>Returned</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>5</td>\n<td>In the office</td>\n<td>No</td>\n</tr>\n<tr>\n<td>6</td>\n<td>COD paid</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>7</td>\n<td>New</td>\n<td>No</td>\n</tr>\n<tr>\n<td>8</td>\n<td>Cancelled</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>11</td>\n<td>Stockout</td>\n<td>No</td>\n</tr>\n<tr>\n<td>13</td>\n<td>Lost shipment</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>14</td>\n<td>Redirected</td>\n<td>No</td>\n</tr>\n<tr>\n<td>15</td>\n<td>Deleted</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>16</td>\n<td>Warehouse Ruse</td>\n<td>No</td>\n</tr>\n<tr>\n<td>17</td>\n<td>Returning</td>\n<td>No</td>\n</tr>\n<tr>\n<td>18</td>\n<td>Scanned Waybill</td>\n<td>No</td>\n</tr>\n<tr>\n<td>19</td>\n<td>Packed</td>\n<td>No</td>\n</tr>\n<tr>\n<td>20</td>\n<td>Information received</td>\n<td>No</td>\n</tr>\n<tr>\n<td>21</td>\n<td>Awaiting pickup</td>\n<td>No</td>\n</tr>\n<tr>\n<td>22</td>\n<td>Insufficient data - AWB not created</td>\n<td>No</td>\n</tr>\n<tr>\n<td>23</td>\n<td>Information sent to warehouse</td>\n<td>No</td>\n</tr>\n<tr>\n<td>24</td>\n<td>Compensation paid</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>25</td>\n<td>Claim opened</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>26</td>\n<td>Warehouse</td>\n<td>No</td>\n</tr>\n<tr>\n<td>27</td>\n<td>Damaged shipment</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>28</td>\n<td>PreAlert</td>\n<td>No</td>\n</tr>\n<tr>\n<td>29</td>\n<td>Destroyed</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>30</td>\n<td>Warehouse Budapest</td>\n<td>No</td>\n</tr>\n<tr>\n<td>31</td>\n<td>Lastmile Accept</td>\n<td>No</td>\n</tr>\n<tr>\n<td>32</td>\n<td>Warehouse Sofia</td>\n<td>No</td>\n</tr>\n<tr>\n<td>33</td>\n<td>Warehouse Zagreb</td>\n<td>No</td>\n</tr>\n<tr>\n<td>34</td>\n<td>Returned to Warehouse</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>35</td>\n<td>Rejected by courier</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>36</td>\n<td>Returned to Client</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>37</td>\n<td>Оn hold</td>\n<td>No</td>\n</tr>\n<tr>\n<td>38</td>\n<td>Cancel</td>\n<td>No</td>\n</tr>\n<tr>\n<td>39</td>\n<td>Warehouse Oradea</td>\n<td>No</td>\n</tr>\n<tr>\n<td>40</td>\n<td>Wrong recipient data</td>\n<td>No</td>\n</tr>\n<tr>\n<td>41</td>\n<td>Linhaul transit</td>\n<td>No</td>\n</tr>\n<tr>\n<td>42</td>\n<td>Product returned to stock</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>43</td>\n<td>Insufficient data</td>\n<td>No</td>\n</tr>\n<tr>\n<td>44</td>\n<td>Unsuccessful delivery attempt</td>\n<td>No</td>\n</tr>\n<tr>\n<td>45</td>\n<td>Warehouse Senec</td>\n<td>No</td>\n</tr>\n<tr>\n<td>46</td>\n<td>Warehouse Budapest E</td>\n<td>No</td>\n</tr>\n<tr>\n<td>47</td>\n<td>Warehouse Pickup</td>\n<td>No</td>\n</tr>\n<tr>\n<td>48</td>\n<td>Warehouse Webshippy</td>\n<td>No</td>\n</tr>\n<tr>\n<td>49</td>\n<td>Linehaul loading</td>\n<td>No</td>\n</tr>\n<tr>\n<td>50</td>\n<td>Warehouse Ljubljana</td>\n<td>No</td>\n</tr>\n<tr>\n<td>51</td>\n<td>Picked up</td>\n<td>No</td>\n</tr>\n<tr>\n<td>52</td>\n<td>Search cancelled</td>\n<td>No</td>\n</tr>\n<tr>\n<td>53</td>\n<td>Underaudit</td>\n<td>No</td>\n</tr>\n<tr>\n<td>54</td>\n<td>COD Blocked by Authorities</td>\n<td>No</td>\n</tr>\n<tr>\n<td>55</td>\n<td>Loaded hub Ruse (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>56</td>\n<td>Loaded hub Sofia (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>57</td>\n<td>Loaded hub Oradea (RO)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>58</td>\n<td>Loaded hub Zagreb (HR)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>59</td>\n<td>Loaded hub Senec (SK)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>60</td>\n<td>Unloaded hub Ruse (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>61</td>\n<td>Unloaded hub Sofia (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>62</td>\n<td>Unloaded hub Oradea (RO)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>63</td>\n<td>Unloaded hub Zagreb (HR)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>64</td>\n<td>Unloaded hub Senec (SK)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>65</td>\n<td>Loaded hub Ljubljana (SI)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>66</td>\n<td>Unloaded hub Ljubljana (SI)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>67</td>\n<td>Under investigation</td>\n<td>No</td>\n</tr>\n<tr>\n<td>68</td>\n<td>Warehouse Bolzano</td>\n<td>No</td>\n</tr>\n<tr>\n<td>69</td>\n<td>Loaded hub Bolzano (IT)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>70</td>\n<td>Unloaded hub Bolzano (IT)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>71</td>\n<td>Warehouse Castellbisbal</td>\n<td>No</td>\n</tr>\n<tr>\n<td>72</td>\n<td>Loaded hub Castellbisbal (ES)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>73</td>\n<td>Unloaded hub Castellbisbal (ES)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>74</td>\n<td>Repackaged</td>\n<td>No</td>\n</tr>\n<tr>\n<td>75</td>\n<td>Warehouse Burgas</td>\n<td>No</td>\n</tr>\n<tr>\n<td>76</td>\n<td>Loaded hub Burgas (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>77</td>\n<td>Unloaded hub Burgas (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>78</td>\n<td>Loaded hub Buda (HU)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>79</td>\n<td>Unloaded hub Buda (HU)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>80</td>\n<td>Warehouse Vienna</td>\n<td>No</td>\n</tr>\n<tr>\n<td>81</td>\n<td>Loaded hub Vienna (AT)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>82</td>\n<td>Unloaded hub Vienna (AT)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>86</td>\n<td>Warehouse Montana</td>\n<td>No</td>\n</tr>\n<tr>\n<td>87</td>\n<td>Loaded hub Montana (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>88</td>\n<td>Unloaded hub Montana (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>89</td>\n<td>Warehouse Istanbul</td>\n<td>No</td>\n</tr>\n<tr>\n<td>90</td>\n<td>Loaded hub Istanbul (TR)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>91</td>\n<td>Unloaded hub Istanbul (TR)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>92</td>\n<td>Loaded hub Budapest (HU)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>93</td>\n<td>Unloaded hub Budapest (HU)</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"refNum\": \"5420122\",\n    \"awb\": \"00228876896\",\n    \"newReturnNumber\": null,\n    \"courierId\": 746,\n    \"courierName\": \"InPost PL\",\n    \"error\": null,\n    \"errorCode\": null,\n    \"statusesHistory\": [\n      {\n        \"ID\": 26332,\n        \"STATUS\": \"Information received\",\n        \"DATE\": \"2020-03-06 10:47:18\",\n        \"DATE_CREATED\": \"2020-03-06 10:47:18\",\n        \"COMMENT\": null\n      }\n    ]\n  },\n  {\n    \"refNum\": null,\n    \"awb\": \"55555555555555555555\",\n    \"error\": \"Not found waybill with the specified waybill number!\",\n    \"errorCode\": 404,\n    \"statusesHistory\": []\n  }\n]\n\n</code></pre>\n<p>Note: an AWB that does not exist in our DB or was not created with your API token is NOT an HTTP error - the request still returns HTTP 200 and the entry for that AWB contains the \"error\" and \"errorCode\" fields as shown above.</p>\n<p><strong>HTTP Errors:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>The request was successful (including entries with per-AWB \"error\" fields).</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>{\"error\": \"Missing testMode parameter!\"} - the testMode parameter is missing from the body.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>{\"error\": \"Missing awbs parameter!\"} - the awbs parameter is missing from the body.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>{\"error\": \"You can enter maximum 100 waybills!\"} - more than 100 AWBs were sent in one request.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","fulfilment","waybills-history"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"95f11446-a09e-45fd-b480-a72d12540c51"},{"name":"Shipment_Status_Web_Service_v1.1","id":"1413f560-2e74-44dd-844d-1b70dae3c8f9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api1.inout.bg/api/v1/get-status/{AWBNumber}?testMode=0","description":"<p>We can now offer you the ability to ask for the last shipment status directly from your company's software or website by taking advantage of \"Shipment Status Web Service\".</p>\n<p><strong>Requirements:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>get-status/{AWBNumber}</td>\n<td>Receive the last shipment status.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: GET</strong>\n<strong>Authorization: Bearer API_TOKEN</strong></p>\n<p><strong>API Call Input Fields</strong>\n<strong>URL query parameters</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>boolean</td>\n<td>yes</td>\n<td></td>\n<td>If you want to use the API only for tests set this field to true. Applies only to the production environment. On the test environment, all shipments save on test env.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example URLs:</strong></p>\n<p>Test: <a href=\"https://test-api.inout.bg/api/v1/get-status/64506083?testMode=1\">https://test-api.inout.bg/api/v1/get-status/64506083?testMode=1</a>\nProduction: <a href=\"https://api1.inout.bg/api/v1/get-status/64506083?testMode=0\">https://api1.inout.bg/api/v1/get-status/64506083?testMode=0</a></p>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>status</td>\n<td>Text with the last status from the shipment tracking.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"Delivered\"\n}\n\n</code></pre>\n<p><strong>Special value:</strong> if the AWB has been deleted/cancelled in our system, the service still responds with HTTP 200 and returns:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"status\": \"canceled/deleted\"\n}\n\n</code></pre>\n<p><strong>Shipment statuses</strong> (current as of July 2026, generated from the live system):</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>ID</strong></th>\n<th><strong>Status</strong></th>\n<th><strong>Final Status</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>On delivery</td>\n<td>No</td>\n</tr>\n<tr>\n<td>2</td>\n<td>In transit</td>\n<td>No</td>\n</tr>\n<tr>\n<td>3</td>\n<td>Delivered</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>4</td>\n<td>Returned</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>5</td>\n<td>In the office</td>\n<td>No</td>\n</tr>\n<tr>\n<td>6</td>\n<td>COD paid</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>7</td>\n<td>New</td>\n<td>No</td>\n</tr>\n<tr>\n<td>8</td>\n<td>Cancelled</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>11</td>\n<td>Stockout</td>\n<td>No</td>\n</tr>\n<tr>\n<td>13</td>\n<td>Lost shipment</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>14</td>\n<td>Redirected</td>\n<td>No</td>\n</tr>\n<tr>\n<td>15</td>\n<td>Deleted</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>16</td>\n<td>Warehouse Ruse</td>\n<td>No</td>\n</tr>\n<tr>\n<td>17</td>\n<td>Returning</td>\n<td>No</td>\n</tr>\n<tr>\n<td>18</td>\n<td>Scanned Waybill</td>\n<td>No</td>\n</tr>\n<tr>\n<td>19</td>\n<td>Packed</td>\n<td>No</td>\n</tr>\n<tr>\n<td>20</td>\n<td>Information received</td>\n<td>No</td>\n</tr>\n<tr>\n<td>21</td>\n<td>Awaiting pickup</td>\n<td>No</td>\n</tr>\n<tr>\n<td>22</td>\n<td>Insufficient data - AWB not created</td>\n<td>No</td>\n</tr>\n<tr>\n<td>23</td>\n<td>Information sent to warehouse</td>\n<td>No</td>\n</tr>\n<tr>\n<td>24</td>\n<td>Compensation paid</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>25</td>\n<td>Claim opened</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>26</td>\n<td>Warehouse</td>\n<td>No</td>\n</tr>\n<tr>\n<td>27</td>\n<td>Damaged shipment</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>28</td>\n<td>PreAlert</td>\n<td>No</td>\n</tr>\n<tr>\n<td>29</td>\n<td>Destroyed</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>30</td>\n<td>Warehouse Budapest</td>\n<td>No</td>\n</tr>\n<tr>\n<td>31</td>\n<td>Lastmile Accept</td>\n<td>No</td>\n</tr>\n<tr>\n<td>32</td>\n<td>Warehouse Sofia</td>\n<td>No</td>\n</tr>\n<tr>\n<td>33</td>\n<td>Warehouse Zagreb</td>\n<td>No</td>\n</tr>\n<tr>\n<td>34</td>\n<td>Returned to Warehouse</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>35</td>\n<td>Rejected by courier</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>36</td>\n<td>Returned to Client</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>37</td>\n<td>Оn hold</td>\n<td>No</td>\n</tr>\n<tr>\n<td>38</td>\n<td>Cancel</td>\n<td>No</td>\n</tr>\n<tr>\n<td>39</td>\n<td>Warehouse Oradea</td>\n<td>No</td>\n</tr>\n<tr>\n<td>40</td>\n<td>Wrong recipient data</td>\n<td>No</td>\n</tr>\n<tr>\n<td>41</td>\n<td>Linhaul transit</td>\n<td>No</td>\n</tr>\n<tr>\n<td>42</td>\n<td>Product returned to stock</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>43</td>\n<td>Insufficient data</td>\n<td>No</td>\n</tr>\n<tr>\n<td>44</td>\n<td>Unsuccessful delivery attempt</td>\n<td>No</td>\n</tr>\n<tr>\n<td>45</td>\n<td>Warehouse Senec</td>\n<td>No</td>\n</tr>\n<tr>\n<td>46</td>\n<td>Warehouse Budapest E</td>\n<td>No</td>\n</tr>\n<tr>\n<td>47</td>\n<td>Warehouse Pickup</td>\n<td>No</td>\n</tr>\n<tr>\n<td>48</td>\n<td>Warehouse Webshippy</td>\n<td>No</td>\n</tr>\n<tr>\n<td>49</td>\n<td>Linehaul loading</td>\n<td>No</td>\n</tr>\n<tr>\n<td>50</td>\n<td>Warehouse Ljubljana</td>\n<td>No</td>\n</tr>\n<tr>\n<td>51</td>\n<td>Picked up</td>\n<td>No</td>\n</tr>\n<tr>\n<td>52</td>\n<td>Search cancelled</td>\n<td>No</td>\n</tr>\n<tr>\n<td>53</td>\n<td>Underaudit</td>\n<td>No</td>\n</tr>\n<tr>\n<td>54</td>\n<td>COD Blocked by Authorities</td>\n<td>No</td>\n</tr>\n<tr>\n<td>55</td>\n<td>Loaded hub Ruse (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>56</td>\n<td>Loaded hub Sofia (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>57</td>\n<td>Loaded hub Oradea (RO)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>58</td>\n<td>Loaded hub Zagreb (HR)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>59</td>\n<td>Loaded hub Senec (SK)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>60</td>\n<td>Unloaded hub Ruse (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>61</td>\n<td>Unloaded hub Sofia (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>62</td>\n<td>Unloaded hub Oradea (RO)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>63</td>\n<td>Unloaded hub Zagreb (HR)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>64</td>\n<td>Unloaded hub Senec (SK)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>65</td>\n<td>Loaded hub Ljubljana (SI)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>66</td>\n<td>Unloaded hub Ljubljana (SI)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>67</td>\n<td>Under investigation</td>\n<td>No</td>\n</tr>\n<tr>\n<td>68</td>\n<td>Warehouse Bolzano</td>\n<td>No</td>\n</tr>\n<tr>\n<td>69</td>\n<td>Loaded hub Bolzano (IT)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>70</td>\n<td>Unloaded hub Bolzano (IT)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>71</td>\n<td>Warehouse Castellbisbal</td>\n<td>No</td>\n</tr>\n<tr>\n<td>72</td>\n<td>Loaded hub Castellbisbal (ES)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>73</td>\n<td>Unloaded hub Castellbisbal (ES)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>74</td>\n<td>Repackaged</td>\n<td>No</td>\n</tr>\n<tr>\n<td>75</td>\n<td>Warehouse Burgas</td>\n<td>No</td>\n</tr>\n<tr>\n<td>76</td>\n<td>Loaded hub Burgas (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>77</td>\n<td>Unloaded hub Burgas (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>78</td>\n<td>Loaded hub Buda (HU)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>79</td>\n<td>Unloaded hub Buda (HU)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>80</td>\n<td>Warehouse Vienna</td>\n<td>No</td>\n</tr>\n<tr>\n<td>81</td>\n<td>Loaded hub Vienna (AT)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>82</td>\n<td>Unloaded hub Vienna (AT)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>86</td>\n<td>Warehouse Montana</td>\n<td>No</td>\n</tr>\n<tr>\n<td>87</td>\n<td>Loaded hub Montana (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>88</td>\n<td>Unloaded hub Montana (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>89</td>\n<td>Warehouse Istanbul</td>\n<td>No</td>\n</tr>\n<tr>\n<td>90</td>\n<td>Loaded hub Istanbul (TR)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>91</td>\n<td>Unloaded hub Istanbul (TR)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>92</td>\n<td>Loaded hub Budapest (HU)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>93</td>\n<td>Unloaded hub Budapest (HU)</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>HTTP Errors</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>{\"error\": \"AWB not found. Please check testMode param and awb number.\"} - the AWB number does not exist (or is not visible with the given testMode). Note: an unknown AWB returns 422, not 404.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","get-status","{AWBNumber}"],"host":["api1","inout","bg"],"query":[{"key":"testMode","value":"0"}],"variable":[]}},"response":[],"_postman_id":"1413f560-2e74-44dd-844d-1b70dae3c8f9"},{"name":"Shipment_History_Web_Service_v1.4","id":"a0865ef6-3b84-493e-8462-a95c62fe0c62","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api1.inout.bg/api/v1/get-status/history/{AWBNumber}?testMode=0&lang=EN","description":"<p>We can now offer you the ability to ask for the full shipment history directly from your company's software or website by taking advantage of \"Shipment History Web Service\".</p>\n<p><strong>Requirements:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>get-status/history/{AWBNumber}</td>\n<td>Receive all statuses from the shipment tracking.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: GET</strong>\n<strong>Authorization: Bearer API_TOKEN</strong></p>\n<p><strong>API Call Input Fields</strong>\n<strong>URL query parameters</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>boolean</td>\n<td>yes</td>\n<td></td>\n<td>If you want to use the API only for tests set this field to true. Applies only to the production environment. On the test environment, all shipments save on test env.</td>\n</tr>\n<tr>\n<td>lang</td>\n<td>string</td>\n<td>no</td>\n<td>Language initials, e.g. 'EN'</td>\n<td>If you want to receive the courier statuses translated in the \"COMMENT\" field, fill this field with the language initials, e.g. 'EN'. If no translation exists for a given status and language, \"COMMENT\" contains the courier's original text in its native language.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example URLs:</strong></p>\n<p>Test: <a href=\"https://test-api.inout.bg/api/v1/get-status/history/64506083?testMode=1&amp;lang=EN\">https://test-api.inout.bg/api/v1/get-status/history/64506083?testMode=1&amp;lang=EN</a>\nProduction: <a href=\"https://api1.inout.bg/api/v1/get-status/history/64506083?testMode=0&amp;lang=EN\">https://api1.inout.bg/api/v1/get-status/history/64506083?testMode=0&amp;lang=EN</a></p>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>statusesHistory</td>\n<td>An array of objects with all statuses up to this moment, ordered by the DATE field (courier event time), ascending.</td>\n</tr>\n<tr>\n<td>ID</td>\n<td>An ID of the status record.</td>\n</tr>\n<tr>\n<td>STATUS</td>\n<td>The shipment status in our system.</td>\n</tr>\n<tr>\n<td>DATE</td>\n<td>The moment the status occurred at the courier (courier event time). The history is ordered by this field.</td>\n</tr>\n<tr>\n<td>DATE_CREATED</td>\n<td>The date when the record was stored in the euShipments system.</td>\n</tr>\n<tr>\n<td>COMMENT</td>\n<td>The name of the status in the native language for every country (or translated, if the \"lang\" parameter is used and a translation exists).</td>\n</tr>\n<tr>\n<td>PARTNER_VOUCHER</td>\n<td>Voucher number for the partner.</td>\n</tr>\n<tr>\n<td>NOTE_ID</td>\n<td>Internal ID of the courier status/note record, set if the courier has an additional note to the shipment.</td>\n</tr>\n<tr>\n<td>NOTE_CODE</td>\n<td>The courier's own status/reason code, when the courier provides one.</td>\n</tr>\n</tbody>\n</table>\n</div><p><em>Example:</em></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"statusesHistory\": [\n    {\n      \"ID\": 2513944,\n      \"STATUS\": \"New\",\n      \"DATE\": \"2019-11-05 13:02:38\",\n      \"DATE_CREATED\": \"2019-11-05 15:00:58\",\n      \"COMMENT\": \"NEW\",\n      \"PARTNER_VOUCHER\": null,\n      \"NOTE_ID\": null,\n      \"NOTE_CODE\": null\n    },\n    {\n      \"ID\": 2515304,\n      \"STATUS\": \"Warehouse Ruse\",\n      \"DATE\": \"2019-11-05 16:54:14\",\n      \"DATE_CREATED\": \"2019-11-05 16:54:14\",\n      \"COMMENT\": null,\n      \"PARTNER_VOUCHER\": null,\n      \"NOTE_ID\": null,\n      \"NOTE_CODE\": null\n    },\n    {\n      \"ID\": 2516372,\n      \"STATUS\": \"In transit\",\n      \"DATE\": \"2019-11-05 18:01:06\",\n      \"DATE_CREATED\": \"2019-11-05 18:01:06\",\n      \"COMMENT\": \"ONROAD\",\n      \"PARTNER_VOUCHER\": null,\n      \"NOTE_ID\": null,\n      \"NOTE_CODE\": null\n    },\n    {\n      \"ID\": 2770453,\n      \"STATUS\": \"In transit\",\n      \"DATE\": \"2019-12-17 20:20:23\",\n      \"DATE_CREATED\": \"2019-12-17 20:20:23\",\n      \"COMMENT\": \"ONROAD - УГОВОРКА ЗА БЪДЕЩА ДОСТАВКА\",\n      \"PARTNER_VOUCHER\": null,\n      \"NOTE_ID\": 45,\n      \"NOTE_CODE\": \"MF\"\n    },\n    {\n      \"ID\": 2776573,\n      \"STATUS\": \"In transit\",\n      \"DATE\": \"2019-12-18 10:52:16\",\n      \"DATE_CREATED\": \"2019-12-18 10:52:16\",\n      \"COMMENT\": \"ONROAD - УГОВОРКА ЗА БЪДЕЩА ДОСТАВКА\",\n      \"PARTNER_VOUCHER\": null,\n      \"NOTE_ID\": 45,\n      \"NOTE_CODE\": \"MF\"\n    }\n  ]\n}\n\n</code></pre>\n<p><strong>Notes:</strong></p>\n<ul>\n<li>If the AWB has been deleted in our system, the service still responds with HTTP 200 and the history is returned with a final \"Deleted\" entry.</li>\n<li>An unknown AWB number returns HTTP 422 (see HTTP Errors below), not 404.</li>\n</ul>\n<p><strong>Shipment statuses</strong> (current as of July 2026, generated from the live system):</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>ID</strong></th>\n<th><strong>Status</strong></th>\n<th><strong>Final Status</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>On delivery</td>\n<td>No</td>\n</tr>\n<tr>\n<td>2</td>\n<td>In transit</td>\n<td>No</td>\n</tr>\n<tr>\n<td>3</td>\n<td>Delivered</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>4</td>\n<td>Returned</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>5</td>\n<td>In the office</td>\n<td>No</td>\n</tr>\n<tr>\n<td>6</td>\n<td>COD paid</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>7</td>\n<td>New</td>\n<td>No</td>\n</tr>\n<tr>\n<td>8</td>\n<td>Cancelled</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>11</td>\n<td>Stockout</td>\n<td>No</td>\n</tr>\n<tr>\n<td>13</td>\n<td>Lost shipment</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>14</td>\n<td>Redirected</td>\n<td>No</td>\n</tr>\n<tr>\n<td>15</td>\n<td>Deleted</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>16</td>\n<td>Warehouse Ruse</td>\n<td>No</td>\n</tr>\n<tr>\n<td>17</td>\n<td>Returning</td>\n<td>No</td>\n</tr>\n<tr>\n<td>18</td>\n<td>Scanned Waybill</td>\n<td>No</td>\n</tr>\n<tr>\n<td>19</td>\n<td>Packed</td>\n<td>No</td>\n</tr>\n<tr>\n<td>20</td>\n<td>Information received</td>\n<td>No</td>\n</tr>\n<tr>\n<td>21</td>\n<td>Awaiting pickup</td>\n<td>No</td>\n</tr>\n<tr>\n<td>22</td>\n<td>Insufficient data - AWB not created</td>\n<td>No</td>\n</tr>\n<tr>\n<td>23</td>\n<td>Information sent to warehouse</td>\n<td>No</td>\n</tr>\n<tr>\n<td>24</td>\n<td>Compensation paid</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>25</td>\n<td>Claim opened</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>26</td>\n<td>Warehouse</td>\n<td>No</td>\n</tr>\n<tr>\n<td>27</td>\n<td>Damaged shipment</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>28</td>\n<td>PreAlert</td>\n<td>No</td>\n</tr>\n<tr>\n<td>29</td>\n<td>Destroyed</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>30</td>\n<td>Warehouse Budapest</td>\n<td>No</td>\n</tr>\n<tr>\n<td>31</td>\n<td>Lastmile Accept</td>\n<td>No</td>\n</tr>\n<tr>\n<td>32</td>\n<td>Warehouse Sofia</td>\n<td>No</td>\n</tr>\n<tr>\n<td>33</td>\n<td>Warehouse Zagreb</td>\n<td>No</td>\n</tr>\n<tr>\n<td>34</td>\n<td>Returned to Warehouse</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>35</td>\n<td>Rejected by courier</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>36</td>\n<td>Returned to Client</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>37</td>\n<td>Оn hold</td>\n<td>No</td>\n</tr>\n<tr>\n<td>38</td>\n<td>Cancel</td>\n<td>No</td>\n</tr>\n<tr>\n<td>39</td>\n<td>Warehouse Oradea</td>\n<td>No</td>\n</tr>\n<tr>\n<td>40</td>\n<td>Wrong recipient data</td>\n<td>No</td>\n</tr>\n<tr>\n<td>41</td>\n<td>Linhaul transit</td>\n<td>No</td>\n</tr>\n<tr>\n<td>42</td>\n<td>Product returned to stock</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>43</td>\n<td>Insufficient data</td>\n<td>No</td>\n</tr>\n<tr>\n<td>44</td>\n<td>Unsuccessful delivery attempt</td>\n<td>No</td>\n</tr>\n<tr>\n<td>45</td>\n<td>Warehouse Senec</td>\n<td>No</td>\n</tr>\n<tr>\n<td>46</td>\n<td>Warehouse Budapest E</td>\n<td>No</td>\n</tr>\n<tr>\n<td>47</td>\n<td>Warehouse Pickup</td>\n<td>No</td>\n</tr>\n<tr>\n<td>48</td>\n<td>Warehouse Webshippy</td>\n<td>No</td>\n</tr>\n<tr>\n<td>49</td>\n<td>Linehaul loading</td>\n<td>No</td>\n</tr>\n<tr>\n<td>50</td>\n<td>Warehouse Ljubljana</td>\n<td>No</td>\n</tr>\n<tr>\n<td>51</td>\n<td>Picked up</td>\n<td>No</td>\n</tr>\n<tr>\n<td>52</td>\n<td>Search cancelled</td>\n<td>No</td>\n</tr>\n<tr>\n<td>53</td>\n<td>Underaudit</td>\n<td>No</td>\n</tr>\n<tr>\n<td>54</td>\n<td>COD Blocked by Authorities</td>\n<td>No</td>\n</tr>\n<tr>\n<td>55</td>\n<td>Loaded hub Ruse (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>56</td>\n<td>Loaded hub Sofia (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>57</td>\n<td>Loaded hub Oradea (RO)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>58</td>\n<td>Loaded hub Zagreb (HR)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>59</td>\n<td>Loaded hub Senec (SK)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>60</td>\n<td>Unloaded hub Ruse (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>61</td>\n<td>Unloaded hub Sofia (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>62</td>\n<td>Unloaded hub Oradea (RO)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>63</td>\n<td>Unloaded hub Zagreb (HR)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>64</td>\n<td>Unloaded hub Senec (SK)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>65</td>\n<td>Loaded hub Ljubljana (SI)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>66</td>\n<td>Unloaded hub Ljubljana (SI)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>67</td>\n<td>Under investigation</td>\n<td>No</td>\n</tr>\n<tr>\n<td>68</td>\n<td>Warehouse Bolzano</td>\n<td>No</td>\n</tr>\n<tr>\n<td>69</td>\n<td>Loaded hub Bolzano (IT)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>70</td>\n<td>Unloaded hub Bolzano (IT)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>71</td>\n<td>Warehouse Castellbisbal</td>\n<td>No</td>\n</tr>\n<tr>\n<td>72</td>\n<td>Loaded hub Castellbisbal (ES)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>73</td>\n<td>Unloaded hub Castellbisbal (ES)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>74</td>\n<td>Repackaged</td>\n<td>No</td>\n</tr>\n<tr>\n<td>75</td>\n<td>Warehouse Burgas</td>\n<td>No</td>\n</tr>\n<tr>\n<td>76</td>\n<td>Loaded hub Burgas (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>77</td>\n<td>Unloaded hub Burgas (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>78</td>\n<td>Loaded hub Buda (HU)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>79</td>\n<td>Unloaded hub Buda (HU)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>80</td>\n<td>Warehouse Vienna</td>\n<td>No</td>\n</tr>\n<tr>\n<td>81</td>\n<td>Loaded hub Vienna (AT)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>82</td>\n<td>Unloaded hub Vienna (AT)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>86</td>\n<td>Warehouse Montana</td>\n<td>No</td>\n</tr>\n<tr>\n<td>87</td>\n<td>Loaded hub Montana (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>88</td>\n<td>Unloaded hub Montana (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>89</td>\n<td>Warehouse Istanbul</td>\n<td>No</td>\n</tr>\n<tr>\n<td>90</td>\n<td>Loaded hub Istanbul (TR)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>91</td>\n<td>Unloaded hub Istanbul (TR)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>92</td>\n<td>Loaded hub Budapest (HU)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>93</td>\n<td>Unloaded hub Budapest (HU)</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>HTTP Errors</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>{\"error\": \"AWB not found. Please check testMode param and awb number.\"} - the AWB number does not exist (or is not visible with the given testMode).</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","get-status","history","{AWBNumber}"],"host":["api1","inout","bg"],"query":[{"key":"testMode","value":"0"},{"key":"lang","value":"EN"}],"variable":[]}},"response":[],"_postman_id":"a0865ef6-3b84-493e-8462-a95c62fe0c62"},{"name":"Shipment_Price_Web_Service_v1.1","id":"9db63c02-b918-4069-9ca0-6c46f19befd4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n\t\"courierId\": 15,\r\n\t\"companyId\": 333,\r\n\t\"weight\": 1,\r\n\t\"codAmount\": 100,\r\n\t\"openPackage\": 0,\r\n\t\"insuranceAmount\": 0,\r\n\t\"returnDocs\": 2,\r\n\t\"saturdayDelivery\": 0,\r\n\t\"toOffice\": 1,\r\n\t\"currency\": \"BGN\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/shipment-price","description":"<p>We can now offer you the ability to ask for a shipment price directly from your company's software or website by taking advantage of \"Shipment Price Web Service\".</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>shipment-price</td>\n<td>You can receive a shipment price according to the provided shipment data.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: POST</strong>\n<strong>Authorization: Bearer API_TOKEN</strong></p>\n<p><strong>API Call Input Fields</strong>\n<strong>Body (JSON)</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>courierId</td>\n<td>integer</td>\n<td>yes</td>\n<td></td>\n<td>ID of courier.</td>\n</tr>\n<tr>\n<td>companyId</td>\n<td>integer</td>\n<td>yes</td>\n<td></td>\n<td>ID of company.</td>\n</tr>\n<tr>\n<td>weight</td>\n<td>numeric</td>\n<td>yes</td>\n<td></td>\n<td>Shipment weight in kg.</td>\n</tr>\n<tr>\n<td>codAmount</td>\n<td>numeric</td>\n<td>yes</td>\n<td></td>\n<td>Shipment COD amount in local currency. Set as 0 if the shipment does not have COD.</td>\n</tr>\n<tr>\n<td>openPackage</td>\n<td>boolean</td>\n<td>yes</td>\n<td></td>\n<td>Check up a shipment before pay (\"open parcel\" service).</td>\n</tr>\n<tr>\n<td>insuranceAmount</td>\n<td>numeric</td>\n<td>yes</td>\n<td></td>\n<td>Shipment insurance amount in BGN currency. Set as 0 if the shipment does not have insurance.</td>\n</tr>\n<tr>\n<td>returnDocs</td>\n<td>enum</td>\n<td>yes</td>\n<td>Allowed values: 0, 1, 2</td>\n<td>Return documents service: 2 = nothing returns; 0 = document; 1 = waybill.</td>\n</tr>\n<tr>\n<td>saturdayDelivery</td>\n<td>boolean</td>\n<td>no</td>\n<td>Default: 0</td>\n<td>Saturday delivery.</td>\n</tr>\n<tr>\n<td>toOffice</td>\n<td>boolean</td>\n<td>yes, unless courierId is 8 (Cargus)</td>\n<td></td>\n<td>If the shipment is to an office then this field is true, otherwise it is false.</td>\n</tr>\n<tr>\n<td>currency</td>\n<td>string</td>\n<td>no</td>\n<td>3-letter code. Default: BGN</td>\n<td>Currency in 3-letter code - for example: EUR, BGN, RON etc. For Bulgarian couriers the currency is always forced to BGN regardless of this field.</td>\n</tr>\n<tr>\n<td>serviceId</td>\n<td>integer</td>\n<td>no</td>\n<td>Default: 1</td>\n<td>ID of the shipping service.</td>\n</tr>\n<tr>\n<td>fulfillqty</td>\n<td>integer</td>\n<td>no</td>\n<td>Default: 0</td>\n<td>Number of fulfilment items, used to calculate the fulfilment price component.</td>\n</tr>\n<tr>\n<td>length</td>\n<td>numeric</td>\n<td>no</td>\n<td>0 - 999</td>\n<td>Package length in cm. Used where dimensional pricing applies.</td>\n</tr>\n<tr>\n<td>width</td>\n<td>numeric</td>\n<td>no</td>\n<td>0 - 999</td>\n<td>Package width in cm. Used where dimensional pricing applies.</td>\n</tr>\n<tr>\n<td>height</td>\n<td>numeric</td>\n<td>no</td>\n<td>0 - 999</td>\n<td>Package height in cm. Used where dimensional pricing applies.</td>\n</tr>\n<tr>\n<td>city</td>\n<td>string</td>\n<td>no</td>\n<td>Ignored</td>\n<td>Accepted but IGNORED by the price calculation. Kept only for backward compatibility.</td>\n</tr>\n<tr>\n<td>county</td>\n<td>string</td>\n<td>no</td>\n<td>Ignored</td>\n<td>Accepted but IGNORED by the price calculation. Kept only for backward compatibility.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"courierId\": 15,\n    \"companyId\": 333,\n    \"weight\": 1,\n    \"codAmount\": 100,\n    \"openPackage\": 0,\n    \"insuranceAmount\": 0,\n    \"returnDocs\": 2,\n    \"saturdayDelivery\": 0,\n    \"toOffice\": 1,\n    \"currency\": \"BGN\"\n}\n\n</code></pre>\n<p><strong>Example URLs:</strong></p>\n<p>Test: <a href=\"https://test-api.inout.bg/api/v1/shipment-price\">https://test-api.inout.bg/api/v1/shipment-price</a>\nProduction: <a href=\"https://api1.inout.bg/api/v1/shipment-price\">https://api1.inout.bg/api/v1/shipment-price</a></p>\n<p><strong>API Response (Output Fields)</strong></p>\n<p>All prices are returned in EUR, without VAT included.</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>price</td>\n<td>Total shipment price in EUR (without VAT included).</td>\n</tr>\n<tr>\n<td>pr_weight</td>\n<td>Price for the weight of the shipment.</td>\n</tr>\n<tr>\n<td>pr_cod</td>\n<td>Price for the COD tax.</td>\n</tr>\n<tr>\n<td>pr_ins</td>\n<td>Price for the insurance.</td>\n</tr>\n<tr>\n<td>pr_check</td>\n<td>Price for the \"open parcel\" service.</td>\n</tr>\n<tr>\n<td>pr_ret</td>\n<td>Price for the return document/AWB service.</td>\n</tr>\n<tr>\n<td>pr_fulfill</td>\n<td>Price for the fulfilment service.</td>\n</tr>\n<tr>\n<td>pr_sat_del</td>\n<td>Price for the Saturday delivery service.</td>\n</tr>\n<tr>\n<td>pr_sms</td>\n<td>Price for SMS notification.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"price\": \"3.99\",\n    \"pr_weight\": \"3.99\",\n    \"pr_cod\": \"0.00\",\n    \"pr_ins\": \"0.00\",\n    \"pr_check\": \"0.00\",\n    \"pr_ret\": \"0.00\",\n    \"pr_fulfill\": \"0.00\",\n    \"pr_sat_del\": \"0.00\",\n    \"pr_sms\": \"0.0000\"\n}\n\n</code></pre>\n<p><strong>Important:</strong> if the price cannot be calculated due to an internal error, the service responds with HTTP 200 and ALL price fields equal to 0.00. Treat an all-zero response as \"no price available\" - do not use it as a real quote.</p>\n<p><strong>HTTP Errors:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service (including the all-zero \"no price available\" response described above).</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>{\"error\": \"Invalid courier Id\"} - the courierId does not exist or has no country configured.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>{\"error\": \"Invalid Input Data (ServiceId or Dimensions or not supported CountryId )\"} - the price could not be calculated for the given serviceId / dimensions / destination country.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","shipment-price"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"9db63c02-b918-4069-9ca0-6c46f19befd4"},{"name":"[DEPRECATED] Shipment_Price_Web_Service_v1.1 Romania","id":"d8474b4f-60b0-47e7-9d90-fb5fea2ca3d6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n\t\"courierId\": 8,\r\n\t\"companyId\": 333,\r\n\t\"weight\": 1.000,\r\n\t\"codAmount\": 79.00,\r\n\t\"openPackage\": 0,\r\n\t\"insuranceAmount\": 0,\r\n\t\"returnDocs\": 2,\r\n\t\"saturdayDelivery\": 0,\r\n\t\"city\": \"Abrud\",\r\n\t\"county\": \"Alba\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/shipment-price","description":"<p><strong>This request is deprecated and kept only for backward compatibility.</strong></p>\n<p>The <code>city</code>/<code>county</code> parameters shown here are accepted by the API but ignored by the price calculation - they never affected pricing (dead legacy code path). Use Shipment_Price_Web_Service_v1.1 instead - it covers Romania as well, plus the currently supported optional parameters (serviceId, fulfillqty, length/width/height, saturdayDelivery, currency).</p>\n","urlObject":{"protocol":"https","path":["api","v1","shipment-price"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"d8474b4f-60b0-47e7-9d90-fb5fea2ca3d6"},{"name":"AWB_Deletion_Web_Service-v1.0","id":"30fe80aa-3530-f194-67fc-05acfd03e6d2","request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://api1.inout.bg/api/v1/delete/40695693257","description":"<p>We can now offer you the ability to delete an AWB directly from your company's software or website by taking advantage of \"AWB Deletion Web Service\".</p>\n<p>Description:\nWith this service, you can delete a shipment that you no longer need. When the courier supports remote cancellation, the AWB is also cancelled at the courier's side. The AWB is always removed from our system — a possible error from the courier's side does not block the deletion in our system (the courier error is logged on our side).</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/delete/{waybillNum}</td>\n<td>Deleting an AWB from our system and cancelling it at the courier when supported.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: DELETE\nAuthorization: Bearer API_TOKEN\nAPI Call Input Fields\nURL path parameters</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>waybillNum</td>\n<td>string</td>\n<td>yes</td>\n<td></td>\n<td>The AWB number you received when creating the shipment. The AWB must belong to one of your companies.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example</strong>:</p>\n<p>Test - <a href=\"https://test-api.inout.bg/api/v1/delete/40695693257\">https://test-api.inout.bg/api/v1/delete/40695693257</a></p>\n<p>Production - <a href=\"https://api1.inout.bg/api/v1/delete/40695693257\">https://api1.inout.bg/api/v1/delete/40695693257</a></p>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td>true if the AWB was deleted successfully, false otherwise.</td>\n</tr>\n<tr>\n<td>awb</td>\n<td>The AWB number from the request.</td>\n</tr>\n<tr>\n<td>error</td>\n<td>A field that contains the text from a possible error while executing the web service from the server-side. Empty/null on success.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"awb\": \"40695693257\",\n    \"error\": null\n}\n\n</code></pre>\n<p>HTTP Errors:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>The AWB was deleted successfully.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not found AWB with the specified number! / Not found waybill! - the AWB does not exist or does not belong to your companies.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal server error!</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","delete","40695693257"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"30fe80aa-3530-f194-67fc-05acfd03e6d2"},{"name":"Merged_Print_Web_Service-v1.0","id":"51abbef3-cce2-93ee-ac3c-c7cb18f6faf7","request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"numbers\": [\n        \"40695693257\",\n        \"40695693258\",\n        \"40695693259\"\n    ]\n}\n"},"url":"https://api1.inout.bg/api/v1/merged/print","description":"<p>We can now offer you the ability to print several AWB labels as one merged PDF file directly from your company's software or website by taking advantage of \"Merged Print Web Service\".</p>\n<p>Description:\nWith this service, you can send a list of AWB numbers and receive one merged PDF file (Base64 encoded) with the labels of all of them, in the same order as in your request. AWB numbers that cannot be printed (not found, not yours, or with an invalid label file) do not fail the whole request - they are returned in the \"errorPrinting\" field and the rest of the labels are merged normally.</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/merged/print</td>\n<td>Printing the labels of several AWBs as one merged PDF file.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: POST\nAuthorization: Bearer API_TOKEN\nAPI Call Input Fields\nBody (JSON)</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>parameter</strong></th>\n<th><strong>type</strong></th>\n<th><strong>required</strong></th>\n<th><strong>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>numbers</td>\n<td>array of strings</td>\n<td>yes</td>\n<td>Min: 1, Max: 50</td>\n<td>List of AWB numbers to be printed. Maximum 50 AWBs can be printed at once. The AWBs must belong to your companies.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example</strong>:</p>\n<p>Test - <a href=\"https://test-api.inout.bg/api/v1/merged/print\">https://test-api.inout.bg/api/v1/merged/print</a></p>\n<p>Production - <a href=\"https://api1.inout.bg/api/v1/merged/print\">https://api1.inout.bg/api/v1/merged/print</a></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"numbers\": [\n        \"40695693257\",\n        \"40695693258\",\n        \"40695693259\"\n    ]\n}\n\n</code></pre>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td>true if the merged PDF file was generated successfully, false otherwise.</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Text result of the operation or a possible error while executing the web service from the server-side.</td>\n</tr>\n<tr>\n<td>errorPrinting</td>\n<td>Object with the AWB numbers that could not be printed. Each key is an AWB number and its value is the error text (e.g. \"No found waybill\"). Empty when all labels were printed.</td>\n</tr>\n<tr>\n<td>base64_pdf</td>\n<td>The merged PDF file, Base64 encoded.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"success\": true,\n    \"message\": \"Success to print merged awb pdf file!\",\n    \"errorPrinting\": {\n        \"40695693259\": \"No found waybill\"\n    },\n    \"base64_pdf\": \"JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmoK...\"\n}\n\n</code></pre>\n<p>HTTP Errors:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>The merged PDF file was generated. Check the \"errorPrinting\" field for AWBs that could not be printed.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>The numbers parameter must be a non-empty array!</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Maximum 50 waybills can be printed at once!</td>\n</tr>\n<tr>\n<td>422</td>\n<td>No waybills found!</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","merged","print"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"51abbef3-cce2-93ee-ac3c-c7cb18f6faf7"}],"id":"6d53426f-ebca-48d2-aa5f-0092db75e4df","_postman_id":"6d53426f-ebca-48d2-aa5f-0092db75e4df","description":""},{"name":"Location Web Services","item":[{"name":"Cities_Suggestions_Web_Service_v1.0","id":"7c8c32a1-5134-44bd-8ded-8309c7044f1c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api1.inout.bg/api/v1/get-cities/suggestions/2/8290?testMode=0&searchAllFields=1","description":"<p>We offer you the ability to ask for city suggestions directly from your company's software or website by taking advantage of the \"Cities Suggestions Web Service\".</p>\n<p><strong>Requirements:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Restrictions</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/get-cities/suggestions/{countryId}/{string}</td>\n<td>With this service, you can receive the cities in a chosen country by a string that is a part of, or the full, city name, region or postal code.</td>\n<td>String parameter: min length 3 characters. <br />CountryId parameter: must be a valid country ID (see the Countries Web Service).</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: GET</strong></p>\n<p><strong>Authorization: Bearer API_TOKEN</strong></p>\n<p><strong>API Call Input Fields</strong></p>\n<p><strong>URL query parameters</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>testMode</td>\n<td>boolean</td>\n<td>yes</td>\n<td>If set to true, the lookup is performed against the test environment database instead of the production one. It only selects the data source for the search — nothing is created or changed. On the production environment use testMode=0.</td>\n</tr>\n<tr>\n<td>searchAllFields</td>\n<td>boolean</td>\n<td>no</td>\n<td>By default, the system searches the city by zip code or city name. If you want to search by all fields (city name, postal code, county name, state, plus the Latin versions of these fields), set this field to true.</td>\n</tr>\n<tr>\n<td>toOffice</td>\n<td>boolean</td>\n<td>no</td>\n<td>If set to true, the result is restricted to cities that have courier offices (useful when the shipment will be delivered to an office/locker).</td>\n</tr>\n<tr>\n<td>courierId</td>\n<td>integer</td>\n<td>no</td>\n<td>Courier ID (see the Couriers Web Service). Used together with toOffice to filter the cities to those served by the chosen courier's office network.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Examples:</strong></p>\n<p>By zip code\n<a href=\"https://api1.inout.bg/api/v1/get-cities/suggestions/2/700?testMode=0\">https://api1.inout.bg/api/v1/get-cities/suggestions/2/700?testMode=0</a></p>\n<p>By city name\n<a href=\"https://api1.inout.bg/api/v1/get-cities/suggestions/2/%D1%80%D1%83%D1%81?testMode=0\">https://api1.inout.bg/api/v1/get-cities/suggestions/2/рус?testMode=0</a>\n<a href=\"https://api1.inout.bg/api/v1/get-cities/suggestions/2/rus?testMode=0\">https://api1.inout.bg/api/v1/get-cities/suggestions/2/rus?testMode=0</a></p>\n<p>Search by all fields (city name, postal code, county name, state + these fields in Latin characters)\n<a href=\"https://api1.inout.bg/api/v1/get-cities/suggestions/2/%D1%80%D1%83%D1%81?testMode=0&amp;searchAllFields=1\">https://api1.inout.bg/api/v1/get-cities/suggestions/2/рус?testMode=0&amp;searchAllFields=1</a></p>\n<p>Test environment\n<a href=\"https://test-api.inout.bg/api/v1/get-cities/suggestions/2/%D1%80%D1%83%D1%81?testMode=1\">https://test-api.inout.bg/api/v1/get-cities/suggestions/2/рус?testMode=1</a></p>\n<p><strong>Important</strong>: The web service returns only the first 50 results it finds. If what you are looking for is not in the result, refine the search string.</p>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>COUNTRY_ID</td>\n<td>The ID of the country.</td>\n</tr>\n<tr>\n<td>COUNTY_ID</td>\n<td>The ID of the county, if one exists for the location (see the Counties Romania Web Service). May be null.</td>\n</tr>\n<tr>\n<td>ID</td>\n<td>The ID of the city.</td>\n</tr>\n<tr>\n<td>POSTAL_CODE</td>\n<td>Zip code of the city.</td>\n</tr>\n<tr>\n<td>CITY_NAME_LOCAL</td>\n<td>The city name in the local language.</td>\n</tr>\n<tr>\n<td>CITY_NAME_EN</td>\n<td>The name of the city in Latin characters.</td>\n</tr>\n<tr>\n<td>COUNTY</td>\n<td>Region of the location in the local language.</td>\n</tr>\n<tr>\n<td>COUNTY_EN</td>\n<td>Region of the location in Latin characters.</td>\n</tr>\n<tr>\n<td>STATE</td>\n<td>If the country uses states, this field is set to the local state name.</td>\n</tr>\n<tr>\n<td>STATE_EN</td>\n<td>If the country uses states, this field is set to the state name in Latin characters.</td>\n</tr>\n<tr>\n<td>CRE_FROM_API</td>\n<td>If true, the record was created through the API.</td>\n</tr>\n<tr>\n<td>RAPIDO_SITEID</td>\n<td>The site (city) ID in the Rapido courier nomenclature. Populated for Bulgaria only; may be null.</td>\n</tr>\n<tr>\n<td>LOCALITYID</td>\n<td>The locality ID in the courier nomenclature (used for couriers that require their own locality codes, e.g. Cargus in Romania). May be null.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"suggestions\": [\n        {\n            \"COUNTRY_ID\": 2,\n            \"COUNTY_ID\": null,\n            \"ID\": 32696,\n            \"POSTAL_CODE\": \"7000\",\n            \"CITY_NAME_LOCAL\": \"Русе\",\n            \"CITY_NAME_EN\": \"Ruse\",\n            \"COUNTY\": \"Русе\",\n            \"COUNTY_EN\": \"Ruse\",\n            \"STATE\": null,\n            \"STATE_EN\": null,\n            \"CRE_FROM_API\": null,\n            \"RAPIDO_SITEID\": 512,\n            \"LOCALITYID\": null\n        },\n        {\n            \"COUNTRY_ID\": 2,\n            \"COUNTY_ID\": null,\n            \"ID\": 25731,\n            \"POSTAL_CODE\": \"7040\",\n            \"CITY_NAME_LOCAL\": \"Русокастро\",\n            \"CITY_NAME_EN\": \"Rusokastro\",\n            \"COUNTY\": \"Бургас\",\n            \"COUNTY_EN\": \"Burgas\",\n            \"STATE\": null,\n            \"STATE_EN\": null,\n            \"CRE_FROM_API\": null,\n            \"RAPIDO_SITEID\": null,\n            \"LOCALITYID\": null\n        }\n    ]\n}\n\n</code></pre>\n<p><strong>HTTP Errors</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not found data.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Validation error. Returned when the countryId is not a valid country ID, or when the search string is shorter than 3 characters ({\"error\":\"The field string must be with length greater than 3!\"}).</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Note: Requests may be rate-limited at infrastructure level. Please use reasonable request rates and contact euShipments if you plan bulk usage.</p>\n","urlObject":{"protocol":"https","path":["api","v1","get-cities","suggestions","2","8290"],"host":["api1","inout","bg"],"query":[{"key":"testMode","value":"0"},{"key":"searchAllFields","value":"1"}],"variable":[]}},"response":[],"_postman_id":"7c8c32a1-5134-44bd-8ded-8309c7044f1c"},{"name":"Cities_Web_Service_v1.0","id":"6af9032e-b67f-4620-9a1e-8ccc85126432","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api1.inout.bg/api/v1/get-cities/1?first=1&skip=0&paging=0","description":"<p>We offer you the ability to ask for cities directly from your company's software or website by taking advantage of the \"Cities Web Service\".</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Restrictions</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/get-cities/{countryId}</td>\n<td>With this service, you can receive the cities in a chosen country.</td>\n<td>Not available for Great Britain (countryId 23) — use the Cities Suggestions Web Service instead.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: GET</strong></p>\n<p><strong>Authorization: Bearer API_TOKEN</strong></p>\n<p><strong>API Call Input Fields</strong></p>\n<p><strong>URL query parameters</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>paging</td>\n<td>boolean</td>\n<td>yes</td>\n<td>Set to true if you want to get only a portion of the records (paginated), or false to get all records.</td>\n</tr>\n<tr>\n<td>first</td>\n<td>integer</td>\n<td>in some cases</td>\n<td>Required if the paging parameter equals true. The number of records you want returned.</td>\n</tr>\n<tr>\n<td>skip</td>\n<td>integer</td>\n<td>in some cases</td>\n<td>Required if the paging parameter equals true. The number of records you want skipped.</td>\n</tr>\n<tr>\n<td>county_id</td>\n<td>integer</td>\n<td>no</td>\n<td>County ID, obtained from the Counties Romania Web Service. You can use this field only for Romania.</td>\n</tr>\n<tr>\n<td>office_id</td>\n<td>integer</td>\n<td>no</td>\n<td>Office ID (Romanian agency ID). You can use this field only for Romania. Contact euShipments if you need this filter.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Examples:</strong></p>\n<p>Test environment\n<a href=\"https://test-api.inout.bg/api/v1/get-cities/1?first=1&amp;skip=0&amp;paging=0\">https://test-api.inout.bg/api/v1/get-cities/1?first=1&amp;skip=0&amp;paging=0</a></p>\n<p>Production environment\n<a href=\"https://api1.inout.bg/api/v1/get-cities/1?first=1&amp;skip=0&amp;paging=0\">https://api1.inout.bg/api/v1/get-cities/1?first=1&amp;skip=0&amp;paging=0</a></p>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>ID</td>\n<td>ID of the city.</td>\n</tr>\n<tr>\n<td>POSTAL_CODE</td>\n<td>Zip code of the city.</td>\n</tr>\n<tr>\n<td>CITY_NAME_LOCAL</td>\n<td>The city name in the local language.</td>\n</tr>\n<tr>\n<td>CITY_NAME_EN</td>\n<td>The name of the city in Latin characters.</td>\n</tr>\n<tr>\n<td>COUNTY</td>\n<td>Region of the location in the local language.</td>\n</tr>\n<tr>\n<td>COUNTY_ID</td>\n<td>The ID of the county, if one exists for the location (see the Counties Romania Web Service). Null where not applicable.</td>\n</tr>\n<tr>\n<td>COUNTY_EN</td>\n<td>Region of the location in Latin characters.</td>\n</tr>\n<tr>\n<td>MUNICIPALITY</td>\n<td>The municipality name — meaningful for Bulgaria only. For other countries this field is repurposed internally and should be ignored.</td>\n</tr>\n<tr>\n<td>STATE</td>\n<td>If the country uses states, this field is set to the local state name.</td>\n</tr>\n<tr>\n<td>STATE_EN</td>\n<td>If the country uses states, this field is set to the state name in Latin characters.</td>\n</tr>\n<tr>\n<td>MANUAL_EDIT</td>\n<td>If this field is equal to 1, the city was added manually through the cabinet into the nomenclature.</td>\n</tr>\n<tr>\n<td>RAPIDO_SITEID</td>\n<td>The site (city) ID in the Rapido courier nomenclature. Returned for Bulgaria (countryId 2) only; may be null.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"ID\": 24370,\n        \"POSTAL_CODE\": \"1528\",\n        \"CITY_NAME_LOCAL\": \"Абдовица\",\n        \"CITY_NAME_EN\": null,\n        \"COUNTY\": \"София\",\n        \"COUNTY_ID\": null,\n        \"COUNTY_EN\": null,\n        \"MUNICIPALITY\": \"Столична\",\n        \"STATE\": null,\n        \"STATE_EN\": null,\n        \"MANUAL_EDIT\": null,\n        \"RAPIDO_SITEID\": null\n    },\n    {\n        \"ID\": 24372,\n        \"POSTAL_CODE\": \"2932\",\n        \"CITY_NAME_LOCAL\": \"Абланица\",\n        \"CITY_NAME_EN\": \"Ablanitsa\",\n        \"COUNTY\": \"Благоевград\",\n        \"COUNTY_ID\": null,\n        \"COUNTY_EN\": \"Blagoevgrad\",\n        \"MUNICIPALITY\": \"Хаджидимово\",\n        \"STATE\": null,\n        \"STATE_EN\": null,\n        \"MANUAL_EDIT\": null,\n        \"RAPIDO_SITEID\": null\n    }\n]\n\n</code></pre>\n<p><strong>HTTP Errors</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not found data.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Unprocessable Entity. Wrong input data. Also returned when: <br />- countryId is 23 (Great Britain): {\"error\":\"Unsupported operation! Please, for Great Britain use the web service \"Cities Suggestions Web Service\"!\"} <br />- the filters match no records: {\"error\":\"Wrong params (country id, office id or country id)!\"}</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","get-cities","1"],"host":["api1","inout","bg"],"query":[{"key":"first","value":"1"},{"key":"skip","value":"0"},{"key":"paging","value":"0"}],"variable":[]}},"response":[],"_postman_id":"6af9032e-b67f-4620-9a1e-8ccc85126432"},{"name":"Counties_Romania_Web_Service_v1.0","id":"cc447c98-fc2d-4b57-8f97-294ac121c681","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api1.inout.bg/api/v1/get-counties/1","description":"<p>We offer you the ability to ask for the counties of Romania directly from your company's software or website by taking advantage of the \"Counties Romania Web Service\".</p>\n<p><strong>Requirements:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Restrictions</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/get-counties/{countryId}</td>\n<td>With this service, you can receive the counties in Romania.</td>\n<td>countryId must be 1 (Romania). Any other value returns HTTP 422 with {\"error\":\"Unavailable service for the chosen country!\"}.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: GET</strong></p>\n<p><strong>Authorization: Bearer API_TOKEN</strong></p>\n<p><strong>Examples:</strong></p>\n<p>Test environment\n<a href=\"https://test-api.inout.bg/api/v1/get-counties/1\">https://test-api.inout.bg/api/v1/get-counties/1</a></p>\n<p>Production environment\n<a href=\"https://api1.inout.bg/api/v1/get-counties/1\">https://api1.inout.bg/api/v1/get-counties/1</a></p>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>id</td>\n<td>ID of the county.</td>\n</tr>\n<tr>\n<td>abr</td>\n<td>County abbreviation.</td>\n</tr>\n<tr>\n<td>name</td>\n<td>County name.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"id\": 3,\n    \"abr\": \"AB\",\n    \"name\": \"Alba\"\n  },\n  {\n    \"id\": 4,\n    \"abr\": \"AR\",\n    \"name\": \"Arad\"\n  }\n]\n\n</code></pre>\n<p><strong>HTTP Errors</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not found data.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Unprocessable Entity. Wrong input data, or a country other than Romania was requested: {\"error\":\"Unavailable service for the chosen country!\"}.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","get-counties","1"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"cc447c98-fc2d-4b57-8f97-294ac121c681"},{"name":"Countries_Web_Service_v1.0","id":"4de65d90-9514-4113-83ad-9da4be89c1c6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api1.inout.bg/api/v1/get-countries","description":"<p>We offer you the ability to ask for countries directly from your company's software or website by taking advantage of the \"Countries Web Service\".</p>\n<p><strong>Requirements:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/get-countries</td>\n<td>With this service, you can receive the countries for which you can create shipments.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: GET</strong></p>\n<p><strong>Authorization: Bearer API_TOKEN</strong></p>\n<p><strong>Important</strong>: The returned list is specific to your account — it contains the countries covered by the couriers activated for your client account. If the list is empty, the service returns HTTP 404 with {\"error\":\"You do not have access to countries!\"} — in that case, please contact euShipments to activate couriers for your account.</p>\n<p><strong>Examples:</strong></p>\n<p>Test environment\n<a href=\"https://test-api.inout.bg/api/v1/get-countries\">https://test-api.inout.bg/api/v1/get-countries</a></p>\n<p>Production environment\n<a href=\"https://api1.inout.bg/api/v1/get-countries\">https://api1.inout.bg/api/v1/get-countries</a></p>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>ID</td>\n<td>ID of the country.</td>\n</tr>\n<tr>\n<td>NAME</td>\n<td>Country name.</td>\n</tr>\n<tr>\n<td>CYRILLIC_NAME</td>\n<td>The name of the country in Cyrillic.</td>\n</tr>\n<tr>\n<td>ISO_CODE</td>\n<td>Two-letter country code (ISO 3166-1 alpha-2). Use this value as countryIsoCode when creating shipments.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"ID\": 1,\n        \"NAME\": \"Romania\",\n        \"CYRILLIC_NAME\": \"Румъния\",\n        \"ISO_CODE\": \"RO\"\n    },\n    {\n        \"ID\": 2,\n        \"NAME\": \"Bulgaria\",\n        \"CYRILLIC_NAME\": \"България\",\n        \"ISO_CODE\": \"BG\"\n    },\n    {\n        \"ID\": 3,\n        \"NAME\": \"Hungary\",\n        \"CYRILLIC_NAME\": \"Унгария\",\n        \"ISO_CODE\": \"HU\"\n    }\n]\n\n</code></pre>\n<p><strong>HTTP Errors</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not found data. Returned with {\"error\":\"You do not have access to countries!\"} when no couriers are activated for your account — contact euShipments.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Unprocessable Entity. Wrong input data.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","get-countries"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"4de65d90-9514-4113-83ad-9da4be89c1c6"},{"name":"Courier_Offices_Web_Service_v1.2","event":[{"listen":"prerequest","script":{"id":"528d312e-8733-49bb-ad81-61e3f703e87b","exec":[""],"type":"text/javascript"}}],"id":"5e41fec5-745a-427c-9ad5-5869a9ff2a91","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api1.inout.bg/api/v1/offices-by-courier/{courierId}","description":"<p>We offer you the ability to ask for courier offices directly from your company's software or website by taking advantage of the \"Courier Offices Web Service\".</p>\n<p><strong>Requirements:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/offices-by-courier/{courierId}</td>\n<td>With this service, you can receive the offices (including automated parcel lockers/stations) for a chosen courier. Obtain the courierId from the Couriers Web Service.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: GET</strong></p>\n<p><strong>Authorization: Bearer API_TOKEN</strong></p>\n<p><strong>API Call Input Fields</strong></p>\n<p><strong>URL query parameters</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>per_page</td>\n<td>integer</td>\n<td>no</td>\n<td>min 50, max 1000</td>\n<td>Number of offices per page. Enables paginated mode — must be combined with the page parameter.</td>\n</tr>\n<tr>\n<td>page</td>\n<td>integer</td>\n<td>no</td>\n<td>min 1</td>\n<td>Page number. Enables paginated mode — must be combined with the per_page parameter.</td>\n</tr>\n<tr>\n<td>id</td>\n<td>integer</td>\n<td>no</td>\n<td>min 1</td>\n<td>Return a single office by its ID (the ID field from this same nomenclature).</td>\n</tr>\n</tbody>\n</table>\n</div><p>Without query parameters the service returns ALL offices of the courier in one response. For couriers with large office networks we recommend the paginated mode.</p>\n<p><strong>Examples:</strong></p>\n<p>All offices (test environment)\n<a href=\"https://test-api.inout.bg/api/v1/offices-by-courier/15\">https://test-api.inout.bg/api/v1/offices-by-courier/15</a></p>\n<p>All offices (production environment)\n<a href=\"https://api1.inout.bg/api/v1/offices-by-courier/15\">https://api1.inout.bg/api/v1/offices-by-courier/15</a></p>\n<p>Paginated\n<a href=\"https://api1.inout.bg/api/v1/offices-by-courier/15?per_page=100&amp;page=1\">https://api1.inout.bg/api/v1/offices-by-courier/15?per_page=100&amp;page=1</a></p>\n<p>Single office by ID\n<a href=\"https://api1.inout.bg/api/v1/offices-by-courier/15?id=1297\">https://api1.inout.bg/api/v1/offices-by-courier/15?id=1297</a></p>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>ID</td>\n<td>ID of the office. Use this value as recipient.officeId when creating a shipment to an office.</td>\n</tr>\n<tr>\n<td>CITY_ID</td>\n<td>The ID of the city where the office is located.</td>\n</tr>\n<tr>\n<td>COURIER_ID</td>\n<td>The ID of the courier.</td>\n</tr>\n<tr>\n<td>COURIER_OFFICE_ID</td>\n<td>The office ID in the subcontractor's (courier's) own nomenclature.</td>\n</tr>\n<tr>\n<td>OFFICE_NAME</td>\n<td>Name of the office.</td>\n</tr>\n<tr>\n<td>COURIER_OFFICE_CODE</td>\n<td>The office code in the subcontractor's (courier's) own nomenclature.</td>\n</tr>\n<tr>\n<td>CITY_NAME</td>\n<td>Name of the city where the office is located.</td>\n</tr>\n<tr>\n<td>ADDRESS</td>\n<td>Office address.</td>\n</tr>\n<tr>\n<td>LATITUDE</td>\n<td>Office latitude.</td>\n</tr>\n<tr>\n<td>LONGITUDE</td>\n<td>Office longitude.</td>\n</tr>\n<tr>\n<td>WORK_BEGIN</td>\n<td>Opening time of the office during the week.</td>\n</tr>\n<tr>\n<td>WORK_END</td>\n<td>Closing time of the office during the week.</td>\n</tr>\n<tr>\n<td>WORK_BEGIN_SATURDAY</td>\n<td>Opening time of the office on Saturday.</td>\n</tr>\n<tr>\n<td>WORK_END_SATURDAY</td>\n<td>Closing time of the office on Saturday.</td>\n</tr>\n<tr>\n<td>GROUP_CITY_ID</td>\n<td>ID of the city in the euShipments cities nomenclature (matches the ID field returned by the Cities web services).</td>\n</tr>\n<tr>\n<td>POST_CODE</td>\n<td>Zip code of the city. For Romania, postal codes are missing for some large cities.</td>\n</tr>\n<tr>\n<td>REGION</td>\n<td>Region. For some countries it is null — the nomenclature does not support data for the region.</td>\n</tr>\n<tr>\n<td>IS_STATION</td>\n<td>If true, the point is an automated parcel locker/station rather than a staffed office.</td>\n</tr>\n<tr>\n<td>COD_SUPPORT</td>\n<td>If true, cash on delivery is accepted at this point.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example (non-paginated / single office):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n        \"ID\": 1297,\n        \"CITY_ID\": 24392,\n        \"COURIER_ID\": 15,\n        \"COURIER_OFFICE_ID\": 1053,\n        \"OFFICE_NAME\": \"Айдемир\",\n        \"COURIER_OFFICE_CODE\": \"7538\",\n        \"CITY_NAME\": \"Айдемир\",\n        \"ADDRESS\": \"Айдемир кв. Деленките ул. София №7\",\n        \"LATITUDE\": \"44.1009192550187000\",\n        \"LONGITUDE\": \"27.1950400265455000\",\n        \"WORK_BEGIN\": \"09:00:00\",\n        \"WORK_END\": \"18:00:00\",\n        \"WORK_BEGIN_SATURDAY\": \"09:00:00\",\n        \"WORK_END_SATURDAY\": \"15:00:00\",\n        \"GROUP_CITY_ID\": 24392,\n        \"POST_CODE\": \"7538\",\n        \"REGION\": \"Силистра\",\n        \"IS_STATION\": false,\n        \"COD_SUPPORT\": true\n    },\n    {\n        \"ID\": 1298,\n        \"CITY_ID\": 24396,\n        \"COURIER_ID\": 15,\n        \"COURIER_OFFICE_ID\": 133,\n        \"OFFICE_NAME\": \"Айтос Автогара\",\n        \"COURIER_OFFICE_CODE\": \"8501\",\n        \"CITY_NAME\": \"Айтос\",\n        \"ADDRESS\": \"Айтос ул. Хаджи Димитър №31\",\n        \"LATITUDE\": \"42.7066729507548500\",\n        \"LONGITUDE\": \"27.2505099280334600\",\n        \"WORK_BEGIN\": \"09:00:00\",\n        \"WORK_END\": \"18:00:00\",\n        \"WORK_BEGIN_SATURDAY\": \"09:00:00\",\n        \"WORK_END_SATURDAY\": \"15:00:00\",\n        \"GROUP_CITY_ID\": 24396,\n        \"POST_CODE\": \"8500\",\n        \"REGION\": \"Бургас\",\n        \"IS_STATION\": false,\n        \"COD_SUPPORT\": true\n    }\n]\n\n</code></pre>\n<p><strong>Example (paginated, per_page + page):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"offices\": [\n        {\n            \"ID\": 1297,\n            \"CITY_ID\": 24392,\n            \"COURIER_ID\": 15,\n            \"...\": \"... same office fields as above ...\"\n        }\n    ],\n    \"pagination\": {\n        \"current_page\": 1,\n        \"per_page\": 100,\n        \"total\": 3456,\n        \"last_page\": 35,\n        \"from\": 1,\n        \"to\": 100,\n        \"has_more_pages\": true\n    }\n}\n\n</code></pre>\n<p><strong>HTTP Errors</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>No offices found for the courier, or the office requested with the id parameter does not exist ({\"error\":\"Office not found\"}).</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Validation error for the per_page, page or id parameters (paginated mode).</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n<tr>\n<td>503</td>\n<td>Invalid courierId (non-paginated mode).</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","offices-by-courier","{courierId}"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"5e41fec5-745a-427c-9ad5-5869a9ff2a91"}],"id":"c7752740-4a95-4806-b094-25428f6f83ff","_postman_id":"c7752740-4a95-4806-b094-25428f6f83ff","description":""},{"name":"Fulfilment documentation","item":[{"name":"Order_Creation_Web_Service-v1.2","id":"80425df5-1657-4670-8652-2e8fd17989e0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"testMode\": 0,\r\n    \"senderId\": 333,\r\n    \"courierId\": 15,\r\n    \"waybillAvailableDate\": \"2020-01-27\",\r\n    \"serviceName\": \"crossborder\",\r\n    \"recipient\": {\r\n        \"name\": \"Test User\",\r\n        \"cityId\": null,\r\n        \"countryIsoCode\": \"BG\",\r\n        \"cityName\": \"София\",\r\n        \"zipCode\": \"1000\",\r\n        \"region\": null,\r\n        \"officeId\": null,\r\n        \"officeCode\": null,\r\n        \"streetName\": \"test street\",\r\n        \"buildingNumber\": \"0\",\r\n        \"addressText\": \"additional text, address test\",\r\n        \"contactPerson\": \"Test User\",\r\n        \"phoneNumber\": \"+36000000000\",\r\n        \"email\": \"\"\r\n    },\r\n    \"awb\": {\r\n        \"parcels\": 1,\r\n        \"envelopes\": 0,\r\n        \"totalWeight\": 1.000,\r\n        \"declaredValue\": 0,\r\n        \"bankRepayment\": \"25.5\",\r\n        \"otherRepayment\": \"additional text for repayment\",\r\n        \"observations\": null,\r\n        \"openPackage\": false,\r\n        \"shipmentPayer\": \"sender\",\r\n        \"saturdayDelivery\": false,\r\n        \"referenceNumber\": \"000002\",\r\n        \"products\": \"test product test product1\",\r\n        \"fragile\": 1,\r\n        \"piecesInPack\": 5,\r\n        \"productsInfo\": \"1111,2222,3333,4444,5555\"\r\n    },\r\n    \"products\": [\r\n        {\r\n            \"refNumber\": \"33445\",\r\n            \"qty\": 3\r\n        },\r\n        {\r\n            \"refNumber\": \"3344\",\r\n            \"qty\": 4\r\n        }\r\n    ],\r\n    \"customsData\": {\r\n        \"dutyPaymentInfo\": \"DDU\",\r\n        \"customsValue\": \"35.50\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/fulfilment/create-order","description":"<p>We can now offer you the ability to ask order creation from your company's software or website by taking advantage of \"Order Creation Web Service\".</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/fulfilment/create-order</td>\n<td>Creating a order in our fulfilment system.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Method: POST\nAuthorization: Bearer API_TOKEN\nBody (JSON)</p>\n<p><strong>Example URLs:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>URL</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Test</td>\n<td><a href=\"https://test-api.inout.bg/api/v1/fulfilment/create-order\">https://test-api.inout.bg/api/v1/fulfilment/create-order</a></td>\n</tr>\n<tr>\n<td>Production</td>\n<td><a href=\"https://api1.inout.bg/api/v1/fulfilment/create-order\">https://api1.inout.bg/api/v1/fulfilment/create-order</a></td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Important!!!</strong>\nYou can upload orders only if the products from the orders are available (there is enough stock) in euShipments warehouse.</p>\n<p><strong>API Call Input Fields</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>parameter</strong></th>\n<th><strong>type</strong></th>\n<th><strong>required</strong></th>\n<th><strong>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>bool</td>\n<td>yes</td>\n<td></td>\n<td>if you want to use the API only for tests set this field to true. Applies only to the production environment. On the test environment, all shipments save on test env.</td>\n</tr>\n<tr>\n<td>senderId</td>\n<td>integer</td>\n<td>yes</td>\n<td>There must be a company with the selected ID.</td>\n<td>ID of company, you can receive it from the „Companies Web Service\".</td>\n</tr>\n<tr>\n<td>courierId</td>\n<td>integer</td>\n<td>no</td>\n<td>There must be a courier with the selected ID.</td>\n<td>ID of courier, you can receive it from the „Couriers Web Service\". If the field is omitted, the courier is assigned automatically by euShipments.</td>\n</tr>\n<tr>\n<td>waybillAvailableDate</td>\n<td>date</td>\n<td>yes</td>\n<td>From today up to 9 days ahead. Cannot be in the past and cannot be more than 9 days in the future.</td>\n<td>Date when the order should be processed.</td>\n</tr>\n<tr>\n<td>serviceName</td>\n<td>string</td>\n<td>no</td>\n<td>Must be an existing service name and must be offered by the selected courier.</td>\n<td>The service name must be one of the following:  <br />• crossborder  <br />• eushipmentsairexpress  <br />• eushipmentsglobal economy  <br />• eushipmentsglobal premium  <br />If the parameter is not present, the service is resolved automatically: the first service configured for the selected courier, otherwise the system default (crossborder).</td>\n</tr>\n<tr>\n<td>warehouseInfo</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>If set to true, the response also contains a warehouse object (see API Response below) with the name and country of the warehouse that will fulfil the order.</td>\n</tr>\n<tr>\n<td><strong>recipient</strong></td>\n<td>object</td>\n<td>yes</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>name</td>\n<td>string</td>\n<td>yes</td>\n<td>MaxLength: 100</td>\n<td>Name of recipient or company. Typically, both customer names (first name and last name) or company name are filled in.</td>\n</tr>\n<tr>\n<td>cityId</td>\n<td>integer</td>\n<td>no</td>\n<td>The parameter is mandatory if city and country data are not filled in. There must be a city with the selected ID.</td>\n<td>The ID of a city where the shipment needs to delivery. Obtain an ID from Cities resource. Please for more information, see Cities web service.</td>\n</tr>\n<tr>\n<td>countryIsoCode</td>\n<td>string</td>\n<td>no</td>\n<td>Mandatory whenever recipient.cityId is not sent. Uppercase ISO 3166-1 alpha-2 code (e.g. BG, RO, HU). Must be an existing country.</td>\n<td>Country ISO code.</td>\n</tr>\n<tr>\n<td>cityName</td>\n<td>string</td>\n<td>no</td>\n<td>Required field if city ID is not present. MaxLength: 100</td>\n<td>Recipient's city name e.g. Sofia.</td>\n</tr>\n<tr>\n<td>zipCode</td>\n<td>string</td>\n<td>no</td>\n<td>Required field if neither city ID nor region is present. MaxLength: 15</td>\n<td>Recipient's city zip code e.g. 1000.</td>\n</tr>\n<tr>\n<td>region</td>\n<td>string</td>\n<td>no</td>\n<td>Required for Romania. Required field if neither city ID nor zip code is present. MaxLength: 100</td>\n<td>Recipient's region e.g. София.</td>\n</tr>\n<tr>\n<td>officeId</td>\n<td>integer</td>\n<td>no</td>\n<td>There must be an office with the selected ID.</td>\n<td>Obtain an ID from City offices or Courier offices resource. Please see one of the two web services for more information. When sent, the shipment is created to the office and streetName is not required.</td>\n</tr>\n<tr>\n<td>officeCode</td>\n<td>string</td>\n<td>no</td>\n<td>There must be an office with the selected code.</td>\n<td>Obtain a COURIER OFFICE CODE from City offices or Courier offices resource. Please see one of the two web services for more information. When sent, the shipment is created to the office and streetName is not required.</td>\n</tr>\n<tr>\n<td>streetName</td>\n<td>string</td>\n<td>yes*</td>\n<td>Required unless recipient.officeId or recipient.officeCode is sent. MaxLength: 200</td>\n<td>name of the street, office address or office name - e.g. If you create a shipment to address - Main street or Main street 10. If you want to create a shipment to an office and not use the \"officeId\" or \"officeCode\", please add a keyword \"to office: \" to office name or office address (obtain information from \"offices address\" web service.) e.g. \" to office: Русе Николаевска\" or \" to office: Русе ж.к. ЦЮР ул. Николаевска №109\".</td>\n</tr>\n<tr>\n<td>buildingNumber</td>\n<td>string or number</td>\n<td>no</td>\n<td>MaxLength: 100</td>\n<td>Number of the street/building - e.g. 10. If the value is longer than 8 characters, only the first 8 characters are kept as building number and the rest is automatically appended to addressText after a \"|\" separator.</td>\n</tr>\n<tr>\n<td>addressText</td>\n<td>string</td>\n<td>no</td>\n<td>MaxLength: 300 (values longer than 100 characters are truncated to 100 when the order is stored)</td>\n<td>Additional address information – e.g. бл.25 вх.1 ет.3 ап.4 or bl.25 vh.1 et.3 ap.4 or another information for the address.</td>\n</tr>\n<tr>\n<td>contactPerson</td>\n<td>string</td>\n<td>no</td>\n<td>MaxLength: 100</td>\n<td>Contact person. Usually is the same as the name of recipient.</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>string</td>\n<td>yes</td>\n<td>MaxLength: 100</td>\n<td>Recipient's phone number. Required (a few country-specific exceptions exist where a default number is applied).</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>no</td>\n<td>Not validated.</td>\n<td>Recipient's email.</td>\n</tr>\n<tr>\n<td><strong>awb</strong></td>\n<td>object</td>\n<td>yes</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>parcels</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min: 0</td>\n<td>Number of parcels in the shipment.</td>\n</tr>\n<tr>\n<td>envelopes</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min: 0</td>\n<td>Number of envelopes in the shipment. The field is required but may be 0.</td>\n</tr>\n<tr>\n<td>totalWeight</td>\n<td>numeric</td>\n<td>yes</td>\n<td>Min: 0.01</td>\n<td>Total weight of the shipment in kg.</td>\n</tr>\n<tr>\n<td>declaredValue</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min: 0</td>\n<td>Insurance amount of the shipment.</td>\n</tr>\n<tr>\n<td>bankRepayment</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min: 0</td>\n<td>COD amount of the shipment. You can set to 0 if the shipment doesn't have a COD amount.</td>\n</tr>\n<tr>\n<td>otherRepayment</td>\n<td>string</td>\n<td>no</td>\n<td>MaxLength: 100</td>\n<td>Additional information to COD.</td>\n</tr>\n<tr>\n<td>observations</td>\n<td>string</td>\n<td>no</td>\n<td>MaxLength: 300</td>\n<td>Additional information about the shipment/products. (<strong>notes</strong>)</td>\n</tr>\n<tr>\n<td>openPackage</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Check up the shipment before pay. Not available for all countries.</td>\n</tr>\n<tr>\n<td>shipmentPayer</td>\n<td>string</td>\n<td>no</td>\n<td>ENUM: sender, recipient</td>\n<td>Who pays the shipment. Any other value is rejected with HTTP 400 and the message \"The recipient.shipmentPayer text must be sender or recipient.\".</td>\n</tr>\n<tr>\n<td>saturdayDelivery</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Saturday delivery. Not available for some countries.</td>\n</tr>\n<tr>\n<td><strong>referenceNumber</strong></td>\n<td>string</td>\n<td>yes</td>\n<td>MaxLength: 100</td>\n<td>Client reference number. Usually, the client put here the unique number of order from the site or unique order number of the content or invoice number. Helps for tracking and reporting.  <br /><strong>Important: The information in the field must be unique to avoid duplicate shipments!</strong></td>\n</tr>\n<tr>\n<td>referenceNumberDate</td>\n<td>date</td>\n<td>no</td>\n<td></td>\n<td>Date of the client order (reference number).</td>\n</tr>\n<tr>\n<td>products</td>\n<td>string</td>\n<td>no</td>\n<td>MaxLength: 1000</td>\n<td>The content of the shipment. e.g. product1 product2.</td>\n</tr>\n<tr>\n<td>fragile</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Marker whether the content is fragile. (fragile = 1 if the content is fragile)</td>\n</tr>\n<tr>\n<td>productsInfo</td>\n<td>string</td>\n<td>no</td>\n<td>MaxLength: 2000</td>\n<td>Аdditional product information.</td>\n</tr>\n<tr>\n<td>piecesInPack</td>\n<td>integer</td>\n<td>no</td>\n<td></td>\n<td>Products amount in one shipment. e.g If the shipment contain 5 products the field will be filled with 5.</td>\n</tr>\n<tr>\n<td>packages</td>\n<td>array of objects</td>\n<td>no</td>\n<td></td>\n<td>Physical packages of the shipment. Each element contains dimensions and weight (see below).</td>\n</tr>\n<tr>\n<td>packages.*.dimensions.width</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min: 0.1</td>\n<td>Package width in cm.</td>\n</tr>\n<tr>\n<td>packages.*.dimensions.height</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min: 0.1</td>\n<td>Package height in cm.</td>\n</tr>\n<tr>\n<td>packages.*.dimensions.length</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min: 0.1</td>\n<td>Package length in cm.</td>\n</tr>\n<tr>\n<td>packages.*.weight</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min: 0.001</td>\n<td>Package weight in kg.</td>\n</tr>\n<tr>\n<td>document</td>\n<td>object</td>\n<td>no</td>\n<td></td>\n<td>A document attached to the shipment.</td>\n</tr>\n<tr>\n<td>document.type</td>\n<td>string</td>\n<td>no</td>\n<td>ENUM: invoice</td>\n<td>Type of the document.</td>\n</tr>\n<tr>\n<td>document.content</td>\n<td>string</td>\n<td>no</td>\n<td></td>\n<td>The document content as a base64 encoded string.</td>\n</tr>\n<tr>\n<td>document.format</td>\n<td>string</td>\n<td>no</td>\n<td>ENUM: pdf</td>\n<td>Format of the document.</td>\n</tr>\n<tr>\n<td><strong>products</strong></td>\n<td>Array of objects</td>\n<td>no</td>\n<td></td>\n<td>The content of the shipment, described as individual products. Not enforced by the API as required, but you should send either products or boxes so the order has a documented content.</td>\n</tr>\n<tr>\n<td>refNumber</td>\n<td>string</td>\n<td>yes</td>\n<td></td>\n<td>Product reference number. That is your product code or barcode.</td>\n</tr>\n<tr>\n<td>qty</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min: 1</td>\n<td>Product quantity.</td>\n</tr>\n<tr>\n<td>price</td>\n<td>numeric</td>\n<td>no</td>\n<td></td>\n<td>Unit price of the product (with VAT).  <br /><strong>Important:</strong> for senders with a cash-receipt configuration for Econt or Speedy, the sum of price × qty over all product lines must equal awb.bankRepayment, otherwise the order is rejected.</td>\n</tr>\n<tr>\n<td>priceWithoutVat</td>\n<td>numeric</td>\n<td>no</td>\n<td></td>\n<td>Unit price of the product without VAT.</td>\n</tr>\n<tr>\n<td><strong>boxes</strong></td>\n<td>Array of objects</td>\n<td>no</td>\n<td></td>\n<td>Alternative to the flat products array – products grouped in boxes.</td>\n</tr>\n<tr>\n<td>refNumberBox</td>\n<td>string</td>\n<td>yes</td>\n<td></td>\n<td>Reference number of the box. Required for every box element.</td>\n</tr>\n<tr>\n<td>items</td>\n<td>Array of objects</td>\n<td>yes</td>\n<td>Min: 1 element</td>\n<td>Products in the box. Each item contains refNumber (string, required), qty (integer, required, min 1), price (numeric, optional) and priceWithoutVat (numeric, optional) with the same meaning as in the products array.</td>\n</tr>\n<tr>\n<td><strong>courierRequest</strong></td>\n<td>object</td>\n<td>no</td>\n<td></td>\n<td>Courier pickup request.</td>\n</tr>\n<tr>\n<td>courierRequest.date</td>\n<td>date</td>\n<td>no</td>\n<td>Today or later.</td>\n<td>Date of the courier pickup request.</td>\n</tr>\n<tr>\n<td>courierRequest.timeFrom</td>\n<td>time</td>\n<td>no</td>\n<td>Format: H:i</td>\n<td>Earliest pickup time.</td>\n</tr>\n<tr>\n<td>courierRequest.timeTo</td>\n<td>time</td>\n<td>no</td>\n<td>Format: H:i</td>\n<td>Latest pickup time.</td>\n</tr>\n<tr>\n<td><strong>returnLabel</strong></td>\n<td>object</td>\n<td>no</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>returnLabel.nDaysValid</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min: 0</td>\n<td>Number of days the return label is valid.</td>\n</tr>\n<tr>\n<td>courierReturnAWB</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>If set to true, a courier return AWB is created for the shipment.</td>\n</tr>\n<tr>\n<td><strong>sender</strong></td>\n<td>object</td>\n<td>no</td>\n<td></td>\n<td>Sender contact data override.</td>\n</tr>\n<tr>\n<td>sender.name</td>\n<td>string</td>\n<td>no</td>\n<td>MaxLength: 255</td>\n<td>Sender name.</td>\n</tr>\n<tr>\n<td>sender.phoneNumber</td>\n<td>string</td>\n<td>no</td>\n<td>MaxLength: 20</td>\n<td>Sender phone number.</td>\n</tr>\n<tr>\n<td>sender.email</td>\n<td>email</td>\n<td>no</td>\n<td></td>\n<td>Sender email.</td>\n</tr>\n<tr>\n<td>sender.econtCODAggrement</td>\n<td>string</td>\n<td>no</td>\n<td>MaxLength: 20</td>\n<td>Econt COD agreement number.</td>\n</tr>\n<tr>\n<td><strong>invoice</strong></td>\n<td>object</td>\n<td>no</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>invoice.number</td>\n<td>string</td>\n<td>no</td>\n<td>MaxLength: 30</td>\n<td>Invoice number.</td>\n</tr>\n<tr>\n<td>invoice.issueDate</td>\n<td>date</td>\n<td>no</td>\n<td></td>\n<td>Invoice issue date.</td>\n</tr>\n<tr>\n<td><strong>customsData</strong></td>\n<td>object</td>\n<td>no</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>dutyPaymentInfo</td>\n<td>string</td>\n<td>no</td>\n<td>Mandatory field for countries outside the European Union.  <br />ENUM: DDU (Delivery duty unpaid), DDP (Delivery duty paid)</td>\n<td>dutyPaymentInfo</td>\n</tr>\n<tr>\n<td>customsValue</td>\n<td>numeric 15.2</td>\n<td>no</td>\n<td>Mandatory field for countries outside the European Union.</td>\n<td>customsValue</td>\n</tr>\n<tr>\n<td><strong>customs_declaration</strong></td>\n<td>object</td>\n<td>no</td>\n<td></td>\n<td>Customs declaration data for non-EU destinations. When the block is present, its products and exportData parts are required.</td>\n</tr>\n<tr>\n<td>customs_declaration.products</td>\n<td>Array of objects</td>\n<td>yes*</td>\n<td>Min: 1 element. Required when customs_declaration is present.</td>\n<td>Declared products.</td>\n</tr>\n<tr>\n<td>customs_declaration.products.*.description</td>\n<td>string</td>\n<td>yes</td>\n<td>MaxLength: 255</td>\n<td>Product description.</td>\n</tr>\n<tr>\n<td>customs_declaration.products.*.taric</td>\n<td>string</td>\n<td>yes</td>\n<td>MaxLength: 10</td>\n<td>TARIC code.</td>\n</tr>\n<tr>\n<td>customs_declaration.products.*.base_value</td>\n<td>numeric</td>\n<td>yes</td>\n<td>Min: 0.01</td>\n<td>Declared value of the product.</td>\n</tr>\n<tr>\n<td>customs_declaration.products.*.quantity</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min: 1</td>\n<td>Declared quantity.</td>\n</tr>\n<tr>\n<td>customs_declaration.products.*.weight</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min: 1</td>\n<td>Declared weight.</td>\n</tr>\n<tr>\n<td>customs_declaration.products.*.country_of_origin</td>\n<td>string</td>\n<td>yes</td>\n<td>Uppercase ISO 3166-1 alpha-2 code.</td>\n<td>Country of origin.</td>\n</tr>\n<tr>\n<td>customs_declaration.products.*.client_ref</td>\n<td>string</td>\n<td>yes</td>\n<td>MaxLength: 100</td>\n<td>Client reference of the product.</td>\n</tr>\n<tr>\n<td>customs_declaration.exportData</td>\n<td>object</td>\n<td>yes*</td>\n<td>Required when customs_declaration is present.</td>\n<td>Export data.</td>\n</tr>\n<tr>\n<td>customs_declaration.exportData.country_of_export</td>\n<td>string</td>\n<td>yes</td>\n<td>Uppercase ISO 3166-1 alpha-2 code.</td>\n<td>Country of export.</td>\n</tr>\n<tr>\n<td>customs_declaration.exportData.declaration_country</td>\n<td>string</td>\n<td>yes</td>\n<td>Uppercase ISO 3166-1 alpha-2 code.</td>\n<td>Country where the declaration is submitted.</td>\n</tr>\n<tr>\n<td>customs_declaration.exportData.ioss_number</td>\n<td>string</td>\n<td>yes*</td>\n<td>MaxLength: 15. Required when customs_declaration is present (optional for some couriers).</td>\n<td>IOSS number.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>orderId</td>\n<td>ID of order.</td>\n</tr>\n<tr>\n<td>code</td>\n<td>HTTP status code.</td>\n</tr>\n<tr>\n<td>error</td>\n<td>A field that contains the text from a possible error while executing the web service from the server-side.</td>\n</tr>\n<tr>\n<td>warehouse</td>\n<td>Returned only when warehouseInfo = true is sent. Object with name and country of the warehouse that will fulfil the order (null on error).</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"orderId\": 745770,\n    \"error\": false,\n    \"code\": 200\n}\n\n</code></pre>\n<p><strong>HTTP Errors:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>The order created successfully.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request. Returned also for an invalid awb.shipmentPayer value: \"The recipient.shipmentPayer text must be sender or recipient.\"</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not found record.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Wrong params.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","fulfilment","create-order"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"80425df5-1657-4670-8652-2e8fd17989e0"},{"name":"Attach_PDF_Files_Web_Service-v1.0","id":"da39c835-e560-43b0-bdf1-4532d76ba0b0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n  \"testMode\": false,\n  \"orderId\": null,\n  \"referenceNumber\": \"0000026\",\n  \"files\": [\n    {\n      \"base64Attached\": \"base64 string\"\n    }\n  ]\n}\n","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/fulfilment/attach-pdf-files","description":"<p>We can now offer you the ability to attach PDF file (invoice) from your company's software or website by taking advantage of \"Attach PDF Files Web Service\".</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/fulfilment/attach-pdf-files</td>\n<td>You can attach files to your order.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Method: POST\nAuthorization: Bearer API_TOKEN\nBody (JSON)</p>\n<p><strong>Example URLs:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>URL</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Test</td>\n<td><a href=\"https://test-api.inout.bg/api/v1/fulfilment/attach-pdf-files\">https://test-api.inout.bg/api/v1/fulfilment/attach-pdf-files</a></td>\n</tr>\n<tr>\n<td>Production</td>\n<td><a href=\"https://api1.inout.bg/api/v1/fulfilment/attach-pdf-files\">https://api1.inout.bg/api/v1/fulfilment/attach-pdf-files</a></td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Important!!!</strong>\nFiles can be attached only <strong>before the AWB is generated</strong> for the order. Once the order already has an AWB, the order is no longer found by this service and the request returns HTTP 422 (see below). Pre-AWB orders are also rejected with the error \"For specified order, you can not add documents!\".</p>\n<p><strong>API Call Input Fields</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>parameter</strong></th>\n<th><strong>type</strong></th>\n<th><strong>required</strong></th>\n<th><strong>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>bool</td>\n<td>yes</td>\n<td></td>\n<td>if you want to use the API only for tests set this field to true. Applies only to the production environment. On the test environment, all shipments save on test env.</td>\n</tr>\n<tr>\n<td>orderId</td>\n<td>integer</td>\n<td>no</td>\n<td>Required if the reference number not present.</td>\n<td>ID of order.</td>\n</tr>\n<tr>\n<td>referenceNumber</td>\n<td>string</td>\n<td>no</td>\n<td>MaxLength: 100</td>\n<td>Reference number (usually the reference number is the order number from your system.)</td>\n</tr>\n<tr>\n<td><strong>files</strong></td>\n<td>array</td>\n<td>yes</td>\n<td><strong>Max: 1 element per request.</strong></td>\n<td>Array with the files to attach. To attach more than one file, send a separate request for each file.</td>\n</tr>\n<tr>\n<td>base64Attached</td>\n<td>string</td>\n<td>yes</td>\n<td>The decoded content must be a real PDF file (the file signature is validated). If the content is not a PDF, the request fails with \"The file must be in pdf format!\".</td>\n<td>The base64 formatted string.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example (request body):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"testMode\": false,\n  \"orderId\": null,\n  \"referenceNumber\": \"0000026\",\n  \"files\": [\n    {\n      \"base64Attached\": \"base64 string\"\n    }\n  ]\n}\n\n</code></pre>\n<p><strong>API Response (Output Fields)</strong></p>\n<p>The response is always a <strong>JSON array</strong> with one object per processed file:</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>error</td>\n<td>false on success, or the text of the error while executing the web service from the server-side.</td>\n</tr>\n<tr>\n<td>orderId</td>\n<td>ID of order.</td>\n</tr>\n<tr>\n<td>referenceNumber</td>\n<td>Client reference number. (order number, invoice number or other unique number)</td>\n</tr>\n<tr>\n<td>pdfId</td>\n<td>The ID for your attached pdf (null on error).</td>\n</tr>\n<tr>\n<td>pdfCode</td>\n<td>The code for your attached pdf (null on error).</td>\n</tr>\n<tr>\n<td>code</td>\n<td>HTTP status code for this file.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example (success):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"error\": false,\n    \"orderId\": 745770,\n    \"referenceNumber\": \"0000026\",\n    \"pdfId\": 1024,\n    \"pdfCode\": \"5420122-333-1\",\n    \"code\": 200\n  }\n]\n\n</code></pre>\n<p><strong>Example (order not found — returned with HTTP status 422):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"error\": \"Not found order with the specified number!\",\n    \"orderId\": 123,\n    \"referenceNumber\": \"0000026\",\n    \"pdfId\": null,\n    \"pdfCode\": null,\n    \"code\": 422\n  }\n]\n\n</code></pre>\n<p><strong>HTTP Errors:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>The pdf files added successfully.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Wrong params / Not found order with the specified number (the order does not exist, is not yours, or already has a generated AWB).</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized. Returned also when the file content is not a valid PDF (\"The file must be in pdf format!\") and when documents cannot be added to the specified order (\"For specified order, you can not add documents!\").</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","fulfilment","attach-pdf-files"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"da39c835-e560-43b0-bdf1-4532d76ba0b0"},{"name":"Orders_History_Web_Service-v1.0","id":"4c9d4869-381e-4ce1-94bd-677b76bd947b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n\t\"testMode\": 0,\r\n\t\"orders\": [\r\n\t\t{\r\n\t\t\t\"refNum\": \"Order #320\"\r\n\t\t}, \r\n\t\t{\r\n\t\t\t\"refNum\": \"123\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"refNum\": \"TEST488\"\r\n\t\t},\r\n\t\t{\r\n\t\t\t\"refNum\": \"55555555555555555555\"\r\n\t\t}\r\n\t]\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/fulfilment/orders-history","description":"<p>We can now offer you the ability to receive statuses history by order data from your company's software or website by taking advantage of \"Orders History Web Service\".</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/fulfilment/orders-history</td>\n<td>Receiving the orders information.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Method: POST\nAuthorization: Bearer API_TOKEN\nBody (JSON)</p>\n<p><strong>Example URLs:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>URL</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Test</td>\n<td><a href=\"https://test-api.inout.bg/api/v1/fulfilment/orders-history\">https://test-api.inout.bg/api/v1/fulfilment/orders-history</a></td>\n</tr>\n<tr>\n<td>Production</td>\n<td><a href=\"https://api1.inout.bg/api/v1/fulfilment/orders-history\">https://api1.inout.bg/api/v1/fulfilment/orders-history</a></td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>API Call Input Fields</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>parameter</strong></th>\n<th><strong>type</strong></th>\n<th><strong>required</strong></th>\n<th><strong>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>bool</td>\n<td>yes</td>\n<td></td>\n<td>if you want to use the API only for tests set this field to true. Applies only to the production environment. On the test environment, all shipments save on test env.</td>\n</tr>\n<tr>\n<td><strong>orders</strong></td>\n<td>array</td>\n<td>yes</td>\n<td>1 to 100 elements.</td>\n<td>Array with the orders you want to check.</td>\n</tr>\n<tr>\n<td>refNum</td>\n<td>string</td>\n<td>no (nullable)</td>\n<td></td>\n<td>Reference number of the order. If the value is missing or no order with this reference number exists, the response contains a \"not found\" entry for it (see the example below).</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"testMode\": 0,\n    \"orders\": [\n        {\n            \"refNum\": \"5420122\"\n        }, \n        {\n            \"refNum\": \"21555\"\n        },\n        {\n            \"refNum\": \"TEST488\"\n        },\n        {\n            \"refNum\": \"55555555555555555555\"\n        }\n    ]\n}\n\n</code></pre>\n<p><strong>API Response (Output Fields)</strong></p>\n<p>The response is a JSON array with one object per requested order:</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>refNum</td>\n<td>Order reference number.</td>\n</tr>\n<tr>\n<td>awb</td>\n<td>AWB number.</td>\n</tr>\n<tr>\n<td>newReturnNumber</td>\n<td>Return AWB number, when a return shipment has been created for the order (null otherwise).</td>\n</tr>\n<tr>\n<td>error</td>\n<td>A field that contains the text from a possible error while executing the web service from the server-side.</td>\n</tr>\n<tr>\n<td>errorCode</td>\n<td>Error code if it is from our server.</td>\n</tr>\n<tr>\n<td>statusesHistory</td>\n<td>Array with statuses history.</td>\n</tr>\n<tr>\n<td>items</td>\n<td>Array with the order items. Each item contains refNumber (product reference number), sn (serial number) and qty (quantity).</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Shipment statuses</strong> (current as of July 2026, generated from the live system):</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>ID</strong></th>\n<th><strong>Status</strong></th>\n<th><strong>Final Status</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1</td>\n<td>On delivery</td>\n<td>No</td>\n</tr>\n<tr>\n<td>2</td>\n<td>In transit</td>\n<td>No</td>\n</tr>\n<tr>\n<td>3</td>\n<td>Delivered</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>4</td>\n<td>Returned</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>5</td>\n<td>In the office</td>\n<td>No</td>\n</tr>\n<tr>\n<td>6</td>\n<td>COD paid</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>7</td>\n<td>New</td>\n<td>No</td>\n</tr>\n<tr>\n<td>8</td>\n<td>Cancelled</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>11</td>\n<td>Stockout</td>\n<td>No</td>\n</tr>\n<tr>\n<td>13</td>\n<td>Lost shipment</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>14</td>\n<td>Redirected</td>\n<td>No</td>\n</tr>\n<tr>\n<td>15</td>\n<td>Deleted</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>16</td>\n<td>Warehouse Ruse</td>\n<td>No</td>\n</tr>\n<tr>\n<td>17</td>\n<td>Returning</td>\n<td>No</td>\n</tr>\n<tr>\n<td>18</td>\n<td>Scanned Waybill</td>\n<td>No</td>\n</tr>\n<tr>\n<td>19</td>\n<td>Packed</td>\n<td>No</td>\n</tr>\n<tr>\n<td>20</td>\n<td>Information received</td>\n<td>No</td>\n</tr>\n<tr>\n<td>21</td>\n<td>Awaiting pickup</td>\n<td>No</td>\n</tr>\n<tr>\n<td>22</td>\n<td>Insufficient data - AWB not created</td>\n<td>No</td>\n</tr>\n<tr>\n<td>23</td>\n<td>Information sent to warehouse</td>\n<td>No</td>\n</tr>\n<tr>\n<td>24</td>\n<td>Compensation paid</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>25</td>\n<td>Claim opened</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>26</td>\n<td>Warehouse</td>\n<td>No</td>\n</tr>\n<tr>\n<td>27</td>\n<td>Damaged shipment</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>28</td>\n<td>PreAlert</td>\n<td>No</td>\n</tr>\n<tr>\n<td>29</td>\n<td>Destroyed</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>30</td>\n<td>Warehouse Budapest</td>\n<td>No</td>\n</tr>\n<tr>\n<td>31</td>\n<td>Lastmile Accept</td>\n<td>No</td>\n</tr>\n<tr>\n<td>32</td>\n<td>Warehouse Sofia</td>\n<td>No</td>\n</tr>\n<tr>\n<td>33</td>\n<td>Warehouse Zagreb</td>\n<td>No</td>\n</tr>\n<tr>\n<td>34</td>\n<td>Returned to Warehouse</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>35</td>\n<td>Rejected by courier</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>36</td>\n<td>Returned to Client</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>37</td>\n<td>Оn hold</td>\n<td>No</td>\n</tr>\n<tr>\n<td>38</td>\n<td>Cancel</td>\n<td>No</td>\n</tr>\n<tr>\n<td>39</td>\n<td>Warehouse Oradea</td>\n<td>No</td>\n</tr>\n<tr>\n<td>40</td>\n<td>Wrong recipient data</td>\n<td>No</td>\n</tr>\n<tr>\n<td>41</td>\n<td>Linhaul transit</td>\n<td>No</td>\n</tr>\n<tr>\n<td>42</td>\n<td>Product returned to stock</td>\n<td>Yes</td>\n</tr>\n<tr>\n<td>43</td>\n<td>Insufficient data</td>\n<td>No</td>\n</tr>\n<tr>\n<td>44</td>\n<td>Unsuccessful delivery attempt</td>\n<td>No</td>\n</tr>\n<tr>\n<td>45</td>\n<td>Warehouse Senec</td>\n<td>No</td>\n</tr>\n<tr>\n<td>46</td>\n<td>Warehouse Budapest E</td>\n<td>No</td>\n</tr>\n<tr>\n<td>47</td>\n<td>Warehouse Pickup</td>\n<td>No</td>\n</tr>\n<tr>\n<td>48</td>\n<td>Warehouse Webshippy</td>\n<td>No</td>\n</tr>\n<tr>\n<td>49</td>\n<td>Linehaul loading</td>\n<td>No</td>\n</tr>\n<tr>\n<td>50</td>\n<td>Warehouse Ljubljana</td>\n<td>No</td>\n</tr>\n<tr>\n<td>51</td>\n<td>Picked up</td>\n<td>No</td>\n</tr>\n<tr>\n<td>52</td>\n<td>Search cancelled</td>\n<td>No</td>\n</tr>\n<tr>\n<td>53</td>\n<td>Underaudit</td>\n<td>No</td>\n</tr>\n<tr>\n<td>54</td>\n<td>COD Blocked by Authorities</td>\n<td>No</td>\n</tr>\n<tr>\n<td>55</td>\n<td>Loaded hub Ruse (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>56</td>\n<td>Loaded hub Sofia (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>57</td>\n<td>Loaded hub Oradea (RO)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>58</td>\n<td>Loaded hub Zagreb (HR)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>59</td>\n<td>Loaded hub Senec (SK)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>60</td>\n<td>Unloaded hub Ruse (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>61</td>\n<td>Unloaded hub Sofia (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>62</td>\n<td>Unloaded hub Oradea (RO)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>63</td>\n<td>Unloaded hub Zagreb (HR)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>64</td>\n<td>Unloaded hub Senec (SK)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>65</td>\n<td>Loaded hub Ljubljana (SI)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>66</td>\n<td>Unloaded hub Ljubljana (SI)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>67</td>\n<td>Under investigation</td>\n<td>No</td>\n</tr>\n<tr>\n<td>68</td>\n<td>Warehouse Bolzano</td>\n<td>No</td>\n</tr>\n<tr>\n<td>69</td>\n<td>Loaded hub Bolzano (IT)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>70</td>\n<td>Unloaded hub Bolzano (IT)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>71</td>\n<td>Warehouse Castellbisbal</td>\n<td>No</td>\n</tr>\n<tr>\n<td>72</td>\n<td>Loaded hub Castellbisbal (ES)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>73</td>\n<td>Unloaded hub Castellbisbal (ES)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>74</td>\n<td>Repackaged</td>\n<td>No</td>\n</tr>\n<tr>\n<td>75</td>\n<td>Warehouse Burgas</td>\n<td>No</td>\n</tr>\n<tr>\n<td>76</td>\n<td>Loaded hub Burgas (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>77</td>\n<td>Unloaded hub Burgas (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>78</td>\n<td>Loaded hub Buda (HU)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>79</td>\n<td>Unloaded hub Buda (HU)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>80</td>\n<td>Warehouse Vienna</td>\n<td>No</td>\n</tr>\n<tr>\n<td>81</td>\n<td>Loaded hub Vienna (AT)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>82</td>\n<td>Unloaded hub Vienna (AT)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>86</td>\n<td>Warehouse Montana</td>\n<td>No</td>\n</tr>\n<tr>\n<td>87</td>\n<td>Loaded hub Montana (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>88</td>\n<td>Unloaded hub Montana (BG)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>89</td>\n<td>Warehouse Istanbul</td>\n<td>No</td>\n</tr>\n<tr>\n<td>90</td>\n<td>Loaded hub Istanbul (TR)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>91</td>\n<td>Unloaded hub Istanbul (TR)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>92</td>\n<td>Loaded hub Budapest (HU)</td>\n<td>No</td>\n</tr>\n<tr>\n<td>93</td>\n<td>Unloaded hub Budapest (HU)</td>\n<td>No</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>StatusesHistory (Data Structure)</strong></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>ID</td>\n<td>Record identifier.</td>\n</tr>\n<tr>\n<td>STATUS</td>\n<td>Status text (e.g. In Transit, On delivery etc)</td>\n</tr>\n<tr>\n<td>DATE</td>\n<td>Status date</td>\n</tr>\n<tr>\n<td>DATE_CREATED</td>\n<td>The date the record was created</td>\n</tr>\n<tr>\n<td>COMMENT</td>\n<td>The name of the status in the native language for every country.</td>\n</tr>\n<tr>\n<td>PARTNER_VOUCHER</td>\n<td>Partner voucher / last-mile tracking number related to the status record (null if not applicable).</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"refNum\": \"5420122\",\n    \"awb\": null,\n    \"newReturnNumber\": null,\n    \"error\": null,\n    \"errorCode\": null,\n    \"statusesHistory\": [\n      {\n        \"ID\": 26332,\n        \"STATUS\": \"Information received\",\n        \"DATE\": \"2020-03-06 10:47:18\",\n        \"DATE_CREATED\": \"2020-03-06 10:47:18\",\n        \"COMMENT\": null,\n        \"PARTNER_VOUCHER\": null\n      }\n    ],\n    \"items\": [\n      {\n        \"refNumber\": \"ref-test-54202\",\n        \"sn\": null,\n        \"qty\": 2\n      }\n    ]\n  },\n  {\n    \"refNum\": \"21555\",\n    \"awb\": \"00228876896\",\n    \"newReturnNumber\": \"00228976899\",\n    \"error\": null,\n    \"errorCode\": null,\n    \"statusesHistory\": [\n      {\n        \"ID\": 26332,\n        \"STATUS\": \"Information received\",\n        \"DATE\": \"2020-03-06 10:47:18\",\n        \"DATE_CREATED\": \"2020-03-06 10:47:18\",\n        \"COMMENT\": null,\n        \"PARTNER_VOUCHER\": null\n      }\n    ],\n    \"items\": [\n      {\n        \"refNumber\": \"ref-test-54201\",\n        \"sn\": \"SN0001234\",\n        \"qty\": 1\n      }\n    ]\n  },\n  {\n    \"refNum\": \"TEST488\",\n    \"awb\": null,\n    \"error\": \"Not found order with specified reference number!\",\n    \"errorCode\": 404,\n    \"statusesHistory\": [],\n    \"items\": []\n  },\n  {\n    \"refNum\": \"55555555555555555555\",\n    \"awb\": null,\n    \"error\": \"Not found order with specified reference number!\",\n    \"errorCode\": 404,\n    \"statusesHistory\": [],\n    \"items\": []\n  }\n]\n\n</code></pre>\n<p><strong>HTTP Errors:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Order information returned successfully.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not found record.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Wrong params.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","fulfilment","orders-history"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"4c9d4869-381e-4ce1-94bd-677b76bd947b"},{"name":"Product_Creation_Web_Service-v1.1","id":"397294d1-a87b-4a48-a9d9-6d7c3418a86b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"testMode\": 0,\r\n    \"companyId\": 333,\r\n    \"product\": {\r\n        \"name\": \"test product\",\r\n        \"barcode\": \"bb-test-54202\",\r\n        \"refNumber\": \"ref-test-54202\",\r\n        \"barcodeType\": \"EAN-13\",\r\n        \"description\": \"test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test\",\r\n        \"length\": 20.5,\r\n        \"width\": 20.5,\r\n        \"height\": 20.5,\r\n        \"weight\": 2.2,\r\n        \"hsCode\": \"640399.30.00\"\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/fulfilment/create-product","description":"<p>We can now offer you the ability to ask product creation from your company's software or website by taking advantage of \"Product Creation Web Service\".</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/fulfilment/create-product</td>\n<td>Creating a product in our fulfilment system.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Method: POST\nAuthorization: Bearer API_TOKEN\nBody (JSON)</p>\n<p><strong>Example URLs:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>URL</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Test</td>\n<td><a href=\"https://test-api.inout.bg/api/v1/fulfilment/create-product\">https://test-api.inout.bg/api/v1/fulfilment/create-product</a></td>\n</tr>\n<tr>\n<td>Production</td>\n<td><a href=\"https://api1.inout.bg/api/v1/fulfilment/create-product\">https://api1.inout.bg/api/v1/fulfilment/create-product</a></td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>API Call Input Fields</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>parameter</strong></th>\n<th><strong>type</strong></th>\n<th><strong>required</strong></th>\n<th><strong>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>bool</td>\n<td>yes</td>\n<td></td>\n<td>if you want to use the API only for tests set this field to true. Applies only to the production environment. On the test environment, all shipments save on test env.</td>\n</tr>\n<tr>\n<td>companyId</td>\n<td>integer</td>\n<td>yes</td>\n<td></td>\n<td>ID of company, you can receive it from the „Companies Web Service\".</td>\n</tr>\n<tr>\n<td><strong>product</strong></td>\n<td>object</td>\n<td>yes</td>\n<td></td>\n<td></td>\n</tr>\n<tr>\n<td>name</td>\n<td>string</td>\n<td>yes</td>\n<td>MaxLength: 200</td>\n<td>Product name.</td>\n</tr>\n<tr>\n<td>barcode</td>\n<td>string</td>\n<td>yes</td>\n<td>MaxLength: 50</td>\n<td>Product barcode e.g - 5439636114211.</td>\n</tr>\n<tr>\n<td>refNumber</td>\n<td>string</td>\n<td>yes</td>\n<td>MaxLength: 100</td>\n<td>Product reference number.</td>\n</tr>\n<tr>\n<td>description</td>\n<td>text</td>\n<td>no</td>\n<td>MaxLength: 500</td>\n<td>Product description.</td>\n</tr>\n<tr>\n<td>length</td>\n<td>numeric(15.2)</td>\n<td>yes</td>\n<td>Min: 0.1, Max: 999</td>\n<td>Product length in cm.</td>\n</tr>\n<tr>\n<td>width</td>\n<td>numeric(15.2)</td>\n<td>yes</td>\n<td>Min: 0.1, Max: 999</td>\n<td>Product width in cm.</td>\n</tr>\n<tr>\n<td>height</td>\n<td>numeric(15.2)</td>\n<td>yes</td>\n<td>Min: 0.1, Max: 999</td>\n<td>Product height in cm.</td>\n</tr>\n<tr>\n<td>weight</td>\n<td>numeric(15.2)</td>\n<td>yes</td>\n<td>Min: 0.01, Max: 999</td>\n<td>Product weight in kg.</td>\n</tr>\n<tr>\n<td>hsCode</td>\n<td>string</td>\n<td>no</td>\n<td></td>\n<td>HS Code. Stored as sent; not validated by the application.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Important!</strong>\nThe barcode is checked across our entire system, not only among your own products. If the barcode you send is already used by another product (any company), the request is rejected with a 422 error (see below) and no product is created. The reference number (refNumber), on the other hand, is checked only within your own company: sending a refNumber that already exists for your company is also rejected with a 422 error, so resending the same create-product request never creates a duplicate product for the same company.\nIn the rare case a barcode passes the initial uniqueness check but still collides at database level (e.g. a race condition), the product is created anyway, just without a barcode attached.</p>\n<p><strong>Example</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"testMode\": true,\n    \"companyId\": 332,\n    \"product\": {\n        \"name\": \"test product\",\n        \"barcode\": \"bb-test-54202\",\n        \"refNumber\": \"ref-test-54202\",\n        \"description\": \"test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test decsription test\",\n        \"length\": 20.5,\n        \"width\": 20.5,\n        \"height\": 20.5,\n        \"weight\": 2.2,\n        \"hsCode\": \"640399.30.00\"\n    }\n}\n\n</code></pre>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>productId</td>\n<td>ID of the created product (null on error).</td>\n</tr>\n<tr>\n<td>error</td>\n<td>false on success, or the text of the error while executing the web service from the server-side.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"productId\": 85,\n  \"error\": false\n}\n\n</code></pre>\n<p><strong>HTTP Errors:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>201</td>\n<td>The product was created successfully.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Wrong params, or duplicate barcode: {\"productId\": null, \"error\": \"This barcode is not unique for our system: ()\"}, or duplicate reference number: {\"productId\": null, \"error\": \"The product with reference number  already exists. The reference number must be a unique value.\"}</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","fulfilment","create-product"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"397294d1-a87b-4a48-a9d9-6d7c3418a86b"},{"name":"Booking_Request_Creation_Web_Service-v1.0","id":"63d1df5a-a6bd-4080-84c6-0db02332331c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"testMode\": true,\r\n    \"companyId\": 332,\r\n    \"warehouseId\": 1,\r\n    \"products\": [\r\n        {\r\n            \"refNumber\": \"ref-test-54202\",\r\n            \"quantity\": 10\r\n        },\r\n        {\r\n            \"refNumber\": \"ref-test-54201\",\r\n            \"quantity\": 100\r\n        }\r\n    ]\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/fulfilment/create-request","description":"<p>We can now offer you the ability to create a booking request from your company's software or website by taking advantage of \"Booking Request Creation Web Service\".</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/fulfilment/create-request</td>\n<td>Creating a booking request in our fulfilment system.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Method: POST\nAuthorization: Bearer API_TOKEN\nBody (JSON)</p>\n<p><strong>Example URLs:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>URL</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Test</td>\n<td><a href=\"https://test-api.inout.bg/api/v1/fulfilment/create-request\">https://test-api.inout.bg/api/v1/fulfilment/create-request</a></td>\n</tr>\n<tr>\n<td>Production</td>\n<td><a href=\"https://api1.inout.bg/api/v1/fulfilment/create-request\">https://api1.inout.bg/api/v1/fulfilment/create-request</a></td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>API Call Input Fields</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>parameter</strong></th>\n<th><strong>type</strong></th>\n<th><strong>required</strong></th>\n<th><strong>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>bool</td>\n<td>yes</td>\n<td></td>\n<td>if you want to use the API only for tests set this field to true. Applies only to the production environment. On the test environment, all shipments save on test env.</td>\n</tr>\n<tr>\n<td>companyId</td>\n<td>integer</td>\n<td>yes</td>\n<td></td>\n<td>ID of company, you can receive it from the „Companies Web Service\".</td>\n</tr>\n<tr>\n<td>warehouseId</td>\n<td>integer</td>\n<td>yes</td>\n<td></td>\n<td>ID of warehouse you want to send a Request to. Your company must have access to this warehouse.</td>\n</tr>\n<tr>\n<td>courierInc</td>\n<td>string</td>\n<td>no</td>\n<td>MaxLength: 50. If sent, cannot be empty.</td>\n<td>Incoming courier name. Empty string is rejected with \"Courier name is invalid\".</td>\n</tr>\n<tr>\n<td>trackNumb</td>\n<td>string</td>\n<td>no</td>\n<td>MaxLength: 50. If sent, cannot be empty.</td>\n<td>Incoming tracking number. Empty string is rejected with \"Tracking number is invalid\".</td>\n</tr>\n<tr>\n<td>deliveryDate</td>\n<td>date</td>\n<td>no</td>\n<td>Format: Y-m-d. Today or later.</td>\n<td>Expected delivery date of the incoming shipment.</td>\n</tr>\n<tr>\n<td>packagesCount</td>\n<td>integer</td>\n<td>no</td>\n<td>Min: 1. If sent, cannot be empty/0.</td>\n<td>Number of packages of the incoming shipment. 0 or empty is rejected with \"Package count is invalid\".</td>\n</tr>\n<tr>\n<td><strong>products</strong></td>\n<td>Array of objects</td>\n<td>yes</td>\n<td>Min: 1 element.</td>\n<td>Products included in the Request.</td>\n</tr>\n<tr>\n<td>refNumber</td>\n<td>string</td>\n<td>yes</td>\n<td></td>\n<td>Reference number of the product. Must be a product that already belongs to your company.</td>\n</tr>\n<tr>\n<td>quantity</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min: 1</td>\n<td>Product quantity.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Important!</strong>\nIf the same refNumber appears more than once in the products array, the duplicate lines are merged into a single line and their quantities are summed.</p>\n<p><strong>Example</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"testMode\": true,\n    \"companyId\": 332,\n    \"warehouseId\": 1,\n    \"products\": [\n        {\n            \"refNumber\": \"ref-test-54202\",\n            \"quantity\": 10\n        },\n        {\n            \"refNumber\": \"ref-test-54201\",\n            \"quantity\": 100\n        }\n    ]\n}\n\n</code></pre>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>requestId</td>\n<td>ID of the created Request.</td>\n</tr>\n<tr>\n<td>error</td>\n<td>A field that contains the text from a possible error while executing the web service from the server-side.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"requestId\": 137\n}\n\n</code></pre>\n<p><strong>Related service:</strong>\nOnce you have a requestId, you can poll its status with the companion \"Get Request Status\" service: GET /api/v1/fulfilment/get-request-status/{id} (a dedicated documentation page for this service is being added).</p>\n<p><strong>HTTP Errors:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>201</td>\n<td>The Request was created successfully.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Wrong params, or one of the following: \"Courier name is invalid\" / \"Tracking number is invalid\" / \"Package count is invalid\" / \"The company ID you added in Request does not exist. Please check it!\" / \"You don't have access to this warehouse. Please check warehouseId in your Request!\" / \"The selected products reference numbers is invalid. Please check following Product's Ref Numbers: \" / \"Error when saving Request information!\"</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","fulfilment","create-request"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"63d1df5a-a6bd-4080-84c6-0db02332331c"},{"name":"Product_Availability_Web_Service-v1.0","id":"9d650449-02c6-489e-9524-4440331742de","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/fulfilment/get-prod-avails","description":"<p>We can now offer you the ability to check your products' available quantities from your company's software or website by taking advantage of \"Product Availability Web Service\".</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/fulfilment/get-prod-avails</td>\n<td>Receiving the available quantities of your products, per warehouse.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Method: GET\nAuthorization: Bearer API_TOKEN</p>\n<p><strong>Example URLs:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>URL</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Test</td>\n<td><a href=\"https://test-api.inout.bg/api/v1/fulfilment/get-prod-avails\">https://test-api.inout.bg/api/v1/fulfilment/get-prod-avails</a></td>\n</tr>\n<tr>\n<td>Production</td>\n<td><a href=\"https://api1.inout.bg/api/v1/fulfilment/get-prod-avails\">https://api1.inout.bg/api/v1/fulfilment/get-prod-avails</a></td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>API Call Input Fields</strong></p>\n<p>This service takes no input parameters. The results are automatically filtered to the companies linked to your API token.</p>\n<p><strong>API Response (Output Fields)</strong></p>\n<p>The response is a JSON array with one row per product per warehouse.</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>AVAIL_DATE</td>\n<td>Date/time of the availability snapshot.</td>\n</tr>\n<tr>\n<td>STORE_NAME</td>\n<td>Name of the warehouse.</td>\n</tr>\n<tr>\n<td>ART_NAME</td>\n<td>Product name.</td>\n</tr>\n<tr>\n<td>ART_LNG_DESC</td>\n<td>Product long description.</td>\n</tr>\n<tr>\n<td>ART_SH_DESC</td>\n<td>Product short description.</td>\n</tr>\n<tr>\n<td>CUST_NAME</td>\n<td>Your company name.</td>\n</tr>\n<tr>\n<td>REFERENCE_NUMBER</td>\n<td>Your product reference number (SKU).</td>\n</tr>\n<tr>\n<td>COURIER_ITEM_CODE</td>\n<td>Internal item code.</td>\n</tr>\n<tr>\n<td>AVAIL_QTY</td>\n<td>Available quantity in the warehouse.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n  {\n    \"AVAIL_DATE\": \"2026-07-08 06:00:00\",\n    \"STORE_NAME\": \"Warehouse Ruse\",\n    \"ART_NAME\": \"test product\",\n    \"ART_LNG_DESC\": \"test product long description\",\n    \"ART_SH_DESC\": \"test product\",\n    \"CUST_NAME\": \"Test Company Ltd.\",\n    \"REFERENCE_NUMBER\": \"ref-test-54202\",\n    \"COURIER_ITEM_CODE\": \"12345\",\n    \"AVAIL_QTY\": 87\n  }\n]\n\n</code></pre>\n<p><strong>HTTP Errors:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Availability information returned successfully.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","fulfilment","get-prod-avails"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"9d650449-02c6-489e-9524-4440331742de"},{"name":"Order_Deletion_Web_Service-v1.0","id":"fdc6b6c0-ef37-1e71-78a8-25dab5f5f91b","request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"DELETE","header":[],"url":"https://api1.inout.bg/api/v1/orders-delete/CCS-03207-CZ","description":"<p>We can now offer you the ability to delete a fulfilment order directly from your company's software or website by taking advantage of \"Order Deletion Web Service\".</p>\n<p>Description:\nWith this service, you can delete an order that has not been processed yet. An order can be deleted only while it is in one of the statuses <strong>Information received</strong>, <strong>Awaiting pickup</strong> or <strong>New</strong>, and only if it is <strong>not older than 14 days</strong>. Only orders belonging to your companies can be deleted.</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/orders-delete/{refNumber}</td>\n<td>Deleting a fulfilment order by your own reference number.</td>\n</tr>\n<tr>\n<td>/orders/{id}</td>\n<td>Alternative: deleting a fulfilment order by the internal order id, returned by the \"Order Creation Web Service\".</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: DELETE\nAuthorization: Bearer API_TOKEN\nAPI Call Input Fields\nURL path parameters</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>refNumber</td>\n<td>string</td>\n<td>yes</td>\n<td></td>\n<td>Your own reference number of the order - the value you filled in when creating the order. Used with /orders-delete/{refNumber}.</td>\n</tr>\n<tr>\n<td>id</td>\n<td>integer</td>\n<td>yes</td>\n<td></td>\n<td>The internal order id, returned by the \"Order Creation Web Service\". Used with the alternative endpoint /orders/{id}.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example</strong>:</p>\n<p>Test - <a href=\"https://test-api.inout.bg/api/v1/orders-delete/CCS-03207-CZ\">https://test-api.inout.bg/api/v1/orders-delete/CCS-03207-CZ</a></p>\n<p>Production - <a href=\"https://api1.inout.bg/api/v1/orders-delete/CCS-03207-CZ\">https://api1.inout.bg/api/v1/orders-delete/CCS-03207-CZ</a></p>\n<p>Alternative (by internal order id):</p>\n<p>Test - <a href=\"https://test-api.inout.bg/api/v1/orders/137\">https://test-api.inout.bg/api/v1/orders/137</a></p>\n<p>Production - <a href=\"https://api1.inout.bg/api/v1/orders/137\">https://api1.inout.bg/api/v1/orders/137</a></p>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>error</td>\n<td>false if the order was deleted successfully.</td>\n</tr>\n<tr>\n<td>message</td>\n<td>Text result of the operation or a possible error while executing the web service from the server-side.</td>\n</tr>\n<tr>\n<td>code</td>\n<td>HTTP code of the operation.</td>\n</tr>\n<tr>\n<td>result</td>\n<td>Only for the alternative endpoint /orders/{id} - object with basic data of the deleted order.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example</strong> (/orders-delete/{refNumber}):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": false,\n    \"message\": \"The order was deleted successfully.\",\n    \"code\": 200\n}\n\n</code></pre>\n<p><strong>Example</strong> (/orders/{id}):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": false,\n    \"message\": \"The order was deleted successfully.\",\n    \"result\": {\n        \"ID\": 137,\n        \"OP_OUR_STATUS_ID\": 20,\n        \"OP_CUSTOMER_ID\": 332,\n        \"ORDER_ID\": \"1005\",\n        \"OP_WAYBILL_BG\": \"CCS-03207-CZ\",\n        \"OP_DATE\": \"2026-07-01 10:15:00\"\n    },\n    \"code\": 200\n}\n\n</code></pre>\n<p>HTTP Errors:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>The order was deleted successfully.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>The order cannot be deleted. - the order is not in status Information received / Awaiting pickup / New, is older than 14 days, or does not belong to your companies.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>The order ref number is required. / The order id must be a number.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>The order does not exist. (alternative endpoint /orders/{id})</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Error deleting order!</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","orders-delete","CCS-03207-CZ"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"fdc6b6c0-ef37-1e71-78a8-25dab5f5f91b"},{"name":"Product_List_Web_Service-v1.0","id":"fad334fa-9d84-65fc-02a7-822041b3477e","request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api1.inout.bg/api/v1/fulfilment/get-products?companyId=332","description":"<p>We can now offer you the ability to receive a list of all your products in our fulfilment system directly from your company's software or website by taking advantage of \"Product List Web Service\".</p>\n<p>Description:\nWith this service, you can receive all products registered in our fulfilment system for one of your companies. The products are the ones created via the \"Product Creation Web Service\" or in the client cabinet.</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/fulfilment/get-products</td>\n<td>Receiving a list of all products of a company in our fulfilment system.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: GET\nAuthorization: Bearer API_TOKEN\nAPI Call Input Fields\nURL query parameters</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>companyId</td>\n<td>integer</td>\n<td>yes</td>\n<td>Must be one of your companies.</td>\n<td>ID of company, you can receive it from the „Companies Web Service“.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example</strong>:</p>\n<p>Test - <a href=\"https://test-api.inout.bg/api/v1/fulfilment/get-products?companyId=332\">https://test-api.inout.bg/api/v1/fulfilment/get-products?companyId=332</a></p>\n<p>Production - <a href=\"https://api1.inout.bg/api/v1/fulfilment/get-products?companyId=332\">https://api1.inout.bg/api/v1/fulfilment/get-products?companyId=332</a></p>\n<p><strong>API Response (Output Fields)</strong></p>\n<p>The response is a JSON array of products. Each product contains:</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>ID of the product in our system.</td>\n</tr>\n<tr>\n<td>NAME</td>\n<td>Product name.</td>\n</tr>\n<tr>\n<td>DESCRIPTION</td>\n<td>Product description.</td>\n</tr>\n<tr>\n<td>LENGTH_ITEM</td>\n<td>Product length in cm.</td>\n</tr>\n<tr>\n<td>WIDTH</td>\n<td>Product width in cm.</td>\n</tr>\n<tr>\n<td>HEIGHT</td>\n<td>Product height in cm.</td>\n</tr>\n<tr>\n<td>WEIGHT</td>\n<td>Product weight in kg.</td>\n</tr>\n<tr>\n<td>REFERENCE_NUMBER</td>\n<td>Product reference number - the value you filled in when creating the product.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"ID\": 85,\n        \"NAME\": \"test product\",\n        \"DESCRIPTION\": \"test description\",\n        \"LENGTH_ITEM\": \"20.50\",\n        \"WIDTH\": \"20.50\",\n        \"HEIGHT\": \"20.50\",\n        \"WEIGHT\": \"2.20\",\n        \"REFERENCE_NUMBER\": \"ref-test-54202\"\n    },\n    {\n        \"ID\": 86,\n        \"NAME\": \"test product 2\",\n        \"DESCRIPTION\": null,\n        \"LENGTH_ITEM\": \"10.00\",\n        \"WIDTH\": \"15.00\",\n        \"HEIGHT\": \"5.00\",\n        \"WEIGHT\": \"0.50\",\n        \"REFERENCE_NUMBER\": \"ref-test-54201\"\n    }\n]\n\n</code></pre>\n<p>HTTP Errors:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Validation error - the companyId parameter is missing or does not exist.</td>\n</tr>\n<tr>\n<td>503</td>\n<td>You do not have access to specified company.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","fulfilment","get-products"],"host":["api1","inout","bg"],"query":[{"key":"companyId","value":"332"}],"variable":[]}},"response":[],"_postman_id":"fad334fa-9d84-65fc-02a7-822041b3477e"},{"name":"Request_Status_Web_Service-v1.0","id":"d83611df-0c55-42f2-4ded-da7f44d3387d","request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api1.inout.bg/api/v1/fulfilment/get-request-status/137","description":"<p>We can now offer you the ability to check the status of a booking request directly from your company's software or website by taking advantage of \"Request Status Web Service\".</p>\n<p>Description:\nWith this service, you can check whether a booking request, created via the \"Booking Request Creation Web Service\", has already been accepted (confirmed) at our warehouse. In the \"id\" parameter, fill the \"requestId\" value you received when creating the booking request.</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/fulfilment/get-request-status/{id}</td>\n<td>Checking the confirmation status of a booking request in our fulfilment system.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: GET\nAuthorization: Bearer API_TOKEN\nAPI Call Input Fields\nURL path parameters</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>restrictions</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>yes</td>\n<td>Must be a Request of one of your companies.</td>\n<td>ID of Request - the \"requestId\" value returned by the \"Booking Request Creation Web Service\".</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example</strong>:</p>\n<p>Test - <a href=\"https://test-api.inout.bg/api/v1/fulfilment/get-request-status/137\">https://test-api.inout.bg/api/v1/fulfilment/get-request-status/137</a></p>\n<p>Production - <a href=\"https://api1.inout.bg/api/v1/fulfilment/get-request-status/137\">https://api1.inout.bg/api/v1/fulfilment/get-request-status/137</a></p>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>accepted</td>\n<td>true if the Request has been confirmed at our warehouse, false if it is not confirmed yet.</td>\n</tr>\n<tr>\n<td>date</td>\n<td>The date on which the Request was confirmed. Returned only when \"accepted\" is true.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example</strong> (confirmed Request):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"accepted\": true,\n    \"date\": \"2026-07-01 10:15:33\"\n}\n\n</code></pre>\n<p><strong>Example</strong> (not confirmed yet):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"accepted\": false\n}\n\n</code></pre>\n<p>HTTP Errors:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Wrong Request ID! - the Request does not exist or does not belong to your companies.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","fulfilment","get-request-status","137"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"d83611df-0c55-42f2-4ded-da7f44d3387d"},{"name":"Booking_Request_Status_Web_Service-v1.0","id":"937bfe5d-fa25-f6d3-8fb5-c19bf224cc62","request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"companyId\": 332,\n    \"bookingId\": 137\n}\n"},"url":"https://api1.inout.bg/api/v1/fulfilment/booking-request-status","description":"<p>We can now offer you the ability to receive detailed information about a booking request directly from your company's software or website by taking advantage of \"Booking Request Status Web Service\".</p>\n<p>Description:\nWith this service, you can receive the full lifecycle of a booking request (created, received at the warehouse, closed/confirmed, deleted) together with a product-by-product breakdown of the booked and accepted quantities. In the \"bookingId\" parameter, fill the \"requestId\" value you received when creating the booking request via the \"Booking Request Creation Web Service\".</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/fulfilment/booking-request-status</td>\n<td>Receiving detailed statuses and product quantities of a booking request in our fulfilment system.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: POST\nAuthorization: Bearer API_TOKEN\nAPI Call Input Fields\nBody (JSON)</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>parameter</strong></th>\n<th><strong>type</strong></th>\n<th><strong>required</strong></th>\n<th><strong>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>companyId</td>\n<td>integer</td>\n<td>yes</td>\n<td>Must be one of your companies.</td>\n<td>ID of company, you can receive it from the „Companies Web Service“.</td>\n</tr>\n<tr>\n<td>bookingId</td>\n<td>integer</td>\n<td>yes</td>\n<td></td>\n<td>ID of the booking request - the \"requestId\" value returned by the \"Booking Request Creation Web Service\".</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example</strong>:</p>\n<p>Test - <a href=\"https://test-api.inout.bg/api/v1/fulfilment/booking-request-status\">https://test-api.inout.bg/api/v1/fulfilment/booking-request-status</a></p>\n<p>Production - <a href=\"https://api1.inout.bg/api/v1/fulfilment/booking-request-status\">https://api1.inout.bg/api/v1/fulfilment/booking-request-status</a></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"companyId\": 332,\n    \"bookingId\": 137\n}\n\n</code></pre>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>bookingId</td>\n<td>ID of the booking request from your request.</td>\n</tr>\n<tr>\n<td>statuses</td>\n<td>Object with the dates of each stage of the booking request. Each date is null until the stage is reached.</td>\n</tr>\n<tr>\n<td>statuses.created</td>\n<td>Date on which the booking request was created.</td>\n</tr>\n<tr>\n<td>statuses.received</td>\n<td>Date on which the goods arrived at our warehouse.</td>\n</tr>\n<tr>\n<td>statuses.closed</td>\n<td>Date on which the booking request was confirmed (closed).</td>\n</tr>\n<tr>\n<td>statuses.deleted</td>\n<td>Date on which the booking request was deleted, if it was deleted.</td>\n</tr>\n<tr>\n<td>products</td>\n<td>Array with the products of the booking request.</td>\n</tr>\n<tr>\n<td>products.name</td>\n<td>Product name.</td>\n</tr>\n<tr>\n<td>products.referenceNumber</td>\n<td>Product reference number.</td>\n</tr>\n<tr>\n<td>products.booked</td>\n<td>Quantity you booked in the request.</td>\n</tr>\n<tr>\n<td>products.accepted</td>\n<td>Quantity actually accepted at our warehouse. null until the booking request is confirmed.</td>\n</tr>\n<tr>\n<td>products.comment</td>\n<td>Comment/reason from our warehouse for this product (e.g. in case of a quantity difference).</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"bookingId\": 137,\n    \"statuses\": {\n        \"created\": \"2026-06-25 09:41:12\",\n        \"received\": \"2026-06-27 14:02:55\",\n        \"closed\": \"2026-06-28 10:15:33\",\n        \"deleted\": null\n    },\n    \"products\": [\n        {\n            \"name\": \"test product\",\n            \"referenceNumber\": \"ref-test-54202\",\n            \"booked\": 10,\n            \"accepted\": 10,\n            \"comment\": null\n        },\n        {\n            \"name\": \"test product 2\",\n            \"referenceNumber\": \"ref-test-54201\",\n            \"booked\": 100,\n            \"accepted\": 98,\n            \"comment\": \"2 damaged items\"\n        }\n    ]\n}\n\n</code></pre>\n<p>HTTP Errors:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Booking request not found</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Bad request - the companyId or bookingId parameter is missing.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Customer not found / User cannot manage customer - the companyId does not exist or is not one of your companies.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","fulfilment","booking-request-status"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"937bfe5d-fa25-f6d3-8fb5-c19bf224cc62"},{"name":"Transfer_Creation_Web_Service-v1.0","id":"f8261a6b-c858-264d-42ed-b6ea6dd7d569","request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"testMode\": true,\n    \"companyId\": 1075,\n    \"sourceWarehouseId\": 4,\n    \"destinationWarehouseId\": 7,\n    \"protocolType\": 1,\n    \"needCheck\": false,\n    \"comments\": \"Transfer to Sofia\",\n    \"receiver\": \"Store unit 2\",\n    \"waybill\": null,\n    \"instructions\": null,\n    \"externalRef\": \"ERP-TRX-000123\",\n    \"items\": [\n        {\n            \"refNumber\": \"4480541734500\",\n            \"quantity\": 1\n        },\n        {\n            \"barcode\": \"449061657\",\n            \"quantity\": 1,\n            \"batchNo\": \"TRTEST01\",\n            \"batchDate\": \"2028-10-31\"\n        }\n    ]\n}","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/fulfilment/create-transfer","description":"<p>We can now offer you the ability to create a warehouse transfer protocol from your company's software or website by taking advantage of \"Transfer Creation Web Service\".</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/fulfilment/create-transfer</td>\n<td>Creating a warehouse transfer protocol (stock movement between two warehouses, or a scrap protocol) in our fulfilment system.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Method: POST\nAuthorization: Bearer API_TOKEN\nBody (JSON)</p>\n<p><strong>Example URLs:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>URL</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Test</td>\n<td><a href=\"https://test-api.inout.bg/api/v1/fulfilment/create-transfer\">https://test-api.inout.bg/api/v1/fulfilment/create-transfer</a></td>\n</tr>\n<tr>\n<td>Production</td>\n<td><a href=\"https://api1.inout.bg/api/v1/fulfilment/create-transfer\">https://api1.inout.bg/api/v1/fulfilment/create-transfer</a></td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>API Call Input Fields</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>parameter</strong></th>\n<th><strong>type</strong></th>\n<th><strong>required</strong></th>\n<th><strong>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>bool</td>\n<td>yes</td>\n<td></td>\n<td>if you want to use the API only for tests set this field to true. Applies only to the production environment. On the test environment, all transfers save on test env. <code>true</code> validates the whole payload end-to-end and persists nothing.</td>\n</tr>\n<tr>\n<td>companyId</td>\n<td>integer</td>\n<td>yes</td>\n<td></td>\n<td>ID of company, you can receive it from the „Companies Web Service\". Must be accessible to your token (partner/cabinet scope; admin tokens may use any).</td>\n</tr>\n<tr>\n<td>sourceWarehouseId</td>\n<td>integer</td>\n<td>yes</td>\n<td></td>\n<td>ID of the sending warehouse.</td>\n</tr>\n<tr>\n<td>destinationWarehouseId</td>\n<td>integer</td>\n<td>no</td>\n<td></td>\n<td>ID of the receiving warehouse. If sent, must differ from sourceWarehouseId, otherwise rejected.</td>\n</tr>\n<tr>\n<td>protocolType</td>\n<td>integer</td>\n<td>no</td>\n<td>Default: 1</td>\n<td>1 = NORMAL, 3 = SCRAP. 2 (EMAG/Skroutz) is admin-only; requested by a non-admin token it is rejected with PROTOCOL_TYPE_NOT_ALLOWED.</td>\n</tr>\n<tr>\n<td>needCheck</td>\n<td>bool</td>\n<td>no</td>\n<td></td>\n<td>Requires scanning in the warehouse.</td>\n</tr>\n<tr>\n<td>comments</td>\n<td>string</td>\n<td>no</td>\n<td></td>\n<td>Free-text note.</td>\n</tr>\n<tr>\n<td>receiver</td>\n<td>string</td>\n<td>no</td>\n<td></td>\n<td>Receiver text (store unit).</td>\n</tr>\n<tr>\n<td>waybill</td>\n<td>string</td>\n<td>no</td>\n<td></td>\n<td>Waybill number.</td>\n</tr>\n<tr>\n<td>instructions</td>\n<td>string</td>\n<td>no</td>\n<td></td>\n<td>Free-text instructions.</td>\n</tr>\n<tr>\n<td>externalRef</td>\n<td>string</td>\n<td>yes</td>\n<td>MaxLength: 100</td>\n<td>Idempotency key, unique per companyId. Required for the API only (manual/UI/Excel-import transfers don't use it) — see Important notes below.</td>\n</tr>\n<tr>\n<td><strong>items</strong></td>\n<td>Array of objects</td>\n<td>yes</td>\n<td>Min: 1 element.</td>\n<td>Transfer lines.</td>\n</tr>\n<tr>\n<td>refNumber</td>\n<td>string</td>\n<td>one of refNumber/barcode</td>\n<td></td>\n<td>Product reference number.</td>\n</tr>\n<tr>\n<td>barcode</td>\n<td>string</td>\n<td>one of refNumber/barcode</td>\n<td></td>\n<td>Product barcode. If both refNumber and barcode are sent, refNumber is used to resolve the product (barcode is ignored) — identical to the Excel-import behaviour.</td>\n</tr>\n<tr>\n<td>quantity</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min: 1</td>\n<td>Non-positive or non-integer values are rejected as INVALID_QUANTITY.</td>\n</tr>\n<tr>\n<td>batchNo</td>\n<td>string</td>\n<td>with batchDate</td>\n<td></td>\n<td>Batch number. Must be sent together with batchDate (or neither) — one without the other is rejected as BATCH_INCOMPLETE.</td>\n</tr>\n<tr>\n<td>batchDate</td>\n<td>date</td>\n<td>with batchNo</td>\n<td>Format: YYYY-MM-DD</td>\n<td>Batch date.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Important!</strong>\nThe protocol date is never taken from the request — the server always sets it to today's date.\nEvery row is validated (product belongs to the company, item-level stock, per-batch stock) <em>before</em> anything is written — if any single row fails, nothing is persisted (all-or-nothing).\nThe starting status of the protocol depends on your token's access type: cabinet/client tokens start it at STATUS_CABINET_WAITING (skipping the UI draft step, since the API sends a complete protocol); partner and admin tokens start it with no status set, following the normal manual flow.\nSending the same externalRef again does not create a second protocol — the existing one (including a since-deleted one) is returned with a 409, so retries are always safe.</p>\n<p><strong>Example</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"testMode\": true,\n    \"companyId\": 1075,\n    \"sourceWarehouseId\": 4,\n    \"destinationWarehouseId\": 7,\n    \"protocolType\": 1,\n    \"needCheck\": false,\n    \"comments\": \"Transfer to Sofia\",\n    \"receiver\": \"Store unit 2\",\n    \"waybill\": null,\n    \"instructions\": null,\n    \"externalRef\": \"ERP-TRX-000123\",\n    \"items\": [\n        { \"refNumber\": \"4480541734500\", \"quantity\": 1 },\n        { \"barcode\": \"449061657\", \"quantity\": 1, \"batchNo\": \"TRTEST01\", \"batchDate\": \"2028-10-31\" },\n        { \"refNumber\": \"449067544700\", \"barcode\": \"4490675447\", \"quantity\": 1, \"batchNo\": \"TR3TEST01\", \"batchDate\": \"2028-05-31\" }\n    ]\n}\n\n</code></pre>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>protocolId</td>\n<td>ID of the created transfer protocol. null when testMode is true (validated, not saved), or when the request failed.</td>\n</tr>\n<tr>\n<td>isConfirmed</td>\n<td>Reflects the token's access type: cabinet → 1 (STATUS_CABINET_WAITING); partner/admin → null.</td>\n</tr>\n<tr>\n<td>protocolType</td>\n<td>Echoes the resolved protocol type (1 or 3; default 1).</td>\n</tr>\n<tr>\n<td>itemsCreated</td>\n<td>Number of transfer detail lines created.</td>\n</tr>\n<tr>\n<td>items</td>\n<td>Array with the resolved refNumber/barcode, quantity and batchId (null if no batch) actually written for each line.</td>\n</tr>\n<tr>\n<td>error</td>\n<td>false on success, or the error identifier/text while executing the web service from the server-side.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"protocolId\": 98765,\n  \"isConfirmed\": null,\n  \"protocolType\": 1,\n  \"itemsCreated\": 2,\n  \"items\": [\n    { \"refNumber\": \"4480541734500\", \"quantity\": 1, \"batchId\": null },\n    { \"barcode\": \"449061657\", \"quantity\": 1, \"batchId\": 3979 }\n  ],\n  \"error\": false\n}\n\n</code></pre>\n<p><strong>Duplicate request (idempotency) — HTTP 409:</strong>\nReturned when the same externalRef already exists for this companyId (including a soft-deleted protocol, in which case isDeleted is true). No new protocol is created — the existing one is returned instead.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"DUPLICATE_EXTERNAL_REF\",\n  \"protocolId\": 98765,\n  \"isConfirmed\": null,\n  \"protocolType\": 1,\n  \"externalRef\": \"ERP-TRX-000123\",\n  \"isDeleted\": false\n}\n\n</code></pre>\n<p><strong>Validation error — HTTP 422:</strong>\nNothing is persisted (all-or-nothing). Structural/request-level problems come back under <code>messages</code>; per-row problems under <code>itemErrors</code>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"error\": \"VALIDATION_FAILED\",\n  \"messages\": [ \"destination warehouse must differ from source\" ],\n  \"itemErrors\": [\n    { \"index\": 0, \"refNumber\": \"4480541734500\", \"error\": \"INSUFFICIENT_QUANTITY\", \"available\": 8, \"requested\": 12 },\n    { \"index\": 1, \"barcode\": \"449061657\", \"error\": \"PRODUCT_NOT_FOUND_FOR_CUSTOMER\" }\n  ]\n}\n\n</code></pre>\n<p>Per-row error codes (<code>itemErrors[].error</code>): PRODUCT_NOT_FOUND_FOR_CUSTOMER (no product with that refNumber/barcode belongs to companyId), INSUFFICIENT_QUANTITY (requested qty exceeds item-level availability; includes available + requested), INSUFFICIENT_BATCH_QUANTITY (requested qty exceeds per-batch stock in the source warehouse, or the batch doesn't exist; includes available + requested).</p>\n<p>Structural codes/messages (<code>messages[]</code>): INVALID_QUANTITY (quantity missing/zero/fractional/non-numeric), BATCH_INCOMPLETE (batchNo without batchDate or vice versa), PROTOCOL_TYPE_NOT_ALLOWED (protocolType=2 requested by a non-admin token), \"destination warehouse must differ from source\", \"company not accessible for this token\".</p>\n<p><strong>HTTP Errors:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>201</td>\n<td>The transfer protocol was created successfully.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>409</td>\n<td>Duplicate externalRef for this companyId — see \"Duplicate request\" above; the existing protocol is returned, no new one is created.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Validation failed — see \"Validation error\" above for the messages/itemErrors detail.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","fulfilment","create-transfer"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"f8261a6b-c858-264d-42ed-b6ea6dd7d569"}],"id":"aff54543-9f63-42ad-b615-d84c4337474f","description":"<p>We can now offer you the ability to ask order creation from your company’s software or website by taking advantage of \"Order Creation Web Service\".</p>\n","_postman_id":"aff54543-9f63-42ad-b615-d84c4337474f"},{"name":"Additional Web Services","item":[{"name":"COD_Information_Web_Service_v1.0","id":"98fa55d9-e957-425d-8987-4d0cbae513f0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"https://api1.inout.bg/api/v1/check-cod-by-order/123?testMode=0","description":"<p>We can now offer you the ability to ask for COD information directly from your company's software or website by taking advantage of \"COD Information Web Service\".</p>\n<p>With this service, you can receive detailed COD information. In the \"referenceNumber\" URL segment, fill the value you sent in \"referenceNumber\" when creating the AWB. The value can be an order number, a product number or an invoice number.</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>check-cod-by-order/{referenceNumber}</td>\n<td>Receive COD amount and payout information for the shipment created with the given reference number.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: GET</strong>\n<strong>Authorization: Bearer API_TOKEN</strong></p>\n<p><strong>API Call Input Fields</strong>\n<strong>URL query parameters</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>boolean</td>\n<td>yes</td>\n<td></td>\n<td>If you want to use the API only for tests set this field to true. Applies only to the production environment. On the test environment, all shipments save on test env.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example URLs:</strong></p>\n<p>Test: <a href=\"https://test-api.inout.bg/api/v1/check-cod-by-order/CCS-03207-CZ?testMode=1\">https://test-api.inout.bg/api/v1/check-cod-by-order/CCS-03207-CZ?testMode=1</a>\nProduction: <a href=\"https://api1.inout.bg/api/v1/check-cod-by-order/CCS-03207-CZ?testMode=0\">https://api1.inout.bg/api/v1/check-cod-by-order/CCS-03207-CZ?testMode=0</a></p>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>awbNumber</td>\n<td>AWB number.</td>\n</tr>\n<tr>\n<td>referenceNumber</td>\n<td>The value that you filled in \"referenceNumber\" when creating the AWB.</td>\n</tr>\n<tr>\n<td>COD</td>\n<td>COD amount in the country currency.</td>\n</tr>\n<tr>\n<td>payedNumber</td>\n<td>The number of the payment protocol with which euShipments paid out the COD to you. Null until the COD has been paid out.</td>\n</tr>\n<tr>\n<td>payedDate</td>\n<td>The date on which the COD payout was made. Null until the COD has been paid out.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"awbNumber\": \"40695693257\",\n  \"referenceNumber\": \"CCS-03207-CZ\",\n  \"COD\": \"2310.00\",\n  \"payedNumber\": 10793,\n  \"payedDate\": \"2019-05-20 13:40:51\"\n}\n\n</code></pre>\n<p><strong>Important - not-found behavior:</strong> if no shipment matches the reference number, or the shipment was not created with your API token, the service does NOT return an HTTP error. It responds with HTTP 200 and an empty (null) body. Always check that the response body actually contains data before processing it.</p>\n<p><strong>Note:</strong> \"payedNumber\" and \"payedDate\" are null while the COD has not yet been paid out. A response with these two fields set to null therefore means \"COD collected/registered but not paid out yet\", not an error.</p>\n<p><strong>HTTP Errors:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service. Also returned with an empty (null) body when no data was found for the reference number (see the not-found behavior above).</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","check-cod-by-order","123"],"host":["api1","inout","bg"],"query":[{"key":"testMode","value":"0"}],"variable":[]}},"response":[],"_postman_id":"98fa55d9-e957-425d-8987-4d0cbae513f0"},{"name":"Phone_Call_History_Web_Service_v1.0","id":"e3848856-7781-4033-8fa4-fb694f567697","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api1.inout.bg/api/v1/check-actions/{AWBNumber}?testMode=0","description":"<p>We can now offer you the ability to ask for a phone call history directly from your company's software or website by taking advantage of \"Phone Call History Web Service\".</p>\n<p><strong>Requirements:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>check-actions/{AWBNumber}</td>\n<td>With this service, you can receive the call history from our call centre for the chosen shipment.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: GET</strong>\n<strong>Authorization: Bearer API_TOKEN</strong></p>\n<p><strong>API Call Input Fields</strong>\n<strong>URL query parameters</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>boolean</td>\n<td>yes</td>\n<td></td>\n<td>If you want to use the API only for tests set this field to true. Applies only to the production environment. On the test environment, all shipments save on test env.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example URLs:</strong></p>\n<p>Test: <a href=\"https://test-api.inout.bg/api/v1/check-actions/64506083?testMode=1\">https://test-api.inout.bg/api/v1/check-actions/64506083?testMode=1</a>\nProduction: <a href=\"https://api1.inout.bg/api/v1/check-actions/64506083?testMode=0\">https://api1.inout.bg/api/v1/check-actions/64506083?testMode=0</a></p>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>actions</td>\n<td>Array with the actions history of the chosen shipment, ordered by date ascending.</td>\n</tr>\n<tr>\n<td>ID</td>\n<td>The ID of the call record.</td>\n</tr>\n<tr>\n<td>ACTION</td>\n<td>The action that was taken after the call (see the list of possible values below).</td>\n</tr>\n<tr>\n<td>COMMENT</td>\n<td>Comment of the person who contacted the recipient.</td>\n</tr>\n<tr>\n<td>Date</td>\n<td>The date when the action record was created in our system. Records are returned in ascending order by this field.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Possible ACTION values:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>ACTION</strong></th>\n<th><strong>Meaning</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Return to us</td>\n<td>The recipient asked for the shipment to be returned to the sender.</td>\n</tr>\n<tr>\n<td>Organise delivery</td>\n<td>A delivery (or re-delivery) was arranged with the recipient.</td>\n</tr>\n<tr>\n<td>New address</td>\n<td>The recipient provided a new delivery address.</td>\n</tr>\n<tr>\n<td>Not answers</td>\n<td>The recipient did not answer the phone call.</td>\n</tr>\n<tr>\n<td>Destroy it</td>\n<td>The shipment is to be destroyed.</td>\n</tr>\n<tr>\n<td>From Import</td>\n<td>The record was created automatically from an import.</td>\n</tr>\n<tr>\n<td>Phone call</td>\n<td>A phone call was made (general contact record).</td>\n</tr>\n<tr>\n<td>Specified data</td>\n<td>The recipient specified/confirmed data for the delivery.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"actions\": [\n    {\n      \"ID\": 22083,\n      \"ACTION\": \"Return to us\",\n      \"COMMENT\": \"test\",\n      \"Date\": \"2019-02-01 12:14:00\"\n    },\n    {\n      \"ID\": 22084,\n      \"ACTION\": \"Organise delivery\",\n      \"COMMENT\": \"ttt\",\n      \"Date\": \"2019-02-01 12:26:00\"\n    },\n    {\n      \"ID\": 22094,\n      \"ACTION\": \"Destroy it\",\n      \"COMMENT\": \"test\",\n      \"Date\": \"2019-02-01 15:34:00\"\n    }\n  ]\n}\n\n</code></pre>\n<p><strong>Important - \"no actions\" behavior:</strong> if the AWB exists but has no phone call actions, the service responds with HTTP 200 and the following body (there is no \"actions\" field in this case):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"Not found actions to specified AWB!\"\n}\n\n</code></pre>\n<p>Do not rely only on the HTTP status code - always check whether the response body contains \"actions\" or \"error\".</p>\n<p><strong>HTTP Errors:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service. Also returned with {\"error\": \"Not found actions to specified AWB!\"} when the AWB has no phone call actions (see above).</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>{\"error\": \"Not found AWB!\"} - the AWB number does not exist. Note: an unknown AWB currently returns HTTP 500 (not 404).</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","check-actions","{AWBNumber}"],"host":["api1","inout","bg"],"query":[{"key":"testMode","value":"0"}],"variable":[]}},"response":[],"_postman_id":"e3848856-7781-4033-8fa4-fb694f567697"}],"id":"fa279dd1-e7f1-46f7-b459-930b1480e8e3","_postman_id":"fa279dd1-e7f1-46f7-b459-930b1480e8e3","description":""},{"name":"PreAWB","item":[{"name":"Pre_AWB_Creation_Web_Service-v1.0","id":"eb461f4c-5638-46ad-b535-e9ac97173981","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"testMode\": true,\n    \"senderId\": 333,\n    \"courierId\": 15,\n    \"waybillAvailableDate\": \"2023-06-29\",\n    \"serviceName\": \"crossborder\",\n    \"recipient\": {\n        \"name\": \"API - TESTS\",\n        \"countryIsoCode\": \"BG\",\n        \"cityId\": null,\n        \"cityName\": \"Sofia\",\n        \"zipCode\": \"1000\",\n        \"region\": \"\",\n        \"officeId\": null,\n        \"officeCode\": null,\n        \"streetName\": \"ул. Цар Иван Асен II 64\",\n        \"buildingNumber\": 64,\n        \"addressText\": null,\n        \"contactPerson\": \"API - TESTS\",\n        \"phoneNumber\": \"0887000000\",\n        \"email\": \"test@example.com\"\n    },\n    \"awb\": {\n        \"referenceNumber\": \"bb-test-1000\",\n        \"totalWeight\": 1,\n        \"envelopes\": 0,\n        \"parcels\": 1,\n        \"declaredValue\": null,\n        \"bankRepayment\": null,\n        \"otherRepayment\": \"additional text for repayment\",\n        \"openPackage\": false,\n        \"saturdayDelivery\": false,\n        \"productsInfo\": \"test product test product1\",\n        \"fragile\": 0,\n        \"observations\": null,\n        \"products\": \"test\",\n        \"packages\": {\n            \"1\": {\n                \"dimensions\": {\n                    \"width\": 10,\n                    \"height\": 10,\n                    \"length\": 10\n                },\n                \"weight\": 1\n            }\n        }\n    }\n}\n","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/preAWB","description":"<p>Pre AWB Creation lets you register an order in the euShipments system <strong>without</strong> creating a courier waybill yet. No AWB/tracking number is generated at this step - the order is queued internally and a courier shipment is created for it later (in the euShipments back office or via a subsequent process). Use this when you want to reserve/queue an order before the courier waybill itself is needed.</p>\n<p><strong>Precondition:</strong> the Pre AWB service must be activated for your company in euShipments. If it isn't, every call fails with an \"unauthorized\" error - contact your euShipments account manager to have it enabled for your senderId.</p>\n<p>Requirements</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>preAWB</td>\n<td>Creates a pre-AWB order (no courier waybill yet) according to the provided API token and the order data.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Method: POST\nAuthorization: Bearer API_TOKEN</p>\n<p>Example URLs</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>URL</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Test</td>\n<td><a href=\"https://test-api.inout.bg/api/v1/preAWB\">https://test-api.inout.bg/api/v1/preAWB</a></td>\n</tr>\n<tr>\n<td>Production</td>\n<td><a href=\"https://api1.inout.bg/api/v1/preAWB\">https://api1.inout.bg/api/v1/preAWB</a></td>\n</tr>\n</tbody>\n</table>\n</div><p>API Call Input Fields\nBody (JSON)</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>boolean</td>\n<td>yes</td>\n<td></td>\n<td>If you want to use the API only for tests, set this field to true. Applies only to the production environment. On the test environment, all pre-AWBs save on test env.</td>\n</tr>\n<tr>\n<td>senderId (company id)</td>\n<td>integer</td>\n<td>yes</td>\n<td>Must be an existing company ID, and Pre AWB must be activated for it.</td>\n<td>ID of company, obtain an ID from Companies Web Service.</td>\n</tr>\n<tr>\n<td>courierId</td>\n<td>integer</td>\n<td>no</td>\n<td>Must be an existing courier ID.</td>\n<td>ID of the courier that will eventually handle the shipment, obtain an ID from Couriers Web Service.</td>\n</tr>\n<tr>\n<td>serviceName</td>\n<td>string</td>\n<td>no</td>\n<td>Must be a service supported by the selected courier.</td>\n<td>Service name, e.g. crossborder.</td>\n</tr>\n<tr>\n<td>waybillAvailableDate</td>\n<td>date</td>\n<td>yes</td>\n<td>Must be between today and 9 days ahead (format YYYY-MM-DD).</td>\n<td>The date on which the shipment is planned to be dispatched.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>recipient</strong></p>\n<p>Addressing rules (all three apply independently - read carefully, they differ from the createAWB endpoint):</p>\n<ul>\n<li>recipient.countryIsoCode is <strong>always required</strong>, regardless of cityId.</li>\n<li>Send either recipient.cityId, <strong>or both</strong> recipient.cityName and recipient.zipCode together (sending only one of cityName/zipCode does not satisfy this rule).</li>\n<li>Independently of cityId/cityName, you must <strong>always</strong> send recipient.zipCode or recipient.region (at least one of the two, even when cityId is used).</li>\n</ul>\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>restrictions</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>yes</td>\n<td>Max 100 characters.</td>\n<td>Name of recipient or company.</td>\n</tr>\n<tr>\n<td>countryIsoCode</td>\n<td>string</td>\n<td>yes</td>\n<td>Two-letter uppercase ISO code, e.g. BG, RO, HU.</td>\n<td>Two-letter country ISO code of the delivery country. Always required for this endpoint.</td>\n</tr>\n<tr>\n<td>cityId</td>\n<td>integer</td>\n<td>conditional</td>\n<td>Required unless both cityName and zipCode are sent. Must be an existing city ID.</td>\n<td>The ID of the city where the shipment needs to be delivered. Obtain an ID from the Cities resource.</td>\n</tr>\n<tr>\n<td>cityName</td>\n<td>string</td>\n<td>conditional</td>\n<td>See addressing rules above. Max 100 characters.</td>\n<td>City name.</td>\n</tr>\n<tr>\n<td>zipCode</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required unless region is sent - see addressing rules above. Max 15 characters.</td>\n<td>Zip code.</td>\n</tr>\n<tr>\n<td>region</td>\n<td>string</td>\n<td>conditional</td>\n<td>Required unless zipCode is sent - see addressing rules above. Max 100 characters.</td>\n<td>Region (county/municipality).</td>\n</tr>\n<tr>\n<td>officeId</td>\n<td>integer</td>\n<td>no</td>\n<td>Must be an existing office ID.</td>\n<td>Delivery to a courier office / PUDO / locker: the ID of the office, obtained from Courier_Offices_Web_Service_v1.2.</td>\n</tr>\n<tr>\n<td>officeCode</td>\n<td>string</td>\n<td>no</td>\n<td>Must be an existing courier office code.</td>\n<td>The courier's own office code (field COURIER_OFFICE_CODE in Courier_Offices_Web_Service_v1.2). Alternative to officeId.</td>\n</tr>\n<tr>\n<td>streetName</td>\n<td>string</td>\n<td>yes</td>\n<td>Max 100 characters. <strong>Always required, even when officeId or officeCode is sent</strong> (unlike the createAWB endpoint, where it becomes optional in that case).</td>\n<td>Name of the street - e.g. Main street or Main street 10.</td>\n</tr>\n<tr>\n<td>buildingNumber</td>\n<td>integer</td>\n<td>no</td>\n<td></td>\n<td>Number of the street/building - e.g. 10.</td>\n</tr>\n<tr>\n<td>addressText</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Additional address information - e.g. bl. 25, et. 3.</td>\n</tr>\n<tr>\n<td>contactPerson</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Contact person. Usually the same as the name of the recipient.</td>\n</tr>\n<tr>\n<td>phoneNumber</td>\n<td>string</td>\n<td>yes</td>\n<td>Max 100 characters.</td>\n<td>Phone number of the recipient.</td>\n</tr>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>no</td>\n<td>Must be a valid email format if sent (unlike createAWB, where the email field isn't validated at all).</td>\n<td>Email of the recipient.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>awb</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>parcels</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min 0.</td>\n<td>Number of parcels.</td>\n</tr>\n<tr>\n<td>envelopes</td>\n<td>integer</td>\n<td>yes</td>\n<td>Min 0.</td>\n<td>Number of envelopes. Usually 0.</td>\n</tr>\n<tr>\n<td>totalWeight</td>\n<td>numeric</td>\n<td>yes</td>\n<td><strong>Min 0.5 kg.</strong></td>\n<td>Total weight of the shipment in kg. Note the minimum is higher than on createAWB (0.01 kg there).</td>\n</tr>\n<tr>\n<td>declaredValue</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.</td>\n<td>Insurance amount of the shipment.</td>\n</tr>\n<tr>\n<td>bankRepayment</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.</td>\n<td>COD amount of the shipment in local currency.</td>\n</tr>\n<tr>\n<td>otherRepayment</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Additional information to COD.</td>\n</tr>\n<tr>\n<td>observations</td>\n<td>string</td>\n<td>no</td>\n<td>Max 100 characters.</td>\n<td>Additional information about the shipment/products (notes).</td>\n</tr>\n<tr>\n<td>openPackage</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Check up the shipment before pay.</td>\n</tr>\n<tr>\n<td>saturdayDelivery</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Saturday delivery.</td>\n</tr>\n<tr>\n<td>referenceNumber</td>\n<td>string</td>\n<td>yes</td>\n<td>Max 100 characters. <strong>Must be unique to avoid duplicate orders!</strong></td>\n<td>Client reference number.</td>\n</tr>\n<tr>\n<td>products</td>\n<td>string</td>\n<td>no</td>\n<td>Max 1000 characters.</td>\n<td>The content of the shipment as free text, e.g. product1 product2.</td>\n</tr>\n<tr>\n<td>fragile</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>Marker whether the content is fragile.</td>\n</tr>\n<tr>\n<td>productsInfo</td>\n<td>string</td>\n<td>no</td>\n<td>Max 2000 characters. <strong>Note the exact key is <code>productsInfo</code> (capital I)</strong> - a lowercase <code>productsinfo</code> is silently ignored by validation.</td>\n<td>Additional product information.</td>\n</tr>\n<tr>\n<td>generateInoutLabelNum</td>\n<td>boolean</td>\n<td>no</td>\n<td></td>\n<td>When set to true, an INOUT label number is generated for the order - see Pre_AWB_Creation_INOUT_LABEL_Web_Service-v1.1.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>awb.packages</strong></p>\n<p>Optional array.</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>dimensions.width</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.1.</td>\n<td>Width of the specific parcel in cm.</td>\n</tr>\n<tr>\n<td>dimensions.height</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.1.</td>\n<td>Height of the specific parcel in cm.</td>\n</tr>\n<tr>\n<td>dimensions.length</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.1.</td>\n<td>Length of the specific parcel in cm.</td>\n</tr>\n<tr>\n<td>weight</td>\n<td>numeric</td>\n<td>no</td>\n<td>Min 0.001.</td>\n<td>Weight of the specific parcel in kg.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>products</strong> (top-level array)</p>\n<p>Optional, and only lightly validated on this endpoint (only qty is checked - refNumber/price are not). For richer product data, prefer awb.products / awb.productsInfo above.</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>qty</td>\n<td>integer</td>\n<td>no</td>\n<td>Min 1 (only enforced when the products array/item is sent).</td>\n<td>Quantity of the product.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Not supported on this endpoint:</strong> unlike createAWB, Pre AWB does not accept/validate awb.document, sender, invoice, customsData, customs_declaration, courierRequest, returnLabel, courierReturnAWB or warehouseInfo. Sending them has no effect - configure those aspects on the real shipment once it is created from the order.</p>\n<p><strong>API Response (Output Fields)</strong></p>\n<p>On success the service returns HTTP 201 with:</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>orderId</td>\n<td>Internal ID of the created order (no courier AWB exists yet).</td>\n</tr>\n<tr>\n<td>error</td>\n<td>Always false on success.</td>\n</tr>\n<tr>\n<td>code</td>\n<td>Always 201 on success.</td>\n</tr>\n<tr>\n<td>inoutLabelNum</td>\n<td>Present only when awb.generateInoutLabelNum was sent as true - see Pre_AWB_Creation_INOUT_LABEL_Web_Service-v1.1.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"orderId\": 4815162,\n    \"error\": false,\n    \"code\": 201\n}\n\n</code></pre>\n<p>On a business/processing error (e.g. the order could not be created for a reason surfaced after your input passed validation), the response has this shape, with the HTTP status equal to the code value:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"orderId\": null,\n    \"inoutLabelNum\": null,\n    \"error\": \"error text\",\n    \"code\": 422\n}\n\n</code></pre>\n<p>On a plain input-validation error (a required field missing, a value failing the rules in the tables above), the response is the simpler shape used across the API, with HTTP 400:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"error text\"\n}\n\n</code></pre>\n<p>HTTP Errors:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>201</td>\n<td>Order created successfully.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request / input validation failed - body is <code>{\"error\": \"...\"}</code>.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not found data.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Unprocessable Entity - business error while creating the order (e.g. courier/config issue). Body follows the orderId/error/code shape above.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error, or Pre AWB not activated for this senderId (\"This action is unauthorized.\"), or missing/invalid senderId.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","preAWB"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"eb461f4c-5638-46ad-b535-e9ac97173981"},{"name":"Pre_AWB_Creation_INOUT_LABEL_Web_Service-v1.1","id":"c51766fb-49c6-4109-bb31-b8770475f169","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"testMode\": true,\n    \"senderId\": 333,\n    \"courierId\": 15,\n    \"waybillAvailableDate\": \"2023-06-29\",\n    \"serviceName\": \"crossborder\",\n    \"recipient\": {\n        \"name\": \"API - TESTS\",\n        \"countryIsoCode\": \"BG\",\n        \"cityId\": null,\n        \"cityName\": \"Sofia\",\n        \"zipCode\": \"1000\",\n        \"region\": \"\",\n        \"officeId\": null,\n        \"officeCode\": null,\n        \"streetName\": \"ул. Цар Иван Асен II 64\",\n        \"buildingNumber\": 64,\n        \"addressText\": null,\n        \"contactPerson\": \"API - TESTS\",\n        \"phoneNumber\": \"0887000000\",\n        \"email\": \"test@example.com\"\n    },\n    \"awb\": {\n        \"referenceNumber\": \"bb-test-1000\",\n        \"totalWeight\": 1,\n        \"envelopes\": 0,\n        \"parcels\": 1,\n        \"declaredValue\": null,\n        \"bankRepayment\": null,\n        \"otherRepayment\": \"additional text for repayment\",\n        \"openPackage\": false,\n        \"saturdayDelivery\": false,\n        \"productsInfo\": \"test product test product1\",\n        \"fragile\": 0,\n        \"observations\": null,\n        \"products\": \"test\",\n        \"generateInoutLabelNum\": true,\n        \"packages\": {\n            \"1\": {\n                \"dimensions\": {\n                    \"width\": 10,\n                    \"height\": 10,\n                    \"length\": 10\n                },\n                \"weight\": 1\n            }\n        }\n    }\n}\n","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/preAWB","description":"<p>This is the <strong>same endpoint and validation</strong> as Pre_AWB_Creation_Web_Service-v1.0 (it creates an order in euShipments <strong>without</strong> a courier waybill yet). This page highlights the additional <code>awb.generateInoutLabelNum</code> flag: when sent as true, the order also gets an internal 17-digit INOUT label number that you can print immediately via Pre_AWB_INOUT_LABEL_Web_Service_v1.0 / Pre_AWB_INOUT_LABEL_BY_NUM_Web_Service_v1.0, before any courier waybill exists for the order.</p>\n<p><strong>Precondition:</strong> the Pre AWB service must be activated for your company in euShipments. If it isn't, every call fails with an \"unauthorized\" error - contact your euShipments account manager to have it enabled for your senderId.</p>\n<p>Requirements</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>preAWB</td>\n<td>Creates a pre-AWB order (no courier waybill yet) and, when requested, an INOUT label number for it.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Method: POST\nAuthorization: Bearer API_TOKEN</p>\n<p>Example URLs</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>URL</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Test</td>\n<td><a href=\"https://test-api.inout.bg/api/v1/preAWB\">https://test-api.inout.bg/api/v1/preAWB</a></td>\n</tr>\n<tr>\n<td>Production</td>\n<td><a href=\"https://api1.inout.bg/api/v1/preAWB\">https://api1.inout.bg/api/v1/preAWB</a></td>\n</tr>\n</tbody>\n</table>\n</div><p>API Call Input Fields\nBody (JSON)</p>\n<p>All fields are identical to Pre_AWB_Creation_Web_Service-v1.0 - see that page for the full field-by-field reference (testMode, senderId, courierId, serviceName, waybillAvailableDate, recipient.<em>, awb.</em>, awb.packages.<em>, products.</em>). Only the extra flag is shown below.</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>awb.generateInoutLabelNum</td>\n<td>boolean</td>\n<td>yes (for this variant)</td>\n<td>Set to true.</td>\n<td>Requests generation of an internal INOUT label number for the order, returned as inoutLabelNum in the response.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Reminder - addressing rules for recipient (same as the base endpoint):</strong></p>\n<ul>\n<li>recipient.countryIsoCode is always required, regardless of cityId.</li>\n<li>Send either recipient.cityId, or both recipient.cityName and recipient.zipCode together.</li>\n<li>Independently of cityId/cityName, always send recipient.zipCode or recipient.region (at least one of the two).</li>\n<li>recipient.streetName is always required, even when officeId or officeCode is sent.</li>\n</ul>\n<p><strong>API Response (Output Fields)</strong></p>\n<p>On success the service returns HTTP 201 with:</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>orderId</td>\n<td>Internal ID of the created order (no courier AWB exists yet).</td>\n</tr>\n<tr>\n<td>error</td>\n<td>Always false on success.</td>\n</tr>\n<tr>\n<td>code</td>\n<td>Always 201 on success.</td>\n</tr>\n<tr>\n<td>inoutLabelNum</td>\n<td>17-digit internal label number, format 33333330######### (33333330000000000 + internal record id). Use it with Pre_AWB_INOUT_LABEL_BY_NUM_Web_Service_v1.0 to print the label, or use orderId with Pre_AWB_INOUT_LABEL_Web_Service_v1.0.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"orderId\": 4815162,\n    \"error\": false,\n    \"code\": 201,\n    \"inoutLabelNum\": \"33333330004815162\"\n}\n\n</code></pre>\n<p>On a business/processing error, the response follows the orderId/error/code shape, with the HTTP status equal to the code value, and inoutLabelNum always present as null:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"orderId\": null,\n    \"inoutLabelNum\": null,\n    \"error\": \"error text\",\n    \"code\": 422\n}\n\n</code></pre>\n<p>On a plain input-validation error (a required field missing, a value failing the rules), the response is the simpler shape used across the API, with HTTP 400:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"error text\"\n}\n\n</code></pre>\n<p>HTTP Errors:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>201</td>\n<td>Order (and INOUT label number) created successfully.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request / input validation failed - body is <code>{\"error\": \"...\"}</code>.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not found data.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Unprocessable Entity - business error while creating the order. Body follows the orderId/error/code shape above.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error, or Pre AWB not activated for this senderId (\"This action is unauthorized.\"), or missing/invalid senderId.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","preAWB"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"c51766fb-49c6-4109-bb31-b8770475f169"},{"name":"Pre_AWB_INOUT_LABEL_Web_Service_v1.0","id":"04d12849-27f9-4f52-b202-d2a73d257e1f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/preAWB/print/inout/label/{OrderId}","description":"<p>Prints (retrieves) the INOUT label for a pre-AWB order, identified by the order's internal <strong>orderId</strong> (the value returned by Pre_AWB_Creation_INOUT_LABEL_Web_Service-v1.1 in the <code>orderId</code> field, for an order that was created with <code>awb.generateInoutLabelNum: true</code>). No courier waybill needs to exist yet - this label is generated purely from the pre-AWB order data.</p>\n<p>If you only have the 17-digit <code>inoutLabelNum</code> (not the internal orderId), use Pre_AWB_INOUT_LABEL_BY_NUM_Web_Service_v1.0 instead.</p>\n<p>Requirements</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>preAWB/print/inout/label/{orderId}</td>\n<td>Returns the INOUT label (PDF or ZPL) for the pre-AWB order with the given internal orderId.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Method: GET\nAuthorization: Bearer API_TOKEN</p>\n<p>Example URLs</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>URL</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Test</td>\n<td><a href=\"https://test-api.inout.bg/api/v1/preAWB/print/inout/label/%7BorderId%7D?testMode=0&amp;printFileType=2\">https://test-api.inout.bg/api/v1/preAWB/print/inout/label/{orderId}?testMode=0&amp;printFileType=2</a></td>\n</tr>\n<tr>\n<td>Production</td>\n<td><a href=\"https://api1.inout.bg/api/v1/preAWB/print/inout/label/%7BorderId%7D?testMode=0&amp;printFileType=2\">https://api1.inout.bg/api/v1/preAWB/print/inout/label/{orderId}?testMode=0&amp;printFileType=2</a></td>\n</tr>\n</tbody>\n</table>\n</div><p>API Call Input Fields\nPath parameter</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>orderId</td>\n<td>integer</td>\n<td>yes</td>\n<td>Must be an order that exists and has an INOUT label (created with awb.generateInoutLabelNum: true).</td>\n<td>Internal order ID returned by Pre_AWB_Creation_INOUT_LABEL_Web_Service-v1.1.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Query string</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>boolean</td>\n<td><strong>yes</strong></td>\n<td>0 or 1. Not sending it fails validation.</td>\n<td>Whether to look up the order on the test or production data set.</td>\n</tr>\n<tr>\n<td>printFileType</td>\n<td>integer</td>\n<td>no</td>\n<td>Enum: 2 (PDF, default), 3 (ZPL).</td>\n<td>Output format of the label.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>API Response (Output Fields)</strong></p>\n<p>On success the service returns HTTP 200 with:</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>type</td>\n<td>\"PDF\" or \"ZPL\", matching the requested printFileType.</td>\n</tr>\n<tr>\n<td>awb_print</td>\n<td>The label content: base64-encoded PDF when type is \"PDF\", or the raw ZPL text when type is \"ZPL\".</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example (PDF):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"PDF\",\n    \"awb_print\": \"JVBERi0xLjcKJcfsj6IKOCAwIG9iago8PC9MZW5ndGggOSAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+...\"\n}\n\n</code></pre>\n<p><strong>Example (ZPL):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"ZPL\",\n    \"awb_print\": \"^XA^FO50,50^A0N,40,40^FDTest label^FS^XZ\"\n}\n\n</code></pre>\n<p>On error:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"error text\"\n}\n\n</code></pre>\n<p>HTTP Errors:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Unprocessable Entity - either the testMode query parameter is missing (\"The field (testMode) required! Should present in your url query.\"), the specified orderId has no printable INOUT label (\"Cannot print the specified orderId\"), or ZPL generation failed (\"Failed to generate ZPL label.\").</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","preAWB","print","inout","label","{OrderId}"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"04d12849-27f9-4f52-b202-d2a73d257e1f"},{"name":"Pre_AWB_INOUT_LABEL_BY_NUM_Web_Service_v1.0","id":"b8522877-d382-4d06-bdd4-54eb406857b2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://api1.inout.bg/api/v1/preAWB/print/inout/label/num/{inoutLabelNum}","description":"<p>Prints (retrieves) the INOUT label for a pre-AWB order, identified by the 17-digit <strong>inoutLabelNum</strong> itself (the value returned by Pre_AWB_Creation_INOUT_LABEL_Web_Service-v1.1 in the <code>inoutLabelNum</code> field, format 33333330#########, for an order that was created with <code>awb.generateInoutLabelNum: true</code>). No courier waybill needs to exist yet - this label is generated purely from the pre-AWB order data.</p>\n<p>If you have the internal orderId instead of the label number, use Pre_AWB_INOUT_LABEL_Web_Service_v1.0 instead.</p>\n<p>Requirements</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>preAWB/print/inout/label/num/{inoutLabelNum}</td>\n<td>Returns the INOUT label (PDF or ZPL) for the pre-AWB order with the given 17-digit inoutLabelNum.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Method: GET\nAuthorization: Bearer API_TOKEN</p>\n<p>Example URLs</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Environment</strong></th>\n<th><strong>URL</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Test</td>\n<td><a href=\"https://test-api.inout.bg/api/v1/preAWB/print/inout/label/num/%7BinoutLabelNum%7D?testMode=0&amp;printFileType=2\">https://test-api.inout.bg/api/v1/preAWB/print/inout/label/num/{inoutLabelNum}?testMode=0&amp;printFileType=2</a></td>\n</tr>\n<tr>\n<td>Production</td>\n<td><a href=\"https://api1.inout.bg/api/v1/preAWB/print/inout/label/num/%7BinoutLabelNum%7D?testMode=0&amp;printFileType=2\">https://api1.inout.bg/api/v1/preAWB/print/inout/label/num/{inoutLabelNum}?testMode=0&amp;printFileType=2</a></td>\n</tr>\n</tbody>\n</table>\n</div><p>API Call Input Fields\nPath parameter</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>inoutLabelNum</td>\n<td>string</td>\n<td>yes</td>\n<td>17-digit number, format 33333330#########. Must belong to an order that exists and has an INOUT label.</td>\n<td>The inoutLabelNum returned by Pre_AWB_Creation_INOUT_LABEL_Web_Service-v1.1.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Query string</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>boolean</td>\n<td><strong>yes</strong></td>\n<td>0 or 1. Not sending it fails validation.</td>\n<td>Whether to look up the label on the test or production data set.</td>\n</tr>\n<tr>\n<td>printFileType</td>\n<td>integer</td>\n<td>no</td>\n<td>Enum: 2 (PDF, default), 3 (ZPL).</td>\n<td>Output format of the label.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>API Response (Output Fields)</strong></p>\n<p>On success the service returns HTTP 200 with:</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>type</td>\n<td>\"PDF\" or \"ZPL\", matching the requested printFileType.</td>\n</tr>\n<tr>\n<td>awb_print</td>\n<td>The label content: base64-encoded PDF when type is \"PDF\", or the raw ZPL text when type is \"ZPL\".</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example (PDF):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"PDF\",\n    \"awb_print\": \"JVBERi0xLjcKJcfsj6IKOCAwIG9iago8PC9MZW5ndGggOSAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+...\"\n}\n\n</code></pre>\n<p><strong>Example (ZPL):</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"type\": \"ZPL\",\n    \"awb_print\": \"^XA^FO50,50^A0N,40,40^FDTest label^FS^XZ\"\n}\n\n</code></pre>\n<p>On error:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"error\": \"error text\"\n}\n\n</code></pre>\n<p>HTTP Errors:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Code</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Unprocessable Entity - either the testMode query parameter is missing (\"The field (testMode) required! Should present in your url query.\"), the specified inoutLabelNum has no printable label (\"Cannot print the specified label number\"), or ZPL generation failed (\"Failed to generate ZPL label.\").</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","preAWB","print","inout","label","num","{inoutLabelNum}"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"b8522877-d382-4d06-bdd4-54eb406857b2"}],"id":"b7d237b5-06e4-45b9-9866-25c6f80d3d85","_postman_id":"b7d237b5-06e4-45b9-9866-25c6f80d3d85","description":""},{"name":"Others","item":[{"name":"Couriers_Web_Service_v1.0","id":"07afb7f2-3347-4702-8836-cbbfe189e455","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api1.inout.bg/api/v1/couriers/{companyId}","description":"<p>We offer you the ability to ask for couriers directly from your company's software or website by taking advantage of the \"Couriers Web Service\".</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n<th><strong>Restrictions</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/couriers/{companyId}</td>\n<td>With this service, you can receive the couriers activated for a chosen company. companyId is the ID of your company as returned by the Companies Web Service (/get-user-companies).</td>\n<td>The companyId must be a company linked to your API token. A valid company ID that is not linked to your account returns HTTP 422.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: GET</strong></p>\n<p><strong>Authorization: Bearer API_TOKEN</strong></p>\n<p><strong>Important</strong>:</p>\n<ul>\n<li>If the response is an EMPTY ARRAY, the company has no couriers activated yet — please contact euShipments to add couriers to your client account.</li>\n<li>If you request a company ID that does not belong to your account (or does not exist), the service returns HTTP 422 with {\"error\":\"You do not have access to couriers. Please contact an InOut employee.\"}.</li>\n</ul>\n<p><strong>Examples:</strong></p>\n<p>Test environment\n<a href=\"https://test-api.inout.bg/api/v1/couriers/333\">https://test-api.inout.bg/api/v1/couriers/333</a></p>\n<p>Production environment\n<a href=\"https://api1.inout.bg/api/v1/couriers/333\">https://api1.inout.bg/api/v1/couriers/333</a></p>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>ID</td>\n<td>ID of the courier. Use this value as courierId in the other web services.</td>\n</tr>\n<tr>\n<td>NAME</td>\n<td>The courier name as used in the euShipments platform. It is composed as \" \" (e.g. \"Hungary GLS New\") — do not parse it as an official carrier name.</td>\n</tr>\n<tr>\n<td>TO_OFFICE</td>\n<td>If this field is true, you can create shipments to an office with this courier.</td>\n</tr>\n<tr>\n<td>TO_ADDRESS</td>\n<td>If this field is true, you can create shipments to an address with this courier.</td>\n</tr>\n<tr>\n<td>COUNTRY</td>\n<td>Country where the carrier operates.</td>\n</tr>\n<tr>\n<td>CURRENCY</td>\n<td>Local currency of the country. May be null.</td>\n</tr>\n</tbody>\n</table>\n</div><p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n {\n        \"ID\": 738,\n        \"NAME\": \"Hungary GLS New\",\n        \"TO_OFFICE\": false,\n        \"TO_ADDRESS\": true,\n        \"COUNTRY\": \"Hungary\",\n        \"CURRENCY\": \"HUF\"\n }\n]\n\n</code></pre>\n<p><strong>HTTP Errors:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not found record.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Wrong params, or the company is not linked to your API token: {\"error\":\"You do not have access to couriers. Please contact an InOut employee.\"}.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","couriers","{companyId}"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"07afb7f2-3347-4702-8836-cbbfe189e455"},{"name":"Companies_Web_Service_v1.0","id":"5f6055d7-be14-469a-afea-757ff1f5ad87","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api1.inout.bg/api/v1/get-user-companies","description":"<p>We offer you the ability to ask for the companies (client accounts) linked to your API token directly from your company's software or website by taking advantage of the \"Companies Web Service\".</p>\n<p>The ID returned by this service is the companyId that you need for the Couriers Web Service (/couriers/{companyId}).</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>/get-user-companies</td>\n<td>With this service, you can receive the list of companies (client accounts) linked to your API token.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: GET</strong></p>\n<p><strong>Authorization: Bearer API_TOKEN</strong></p>\n<p><strong>API Call Input Fields</strong></p>\n<p><strong>URL query parameters</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>testMode</td>\n<td>boolean</td>\n<td>no</td>\n<td>If set to true, the data is read from the test environment database instead of the production one.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Examples:</strong></p>\n<p>Test environment\n<a href=\"https://test-api.inout.bg/api/v1/get-user-companies\">https://test-api.inout.bg/api/v1/get-user-companies</a></p>\n<p>Production environment\n<a href=\"https://api1.inout.bg/api/v1/get-user-companies\">https://api1.inout.bg/api/v1/get-user-companies</a></p>\n<p><strong>API Response (Output Fields)</strong></p>\n<p>The response is a JSON array — one element per company linked to your API token.</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>ID of the company. Use this value as companyId in the Couriers Web Service.</td>\n</tr>\n<tr>\n<td>NAME</td>\n<td>Company name.</td>\n</tr>\n<tr>\n<td>BULSTAT</td>\n<td>Company registration / VAT number.</td>\n</tr>\n<tr>\n<td>ADDRESS</td>\n<td>Company address.</td>\n</tr>\n<tr>\n<td>MOL</td>\n<td>Company representative (materially liable person).</td>\n</tr>\n</tbody>\n</table>\n</div><p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">[\n    {\n        \"ID\": 333,\n        \"NAME\": \"Example Company Ltd.\",\n        \"BULSTAT\": \"123456789\",\n        \"ADDRESS\": \"Sofia, ul. Primerna 1\",\n        \"MOL\": \"Ivan Ivanov\"\n    }\n]\n\n</code></pre>\n<p><strong>HTTP Errors</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>404</td>\n<td>Not found user — the API token is not recognized.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>Not found companies for this user — no companies are linked to your account; please contact euShipments.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","get-user-companies"],"host":["api1","inout","bg"],"query":[],"variable":[]}},"response":[],"_postman_id":"5f6055d7-be14-469a-afea-757ff1f5ad87"},{"name":"AWB_Details_Web_Service_v1.0","id":"63ddd4c4-23f3-4311-81e7-eee0cc200f54","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api1.inout.bg/api/v1/get-awb/64506083?testMode=0","description":"<p>We can now offer you the ability to ask for AWB details directly from your company's software or website by taking advantage of \"AWB Details Web Service\".</p>\n<p><strong>Requirements</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>API Endpoint</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>get-awb/{AWBNumber}</td>\n<td>Receive main data for an AWB by AWB number.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Method: GET</strong>\n<strong>Authorization: Bearer API_TOKEN</strong></p>\n<p><strong>API Call Input Fields</strong>\n<strong>URL query parameters</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>restrictions</strong></th>\n<th><strong>description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>testMode</td>\n<td>boolean</td>\n<td>yes</td>\n<td></td>\n<td>If you want to use the API only for tests set this field to true. Applies only to the production environment. On the test environment, all shipments save on test env.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example URLs:</strong></p>\n<p>Test: <a href=\"https://test-api.inout.bg/api/v1/get-awb/64506083?testMode=1\">https://test-api.inout.bg/api/v1/get-awb/64506083?testMode=1</a>\nProduction: <a href=\"https://api1.inout.bg/api/v1/get-awb/64506083?testMode=0\">https://api1.inout.bg/api/v1/get-awb/64506083?testMode=0</a></p>\n<p><strong>API Response (Output 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>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>ID</td>\n<td>Internal ID of the shipment record in our system.</td>\n</tr>\n<tr>\n<td>SENDER_ID</td>\n<td>ID of the company which created the shipment.</td>\n</tr>\n<tr>\n<td>REFERENCENUMBER</td>\n<td>Your order reference number (the \"referenceNumber\" sent at AWB creation).</td>\n</tr>\n<tr>\n<td>WAYBILL_AVAILABLE_DATE</td>\n<td>Date of AWB creation.</td>\n</tr>\n<tr>\n<td>RECIPIENT_NAME</td>\n<td>Name of the recipient.</td>\n</tr>\n<tr>\n<td>CITYNAME</td>\n<td>Name of the city where the recipient should receive the shipment.</td>\n</tr>\n<tr>\n<td>ZIPCODE</td>\n<td>Zip code of the recipient city.</td>\n</tr>\n<tr>\n<td>STREET_NAME</td>\n<td>Recipient street name (for office/locker deliveries contains the office destination text).</td>\n</tr>\n<tr>\n<td>BUILDING_NUMBER</td>\n<td>Building number or street number.</td>\n</tr>\n<tr>\n<td>PHONE_NUMBER</td>\n<td>Phone number of the recipient.</td>\n</tr>\n<tr>\n<td>PARCELS</td>\n<td>Number of parcels.</td>\n</tr>\n<tr>\n<td>TOTAL_WEIGHT</td>\n<td>Shipment weight.</td>\n</tr>\n<tr>\n<td>DECLARED_VALUE</td>\n<td>Shipment insurance / insured amount. Differs per country.</td>\n</tr>\n<tr>\n<td>COD</td>\n<td>COD amount.</td>\n</tr>\n<tr>\n<td>PAYEDNUMBER</td>\n<td>The number of the payment protocol with which euShipments paid out the COD to you. Null until the COD has been paid out.</td>\n</tr>\n<tr>\n<td>PAYEDDATE</td>\n<td>The date on which the COD payout to you was made. Null until the COD has been paid out.</td>\n</tr>\n<tr>\n<td>CURRENCY</td>\n<td>Country currency.</td>\n</tr>\n<tr>\n<td>OPEN_PACKAGE</td>\n<td>Check up shipment before pay (\"open parcel\" service).</td>\n</tr>\n<tr>\n<td>AWB_STATUS</td>\n<td>The AWB status text at this moment.</td>\n</tr>\n<tr>\n<td>COMMENT</td>\n<td>Comment to the shipment.</td>\n</tr>\n<tr>\n<td>PRICE</td>\n<td>The shipment price charged for this AWB.</td>\n</tr>\n<tr>\n<td>COURIER_PAYED_NUMBER</td>\n<td>Reference number of the courier's own COD payment report in which the courier reported this COD as paid to euShipments. Null if the courier has not reported the payment yet.</td>\n</tr>\n<tr>\n<td>COURIER_PAYED_DATE</td>\n<td>Date of the courier's own COD payment report. Null if the courier has not reported the payment yet.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example</strong>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"ID\": 12345678,\n    \"SENDER_ID\": 1362,\n    \"REFERENCENUMBER\": \"185096-6608739-3\",\n    \"WAYBILL_AVAILABLE_DATE\": \"2024-08-01 09:26:11\",\n    \"RECIPIENT_NAME\": \"Faur Sergiu\",\n    \"CITYNAME\": \"Ineu\",\n    \"ZIPCODE\": \"315300\",\n    \"STREET_NAME\": \"To office: easybox Republicii 3\",\n    \"BUILDING_NUMBER\": \"0\",\n    \"PHONE_NUMBER\": \"0743407779\",\n    \"PARCELS\": 1,\n    \"TOTAL_WEIGHT\": \"0.690\",\n    \"DECLARED_VALUE\": \"0.00\",\n    \"COD\": \"174.00\",\n    \"PAYEDNUMBER\": 1000001682,\n    \"PAYEDDATE\": \"2024-08-07 12:00:11\",\n    \"CURRENCY\": \"RON\",\n    \"OPEN_PACKAGE\": 0,\n    \"AWB_STATUS\": \"New\",\n    \"COMMENT\": null,\n    \"PRICE\": \"6.00\",\n    \"COURIER_PAYED_NUMBER\": \"451208\",\n    \"COURIER_PAYED_DATE\": \"2024-08-05 00:00:00\"\n}\n\n</code></pre>\n<p><strong>HTTP Errors:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Code</strong></th>\n<th><strong>Description</strong></th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>200</td>\n<td>Returns result from the web service.</td>\n</tr>\n<tr>\n<td>400</td>\n<td>Bad request.</td>\n</tr>\n<tr>\n<td>401</td>\n<td>Unauthenticated. API expects a header like - 'Authorization: Bearer (api_token)'.</td>\n</tr>\n<tr>\n<td>422</td>\n<td>{\"error\": \"Wrong awb number\"} - the AWB number does not exist or is not accessible with your API token. Note: an unknown AWB returns 422, not 404.</td>\n</tr>\n<tr>\n<td>500</td>\n<td>Internal Server Error / This action is unauthorized.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"protocol":"https","path":["api","v1","get-awb","64506083"],"host":["api1","inout","bg"],"query":[{"key":"testMode","value":"0"}],"variable":[]}},"response":[],"_postman_id":"63ddd4c4-23f3-4311-81e7-eee0cc200f54"}],"id":"98ae42aa-58b8-4e4d-8e93-e5a5460f77b7","description":"<h1 id=\"shipment-creation-guidelines\">Shipment creation guidelines</h1>\n<h3 id=\"phone-format-requirements\"><strong>Phone format requirements:</strong></h3>\n<p><strong>Romania</strong> (all carriers) - phone number without country phone prefix;\n<strong>Bulgaria</strong> - phone number without country phone prefix;\n<strong>Greece</strong> - phone number without country phone prefix;\n<strong>Poland</strong> - phone number without country phone prefix;\n<strong>Czech Republic</strong> - country phone prefix +420 or 00420 + valid mobile number (9 digits);\n<strong>Hungary</strong> - country phone prefix +36 or 0036 + valid mobile number (9 digits);\n<strong>Slovakia</strong> - country phone prefix +421 or 00421 + valid mobile number (9 digits);\n<strong>Croatia</strong> - country phone prefix +385 or 00385 + valid mobile number (9 digits).</p>\n<p><strong>Warning</strong>: Send exactly ONE international prefix. Do not combine the national trunk prefix with the country code — for example, a Hungarian number sent as \"0036\" + \"06...\" (i.e. the national \"06...\" form concatenated after the country code) will be misread and may be rejected as a landline/invalid number. Strip the national prefix first: 06 30 123 4567 must be sent as 0036301234567 (or +36301234567).</p>\n<h2 id=\"delivery-to-a-courier-office--parcel-locker-pudo\"><strong>Delivery to a courier office / parcel locker (PUDO):</strong></h2>\n<p>1. Download the office nomenclature from <a href=\"https://api1.inout.bg/api/v1/offices-by-courier/%7BcourierId%7D\">https://api1.inout.bg/api/v1/offices-by-courier/{courierId}</a> (see the Courier Offices Web Service).</p>\n<p>2. Submit the shipment request in one of the following ways:</p>\n<p>2.1 <strong>Recommended</strong>: in the \"officeId\" field, submit the \"ID\" value from our nomenclature. This is the most reliable option. Alternatively, you can submit the office code in the \"officeCode\" field.</p>\n<p>2.2 In the \"streetName\" field, submit the keyword office + \"OFFICE_NAME\" from our nomenclature. <strong>Important</strong>: the word \"office\" must be at the very START of the streetName field (e.g. \"office Aidemir\").</p>\n<p>2.3 In the \"streetName\" field, submit the keyword office + \"ADDRESS\" from our nomenclature. <strong>Important</strong>: the word \"office\" must be at the very START of the streetName field.</p>\n<p>Sample data for the points described above:</p>\n<p>2.1 (recommended — by officeId)</p>\n<p>``` json\n\"recipient\": {\n    \"name\": \"Test User\",\n    \"countryIsoCode\": \"BG\",\n    \"cityId\": null,\n    \"region\": null,\n    \"cityName\": \"Aidemir\",\n    \"zipCode\": \"7538\",\n    \"streetName\": \"\",\n    \"buildingNumber\": 0,\n    \"officeId\": 1297,\n    \"officeCode\": \"\",\n    \"addressText\": \"additional text, address test\",\n    \"contactPerson\": \"Test User\",\n    \"phoneNumber\": \"0889000000\",\n    \"email\": \"<a href=\"mailto:test@example.com\">test@example.com</a>\"\n}</p>\n<p>2.2 (by office name in streetName)</p>\n<p>\"recipient\": {\n    \"name\": \"Test User\",\n    \"countryIsoCode\": \"BG\",\n    \"cityId\": null,\n    \"region\": null,\n    \"cityName\": \"Aidemir\",\n    \"zipCode\": \"7538\",\n    \"streetName\": \"office Aidemir\",\n    \"buildingNumber\": 0,\n    \"officeId\": null,\n    \"officeCode\": \"\",\n    \"addressText\": \"additional text, address test\",\n    \"contactPerson\": \"Test User\",\n    \"phoneNumber\": \"0889000000\",\n    \"email\": \"<a href=\"mailto:test@example.com\">test@example.com</a>\"\n}</p>\n<p>2.3 (by office address in streetName)</p>\n<p>\"recipient\": {\n    \"name\": \"Test User\",\n    \"countryIsoCode\": \"BG\",\n    \"cityId\": null,\n    \"region\": null,\n    \"cityName\": \"Aidemir\",\n    \"zipCode\": \"7538\",\n    \"streetName\": \"office Aidemir kv. Delenkite ul. Sofia №7\",\n    \"buildingNumber\": 0,\n    \"officeId\": null,\n    \"officeCode\": \"\",\n    \"addressText\": \"additional text, address test\",\n    \"contactPerson\": \"Test User\",\n    \"phoneNumber\": \"0889000000\",\n    \"email\": \"<a href=\"mailto:test@example.com\">test@example.com</a>\"\n}</p>\n<p>Note: fields without a value should be sent as JSON null (e.g. \"region\": null), not as the string \"null\".</p>\n","_postman_id":"98ae42aa-58b8-4e4d-8e93-e5a5460f77b7"}]}