openapi: 3.0.3 info: title: 'Metrica API Documentation' description: '' version: 1.0.0 servers: - url: 'https://clients.metrica.bg' paths: /api/v1/connectors/client/couriers/allowed: get: summary: 'GET Allowed Couriers and SubAccounts' operationId: gETAllowedCouriersAndSubAccounts description: "List all allowed couriers and their sub accounts, if exists.\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Couriers' /api/v1/connectors/client/entries: get: summary: 'GET All Entries' operationId: gETAllEntries description: "List all product entries.\n\nThrottling: Max 40 requests per minute. (40/1)\n\nPresents the result with page size and pagination.\n\nDefault page size : 200 records per page." parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Entries' /api/v1/connectors/client/entries/filter: get: summary: 'GET Filtered Entries' operationId: gETFilteredEntries description: "List sumOf product entries that match filters with product information.\n\nPresents the result with page size and simple pagination (without showing the total number of records and last page).\n\nThrottling: Max 20 requests per minute. (20/1) Max 100 requests per hour. (100/60)\n\nDefault page size : 250 records per page. (Maximum 1000 records per page)" parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Entries' requestBody: required: false content: application/json: schema: type: object properties: ids: type: string description: 'List of comma-separated Entry IDs.' example: '47860,47859' nullable: false productIds: type: string description: 'List of comma-separated Product IDs.' example: '184737,184738' nullable: false type: type: 'enum(returns,imports)' description: 'The type of entry. Must be either returns or imports.' example: imports nullable: false startDate: type: date description: 'The entry date. Must be a date between past and today. The format must be in: Y-m-d.' example: '2025-06-01' nullable: false endDate: type: date description: 'The entry date. Must be a date between past and today. If there is a startDate, endDate must be later than startDate. The format must be in: Y-m-d.' example: '2025-07-07' nullable: false sortDate: type: 'enum(DESC,ASC)' description: 'Order in which to retrieve results. - Default : ASC.' example: DESC nullable: false perPage: type: integer description: 'Number of entries per page. The allowed values are between 10 and 1000. If not provided, the default is 250.' example: 250 nullable: false /api/v1/connectors/client/entries/createdToday: get: summary: 'GET Entries created today' operationId: gETEntriesCreatedToday description: "List all entries that were created today\n\nPresents the result with page size and pagination.\n\nThrottling: Max 5 requests per minute. (5/1)\n\nDefault page size : 200 records per page." parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Entries' /api/v1/connectors/client/entries/returns/sumOfQty: get: summary: 'GET Returned Entries' operationId: gETReturnedEntries description: "List sumOf product entries from returned orders, grouped by products and orders\n\nThrottling: Max 20 requests per minute. (20/1)\n\nPresents the result with page size and pagination.\n\nDefault page size : 200 records per page." parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Entries' /api/v1/connectors/client/entries/imports/sumOfQty: get: summary: 'GET Import Entries' operationId: gETImportEntries description: "List sumOf product entries from imports, grouped by products and imports\n\nThrottling: Max 20 requests per minute. (20/1)\n\nPresents the result with page size and pagination.\n\nDefault page size : 200 records per page." parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Entries' /api/v1/connectors/client/recipients: get: summary: 'GET All Recipients' operationId: gETAllRecipients description: "List all recipients.\n\nPresents the result with page size and pagination.\n\nDefault page size : 200 records per page.\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Recipients' post: summary: 'CREATE Recipient' operationId: cREATERecipient description: "Create a new Recipient\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: { } tags: - 'API V1 - Recipients' requestBody: required: true content: application/json: schema: type: object properties: recipientExternalId: type: string description: 'A unique alphanumeric identifier for the recipient, used to link with external records. Must be unique within your recipient records.' example: MHM124503sDfHJj nullable: false isLegalEntity: type: boolean description: 'Mention if the recipient is a legal entity/juridical person or an individual/natural person. Accepted input are true, false, 1, 0, "1", and "0".' example: true nullable: false companyName: type: string description: 'requiredIf The billing Company name. Fill only if the recipient is a legal entity. This is prohibited when isLegalEntity is set to false. Max 75 characters allowed.' example: 'Company Name' nullable: false companyUniqueIdentifier: type: string description: 'requiredIf The billing Company Unique Identifier (CUI/VAT). Fill only if the recipient is a legal entity. This is prohibited when isLegalEntity is set to false. All whitespaces and non-alphanumeric characters are automatically removed from this field. Max 30 characters allowed.' example: RO55599888 nullable: false companyRegistrationNumber: type: string description: 'requiredIf The billing company registration number. Fill only if the recipient is a legal entity. This is prohibited when isLegalEntity is set to false. Max 50 characters allowed.' example: J99/9999/1950 nullable: false companyBankName: type: string description: 'The billing company bank name. Fill only if the recipient is for a legal entity. This is prohibited when isLegalEntity is set to false. Max 50 characters allowed.' example: 'The Bank of' nullable: false companyIban: type: string description: 'The billing company IBAN. Fill only if the recipient is for a legal entity. Max 34 characters allowed. This is prohibited when isLegalEntity is set to false.' example: RO49AAAA1B31007593840000 nullable: false contactPerson: type: string description: 'The name of the recipient.' example: 'John Doe' nullable: false address: type: string description: 'optional The address of the recipient.' example: 'Green Street 23' nullable: false country: type: string description: 'The country of the recipient.' example: Romania nullable: false city: type: string description: 'The city of the recipient.' example: Bucharest nullable: false county: type: string description: 'The county of the recipient.' example: 'Sector 1' nullable: false postalCode: type: string description: 'optional The postal code of the recipient.' example: '010025' nullable: false phone: type: string description: 'The phone number of the recipient. Must have 10 digits.' example: '0700099900' nullable: false email: type: string description: 'optional The email of the recipient.' example: john.d@gmail.com nullable: false required: - recipientExternalId - isLegalEntity - contactPerson - country - city - county - phone '/api/v1/connectors/client/recipients/{id}': get: summary: 'GET Recipient By ID' operationId: gETRecipientByID description: "Get Recipient information by internal ID.\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for Recipient not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for Recipient not found' code: type: integer example: 404 tags: - 'API V1 - Recipients' put: summary: 'UPDATE Recipient' operationId: uPDATERecipient description: "Update Recipient by ID\n\nThrottling: Max 60 requests per minute. (60/1)\n\n" parameters: [] responses: { } tags: - 'API V1 - Recipients' requestBody: required: true content: application/json: schema: type: object properties: recipientExternalId: type: string description: 'A unique alphanumeric identifier for the recipient, used to link with external records. Must be unique within your recipient records.' example: MHM124503sDfHJj nullable: false isLegalEntity: type: boolean description: 'Mention if the recipient is a legal entity/juridical person or an individual/natural person. Accepted input are true, false, 1, 0, "1", and "0".' example: true nullable: false companyName: type: string description: 'requiredIf The billing Company name. Fill only if the recipient is a legal entity. This is prohibited when isLegalEntity is set to false. Max 75 characters allowed.' example: 'Company Name' nullable: false companyUniqueIdentifier: type: string description: 'requiredIf The billing Company Unique Identifier (CUI/VAT). Fill only if the recipient is a legal entity. This is prohibited when isLegalEntity is set to false. All whitespaces and non-alphanumeric characters are automatically removed from this field. Max 30 characters allowed.' example: RO55599888 nullable: false companyRegistrationNumber: type: string description: 'requiredIf The billing company registration number. Fill only if the recipient is a legal entity. This is prohibited when isLegalEntity is set to false. Max 50 characters allowed.' example: J99/9999/1950 nullable: false companyBankName: type: string description: 'The billing company bank name. Fill only if the recipient is for a legal entity. This is prohibited when isLegalEntity is set to false. Max 50 characters allowed.' example: 'The Bank of' nullable: false companyIban: type: string description: 'The billing company IBAN. Fill only if the recipient is for a legal entity. This is prohibited when isLegalEntity is set to false. Max 34 characters allowed.' example: RO49AAAA1B31007593840000 nullable: false contactPerson: type: string description: 'The name of the recipient.' example: 'John Doe' nullable: false address: type: string description: 'optional The address of the recipient.' example: 'Green Street 23' nullable: false country: type: string description: 'The country of the recipient.' example: Romania nullable: false city: type: string description: 'The city of the recipient.' example: Bucharest nullable: false county: type: string description: 'The county of the recipient.' example: 'Sector 1' nullable: false postalCode: type: string description: 'optional The postal code of the recipient.' example: '010025' nullable: false phone: type: string description: 'The phone number of the recipient. Must have 10 digits.' example: '0700099900' nullable: false email: type: string description: 'optional The email of the recipient.' example: john.d@gmail.com nullable: false required: - recipientExternalId - isLegalEntity - contactPerson - country - city - county - phone delete: summary: 'DELETE Recipient By ID' operationId: dELETERecipientByID description: "Delete Recipient by internal id\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for Recipient not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for Recipient not found' code: type: integer example: 404 tags: - 'API V1 - Recipients' parameters: - in: path name: id description: 'The ID of the recipient.' example: 537 required: true schema: type: integer '/api/v1/connectors/client/recipients/byExternalId/{externalId}': get: summary: 'GET Recipient By External ID' operationId: gETRecipientByExternalID description: "Get Recipient by external ID.\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for Recipient not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for Recipient not found' code: type: integer example: 404 tags: - 'API V1 - Recipients' parameters: - in: path name: externalId description: 'The recipient external ID.' example: MHM024515AP required: true schema: type: string /api/v1/connectors/client/orders: get: summary: 'GET All Orders' operationId: gETAllOrders description: "List all orders.\n\nThrottling: Max 5 requests per minute. (5/1) Max 20 requests per hour. (20/60)\n\nPresents the result with page size and simple pagination (without showing the total number of records and last page).\n\nDefault page size : 500 records per page.\nThe ordering is newest orders first." parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Orders' /api/v1/connectors/client/orders/filter: get: summary: 'GET Filtered Orders' operationId: gETFilteredOrders description: "List all orders that match filters.\n\nThrottling: Max 5 requests per minute. (5/1) Max 20 requests per hour. (20/60)\n\nPresents the result with page size and pagination.\n\nDefault page size : 250 records per page. (Maximum 500)" parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Orders' requestBody: required: false content: application/json: schema: type: object properties: ids: type: string description: 'List of comma-separated Order IDs.' example: '3234201,3234202' nullable: false external_ids: type: string description: 'List of comma-separated Order external IDs.' example: 'MHMF134018SHNi,MHMF134018SH12' nullable: false startDate: type: date description: 'A date between past and today. The format must be in: Y-m-d H:i:s.' example: '2024-01-01 12:59:59' nullable: false endDate: type: date description: 'A date between past and today. If there is a startDate, endDate must be later than startDate. The format must be in: Y-m-d H:i:s.' example: '2024-12-22 19:30:00' nullable: false dateFilterBy: type: 'enum(CREATED_AT,UPDATED_AT,SHIPPED_AT,RETURNED_AT)' description: 'The column to which startDate and endDate are compared. - Default: CREATED_AT.' example: CREATED_AT nullable: false sortDate: type: 'enum(DESC,ASC)' description: 'Order in which to retrieve results. - default ASC' example: ASC nullable: false status: type: 'enum(Sent,Callcenter,InProcessing,NotReady,Locked)' description: 'Filter orders by their status specified by a comma-separated list.' example: 'InProcessing,Sent' nullable: false shippingAWB: type: string description: 'The AWB number.' example: null nullable: false customerName: type: string description: 'The name of the customer.' example: ContactPerson3 nullable: false customerPhone: type: string description: "The customer's phone number." example: '0700112233' nullable: false isReturned: type: boolean description: 'A filter that will select only orders that are returned or not returned.' example: false nullable: false withCashOnDelivery: type: boolean/int/string description: 'A filter that will select only the orders with or without cash on delivery. Accepted inputs are true, false, 1, 0, "1", and "0".' example: '0' nullable: false perPage: type: integer description: 'Number of entries per page. The allowed values are between 10 and 500. If not provided, the default is 250.' example: 250 nullable: false /api/v1/connectors/client/orders/filterByDate: post: summary: 'POST Filter Orders by Date' operationId: pOSTFilterOrdersByDate description: "Returns a list with the orders filtered by the date of entry, the shipping date or the returned date.\n\nThrottling: Max 20 requests per minute. (20/1)\n\nPresents the result with page size and pagination." parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: { } tags: - 'API V1 - Orders' requestBody: required: true content: application/json: schema: type: object properties: filterBy: type: string description: 'The filterBy field accepts only the following values: entryDate, shippingDate, returnedDate.' example: entryDate nullable: false fromDate: type: date description: 'A date in the past that is applied to the chosen filter. The date must be older than today and not older than 62 days from today. The format must be in: yyyy-mm-dd' example: '2020-01-01' nullable: false perPage: type: integer description: 'Number of orders to show per page. The allowed values are between 10 and 500.' example: 100 nullable: false required: - filterBy - fromDate - perPage /api/v1/connectors/client/orders/filterByDateIntervals: post: summary: 'POST Filter Orders by Date Intervals' operationId: pOSTFilterOrdersByDateIntervals description: "Returns a list with the orders between two dates.\nThe result can be filtered by the date of entry, the shipping date or the returned date.\n\nThrottling: Max 20 requests per minute. (20/1)\n\nPresents the result with page size and pagination." parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: { } tags: - 'API V1 - Orders' requestBody: required: true content: application/json: schema: type: object properties: filterBy: type: string description: 'The filterBy field accepts only the following values: entryDate, shippingDate, returnedDate.' example: entryDate nullable: false startDate: type: date description: 'A date between past and today. The format must be in: yyyy-mm-dd' example: '2024-01-01' nullable: false endDate: type: date description: 'A date between past and today. The date must later or equal to startDate and not later than 62 days. The format must be in: yyyy-mm-dd' example: '2024-01-31' nullable: false withCashOnDelivery: type: boolean description: 'A filter that will select only the orders with or without cash on delivery. Accepted input are true, false, 1, 0, "1", and "0".' example: false nullable: false perPage: type: integer description: 'Number of orders per page. The allowed values are between 10 and 500.' example: 100 nullable: false required: - filterBy - startDate - endDate - perPage /api/v1/connectors/client/orders/filterByStatus: post: summary: 'POST Filter Orders by Status' operationId: pOSTFilterOrdersByStatus description: "List the orders in our system filtering by the order status\n\nThrottling: Max 20 requests per minute. (20/1)\n\nPresents the result with page size and pagination." parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: { } tags: - 'API V1 - Orders' requestBody: required: true content: application/json: schema: type: object properties: status: type: string description: 'The status field accepts only the following values: Locked, Callcenter, NotReady, Processing, Shipped, NotShipped.' example: Shipped nullable: false perPage: type: integer description: 'Number of orders to show per page. The allowed values are between 10 and 500.' example: 100 nullable: false required: - status - perPage /api/v1/connectors/client/orders/todayLatestUpdated: get: summary: 'GET Today latest updated orders' operationId: gETTodayLatestUpdatedOrders description: "Retrieve a list of today's latest updated orders.\n\n\n\nThrottling: Max 1 request per 10 minutes. (1/10)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Orders' '/api/v1/connectors/client/orders/byId/{orderId}': get: summary: 'GET Order By ID' operationId: gETOrderByID description: "Get Order information by internal ID.\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for OrderItem not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for OrderItem not found' code: type: integer example: 404 tags: - 'API V1 - Orders' parameters: - in: path name: orderId description: 'The order ID.' example: 3234201 required: true schema: type: integer '/api/v1/connectors/client/orders/byExternalId/{externalId}': get: summary: 'GET Order By External ID' operationId: gETOrderByExternalID description: "Get Order information by external ID.\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for OrderItem not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for OrderItem not found' code: type: integer example: 404 tags: - 'API V1 - Orders' parameters: - in: path name: externalId description: 'The order external ID.' example: MHMF1338580SQl required: true schema: type: string '/api/v1/connectors/client/orders/byAwb/{awb}': get: summary: 'GET Order By AWB' operationId: gETOrderByAWB description: "Get Order information by AWB Number.\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for OrderItem not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for OrderItem not found' code: type: integer example: 404 tags: - 'API V1 - Orders' parameters: - in: path name: awb description: 'Optional parameter. alphaNum required The order AWB Number.' required: true schema: type: string examples: omitted: summary: 'When the value is omitted' value: '' present: summary: 'When the value is present' value: AWBNO9923 '/api/v1/connectors/client/orders/byExternalSourceOrderId/{externalSourceOrderId}': get: summary: 'GET Order By External Source Order ID' operationId: gETOrderByExternalSourceOrderID description: "Get Order information by external source order ID.\n\nThrottling: Max 60 requests per minute. (60/1)\n\n" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for OrderItem not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for OrderItem not found' code: type: integer example: 404 tags: - 'API V1 - Orders' parameters: - in: path name: externalSourceOrderId description: 'Optional parameter. alphaNum required The order externalSourceOrderId.' required: true schema: type: string examples: omitted: summary: 'When the value is omitted' value: '' present: summary: 'When the value is present' value: SID323 /api/v1/connectors/client/orders/shipped/with/expiryDates: get: summary: 'GET Shipped Orders With Expiry Dates' operationId: gETShippedOrdersWithExpiryDates description: "Returns a list with the shipped orders and a field named shippedExpiryDates for each product that contains a list with the quantity of each date/batch.\nThe expiryDate and batch fields will be null if the productType is Normal.\nThe orders are sorted DESC by the shipped date.\n\nThrottling: Max 10 requests per minute. (10/1)\n\nPresents the result with page size and pagination." parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Orders' /api/v1/connectors/client/orders/create: post: summary: 'CREATE Order' operationId: cREATEOrder description: "Creates a new Order.\n\nThrottling: Max 15 requests per minute. (15/1)\n\n\n\n\n" parameters: [] responses: { } tags: - 'API V1 - Orders' requestBody: required: true content: application/json: schema: type: object properties: externalId: type: string description: 'sometimes The order external ID. Is generated automatically by us if not provided. To avoid order duplicates provide it from your source id field.' example: ID123 nullable: false prefDate: type: date description: 'Preferred shipment date of the order. Use the current date if it does not exist.' example: '2040-12-31' nullable: false address: type: string description: 'requiredIf The recipient address. This field is required only if awbUrl field is empty.' example: 'Str. My Street, No.10, Ap. 99' nullable: false streetId: type: integer description: 'The recipient street id. Is usually used in some courier integrations.' example: 995 nullable: false cityId: type: integer description: 'requiredIf The recipient city id. This field is required only if the selected courier is EMAG (courierId 7). Is usually used in some courier integrations.' example: 15 nullable: false city: type: string description: 'requiredIf The recipient city. The field must have at least 1 character. This field is required only if awbUrl field is empty. Max 50 characters allowed.' example: Bucuresti nullable: false county: type: string description: 'requiredIf The recipient county. The field must have at least 1 character. This field is required only if awbUrl field is empty. Max 50 characters allowed.' example: 'Sector 1' nullable: false country: type: string description: 'requiredIf The recipient country. The field must have min 2 characters. It is required if awbUrl field is empty. Between 2 and 50 characters allowed.' example: RO nullable: false postalCode: type: string description: 'The recipient postal code. Max 10 characters allowed.' example: '010111' nullable: false companyName: type: string description: 'The recipient company name. Fill only if the shipment is B2B. Max 150 characters allowed.' example: 'Company SA' nullable: false companyUniqueIdentifier: type: string description: 'The recipient Company Unique Identifier (CUI/VAT). Fill only if the shipment is B2B. Max 20 characters allowed.' example: RO55599888 nullable: false companyRegistrationNumber: type: string description: 'The recipient company registration number. Fill only if the shipment is B2B. Max 100 characters allowed.' example: J99/9999/1950 nullable: false contactPerson: type: string description: 'requiredIf The recipient contact person. This field is required only if awbUrl field is empty. Max 200 characters allowed.' example: 'Contact Person' nullable: false contactPhone: type: string description: 'requiredIf The recipient contact person phone. This field is required only if awbUrl field is empty. The phone number must contain the correct number of digits (usually between 8-14) and the allowed characters between digits are: space, dash, dots or parenthesis.' example: '0700999111' nullable: false contactEmail: type: email description: 'requiredIf The recipient contact person email. It is required if the selected courier is DPD (courierId 3) and the country is not RO/Romania.' example: test@test.com nullable: false cashOnDelivery: type: numeric description: 'The shipment Cash On Delivery amount. The amount can have max 2 decimals. If the order does not have Cash On Delivery the field value must be 0.' example: '100.99' nullable: false declaredValueAmount: type: numeric description: 'The shipment declared value amount. The amount can have max 2 decimals.' example: '100.99' nullable: false warehouseRemarks: type: sting description: 'Info for the Warehouse operators.' example: eligendi nullable: false shippingInstructions: type: sting description: 'Info for the shipping courier.' example: voluptatem nullable: false courierId: type: integer description: 'The courier ID.' example: 15 nullable: false courierSubAccountId: type: integer description: 'The SubAccount courier ID.' example: 4 nullable: false awbUrl: type: url description: 'Url path to a pdf containing the order AWB. Max 250 characters allowed.' example: 'https://pathtomyawb.pdf' nullable: false invoiceUrl: type: url description: 'Url path to a pdf containing the order invoice. Max 250 characters allowed.' example: 'https://pathtomyinvoice.pdf' nullable: false deliveryNoteUrl: type: url description: 'Url path to a pdf containing the order delivery note. Max 250 characters allowed.' example: 'https://pathtomydeliverynote.pdf' nullable: false maxKeepDays: type: integer description: 'Value between 0 and 365.' example: 365 nullable: false externalSource: type: string description: 'The name of the external source of the order. The value must start with a value from in External Source List endpoint result.' example: 'Shopify MyWebSite' nullable: false externalSourceOrderId: type: string description: 'The order website id or any other id that can help identify the order in our system.' example: AxZ00001 nullable: false awbNumber: type: alphaNumeric description: 'The AWB Number. Max 150 characters allowed.' example: AWB001 nullable: false withPriority: type: boolean description: 'Mention if the order must be prioritized. Accepted input are true, false, 1, 0, "1", and "0".' example: false nullable: false saveAsLocked: type: boolean description: 'Mention if the order must be saved as Locked. Accepted input are true, false, 1, 0, "1", and "0".' example: false nullable: false lockerId: type: string description: 'Value must have max 100 characters. Allowed characters are: alphanumeric, space or parenthesis. The lockerId is only allowed on a few couriers.' example: '"5959"' nullable: false useOverriddenValidationRules: type: boolean description: 'If there are custom validation rules added by developers this field must be passed as true in order to be taken into account.' example: false nullable: false products: type: array description: 'Array of products' example: - [] items: type: object properties: id: type: string description: 'The product (internal) ID. The id must be unique(distinct) in the products object.' example: '184736' nullable: false quantity: type: integer description: 'The product quantity. The value must be at least 1.' example: 3 nullable: false price: type: number description: 'The product price. The price can have max 4 decimals.' example: 100.9999 nullable: false required: - id - quantity required: - prefDate - cashOnDelivery - courierId - maxKeepDays - products '/api/v1/connectors/client/orders/update/{orderId}': put: summary: 'UPDATE Order' operationId: uPDATEOrder description: "Updates order by ID\n\nThrottling: Max 15 requests per minute. (15/1)\n\n\n\n" parameters: [] responses: { } tags: - 'API V1 - Orders' requestBody: required: true content: application/json: schema: type: object properties: address: type: string description: 'requiredIf The recipient address. It is required if awbUrl field is empty.' example: 'Str. My Street, No.10, Ap. 99' nullable: false city: type: string description: 'requiredIf The recipient city. The field must have at least 1 character. It is required if awbUrl field is empty. Max 50 characters allowed.' example: Bucuresti nullable: false county: type: string description: 'requiredIf The recipient county. The field must have at least 1 character. It is required if awbUrl field is empty. Max 50 characters allowed.' example: 'Sector 12307050000008470' nullable: false country: type: string description: 'requiredIf The recipient country. The field must have min 2 characters. It is required if awbUrl field is empty. Between 2 and 50 characters allowed.' example: RO nullable: false postalCode: type: string description: 'The recipient postal code. Max 10 characters allowed.' example: ea nullable: false companyName: type: string description: 'The recipient company name. Fill only if the shipment is B2B. Max 150 characters allowed.' example: 'Company SA' nullable: false companyUniqueIdentifier: type: string description: 'The recipient Company Unique Identifier (CUI/VAT). Fill only if the shipment is B2B. Max 20 characters allowed.' example: RO55599888 nullable: false companyRegistrationNumber: type: string description: 'The recipient company registration number. Fill only if the shipment is B2B. Max 100 characters allowed.' example: J99/9999/1950 nullable: false contactPerson: type: string description: 'The recipient contact person. Max 200 characters allowed.' example: qui nullable: false contactPhone: type: string description: 'The recipient contact person phone. The phone number must contain the correct number of digits and the allowed characters between digits are: space, dash, dots or parenthesis.' example: '0700999111' nullable: false contactEmail: type: email description: 'requiredIf The recipient contact person email. It is required if the selected courier is DPD (courierId 7) and the country is not RO/Romania.' example: xbeer@example.net nullable: false cashOnDelivery: type: numeric description: 'The shipment Cash On Delivery amount. The amount can have max 2 decimals. If the order does not have Cash On Delivery the field value must be 0.' example: '100.99' nullable: false warehouseRemarks: type: sting description: 'Info for Warehouse.' example: officia nullable: false shippingInstructions: type: sting description: 'Info for the shipping courier.' example: ab nullable: false courierId: type: integer description: 'The courier ID.' example: 15 nullable: false courierSubAccountId: type: integer description: 'The SubAccount courier ID.' example: 4 nullable: false awbUrl: type: url description: 'Url path to a pdf containing the order AWB. Max 250 characters allowed.' example: 'https://pathtomyawb.pdf' nullable: false invoiceUrl: type: url description: 'Url path to a pdf containing the order invoice. Max 250 characters allowed.' example: 'https://pathtomyinvoice.pdf' nullable: false deliveryNoteUrl: type: url description: 'Url path to a pdf containing the order delivery note. Max 250 characters allowed.' example: 'https://pathtomydeliverynote.pdf' nullable: false maxKeepDays: type: integer description: 'Value between 0 and 365.' example: 365 nullable: false externalSource: type: string description: 'The name of the external source of the order. The value must start with a value from in External Source List endpoint result.' example: 'Shopify MyWebSite' nullable: false externalSourceOrderId: type: string description: 'The order website id or any other id that can help identify the order in our system.' example: AxZ00001 nullable: false awbNumber: type: string description: 'The AWB Number. Max 150 characters allowed.' example: AWB001 nullable: false withPriority: type: boolean description: 'Mention if the order must be prioritized. Accepted input are true, false, 1, 0, "1", and "0".' example: false nullable: false lockerId: type: string description: 'Value must have max 100 characters. Allowed characters are: alphanumeric, space or parenthesis. The lockerId is only allowed on a few couriers.' example: '"5959"' nullable: false required: - contactPerson - contactPhone - cashOnDelivery - courierId - maxKeepDays parameters: - in: path name: orderId description: 'The order ID.' example: null required: true schema: type: integer '/api/v1/connectors/client/orders/updateUrlField/{orderId}': put: summary: 'UPDATE Order Url Field' operationId: uPDATEOrderUrlField description: "Directly updates order url fields by ID\n\nThrottling: Max 5 requests per minute. (5/1)" parameters: [] responses: { } tags: - 'API V1 - Orders' requestBody: required: true content: application/json: schema: type: object properties: urlField: type: 'enum(invoiceUrl,deliveryNoteUrl)' description: 'The target order url field that should be updated.' example: invoiceUrl nullable: false url: type: url description: 'The url path that returns a PDF file. Max 250 characters allowed.' example: 'https://pathtomyurl.pdf' nullable: false deliveryNoteSerialNumber: type: string description: 'The delivery note serial number. Allowed only when urlField is equal to deliveryNoteUrl. Max 30 characters allowed.' example: NO-001 nullable: false required: - urlField parameters: - in: path name: orderId description: 'The order ID.' example: null required: true schema: type: integer '/api/v1/connectors/client/orders/delete/{orderId}': delete: summary: 'DELETE Order By ID' operationId: dELETEOrderByID description: "Delete Order by internal id\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for OrderItem not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for OrderItem not found' code: type: integer example: 404 tags: - 'API V1 - Orders' parameters: - in: path name: orderId description: 'The order ID.' example: null required: true schema: type: integer '/api/v1/connectors/client/orders/lock/{orderId}': post: summary: 'LOCK Order By ID' operationId: lOCKOrderByID description: "LOCK Order by internal id. This will prevent the start of order processing until it's unlocked.\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for OrderItem not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for OrderItem not found' code: type: integer example: 404 tags: - 'API V1 - Orders' parameters: - in: path name: orderId description: 'The order ID.' example: null required: true schema: type: integer '/api/v1/connectors/client/orders/unlock/{orderId}': post: summary: 'UNLOCK Order By ID' operationId: uNLOCKOrderByID description: "UNLOCK Order by internal id. This will unlock the order so the warehouse operators can start the picking and packing processes.\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for OrderItem not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for OrderItem not found' code: type: integer example: 404 tags: - 'API V1 - Orders' parameters: - in: path name: orderId description: 'The order ID.' example: null required: true schema: type: integer /api/v1/connectors/client/orders/externalSourceList: get: summary: 'GET External Source List' operationId: gETExternalSourceList description: "Retrieve a list with the allowed external sources.\n\nThrottling: Max 100 requests per minute. (100/1)\n\nPlease inform us if your source is not on this list, so we can add it." parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Orders' /api/v1/connectors/client/orders/requestDPDPickup: post: summary: 'REQUEST DPD Pickup' operationId: rEQUESTDPDPickup description: "Creates a new DPD AWB number and Pickup request for the given order ID.\n\n" parameters: [] responses: { } tags: - 'API V1 - Orders' requestBody: required: true content: application/json: schema: type: object properties: id: type: string description: 'Requested order id.' example: '1234' nullable: false identifiedAs: type: 'enum(orderId,externalId,externalSourceOrderId)' description: 'Order column identifier for specifying where the provided id value should be searched.' example: orderId nullable: false sender: type: object description: 'Contains information about the sender of the shipment.' example: [] nullable: false properties: clientName: type: string description: 'Sender client name.' example: 'Company 999' nullable: false contactName: type: string description: 'Sender contact name.' example: 'Contact Test' nullable: false contactPhoneNumber: type: string description: 'Sender contact phone.' example: maxime nullable: false address: type: string description: 'Sender address.' example: 'Test address' nullable: false city: type: string description: 'Sender city.' example: City nullable: false county: type: string description: 'Sender county.' example: County nullable: false postCode: type: string description: 'Sender postal code.' example: '999999' nullable: false extra: type: object description: 'Contains extra information for DPD.' example: [] nullable: false properties: declaredValueAmount: type: numeric description: 'The amount can have max 2 decimals.' example: '100.99' nullable: false required: - id - identifiedAs - sender /api/v1/connectors/client/orders/invoice/information: get: summary: 'GET Invoices Information' operationId: gETInvoicesInformation description: "Returns a list with all invoices information that can be filtered by the available parameters.\n\nThrottling: Max 20 requests per hour. (20/60)\n\nDefault page size : 100 records per page.\n\nPresents the result with page size and pagination." parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Order Invoices' requestBody: required: false content: application/json: schema: type: object properties: hasInvoiceNumber: type: boolean description: 'The result is filtered based on the presence of the invoice number in the information. If missing the filter will not be added.' example: false nullable: false orderIsShipped: type: boolean description: 'The result is filtered based on the internal order status. If missing the filter will not be added.' example: true nullable: false startDate: type: date description: 'A date between past and today. The format must be in: Y-m-d H:i:s' example: '2024-01-01 12:59:59' nullable: false dateQueryType: type: 'enum(invoiceInformationCreatedDate,orderSentDate)' description: 'The column that should be queried by startDate field.' example: orderSentDate nullable: false orderByField: type: 'enum(invoiceInformationCreatedDate,orderSentDate)' description: 'The field responsible for ordering the result.' example: orderSentDate nullable: false orderByDirection: type: 'enum(ASC,DESC)' description: 'The direction of order for orderByField field.' example: ASC nullable: false perPage: type: integer description: 'Number of records to show per page. The allowed values are between 10 and 250. If not provided, the default is 100.' example: 100 nullable: false '/api/v1/connectors/client/orders/invoice/information/byOrderId/{orderId}': get: summary: 'GET Invoice Information By Order ID' operationId: gETInvoiceInformationByOrderID description: "GET Invoice Information By Order internal ID\n\nThrottling: Max 10 requests per minute. (10/1)\n\n" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for OrderItem not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for OrderItem not found' code: type: integer example: 404 tags: - 'API V1 - Order Invoices' parameters: - in: path name: orderId description: '' example: animi required: true schema: type: string - in: path name: order_id description: 'The order ID.' example: 101 required: true schema: type: integer '/api/v1/connectors/client/orders/invoice/information/create/{orderId}': post: summary: 'CREATE Order Invoice Information' operationId: cREATEOrderInvoiceInformation description: "Creates a new Order Invoice Information.\n\nThrottling: Max 15 requests per minute. (15/1)\n\n" parameters: [] responses: { } tags: - 'API V1 - Order Invoices' requestBody: required: true content: application/json: schema: type: object properties: isLegalEntity: type: boolean description: 'Mention if the order invoice information is a legal entity/juridical person or an individual/natural person. Accepted input are true, false, 1, 0, "1", and "0".' example: false nullable: false companyName: type: string description: 'requiredIf The billing Company name. Fill only if the invoice is a legal entity. Max 75 characters allowed.' example: 'Company Name' nullable: false companyUniqueIdentifier: type: string description: 'requiredIf The billing Company Unique Identifier (CUI/VAT). Fill only if the invoice is a legal entity. All whitespaces and non-alphanumeric characters are automatically removed from this field. Max 30 characters allowed.' example: RO55599888 nullable: false companyRegistrationNumber: type: string description: 'The billing company registration number. Max 50 characters allowed.' example: J99/9999/1950 nullable: false companyBankName: type: string description: 'The billing company bank name. Fill only if the invoice is for a legal entity. Max 50 characters allowed.' example: 'The Bank of' nullable: false companyIban: type: string description: 'The billing company IBAN. Fill only if the invoice is for a legal entity. Max 34 characters allowed.' example: RO49AAAA1B31007593840000 nullable: false firstName: type: string description: 'requiredIf required The billing contact first name. Max 50 characters allowed. Required if lastName is not present.' example: First nullable: false lastName: type: string description: 'requiredIf required The billing contact last name. Max 50 characters allowed. Required if firstName is not present.' example: Last nullable: false address: type: string description: 'The billing address.' example: 'Str. My Street, No.10, Ap. 99' nullable: false city: type: string description: 'The billing city. The field must have at least 1 character. Max 50 characters allowed.' example: Bucuresti nullable: false county: type: string description: 'The billing county. The field must have at least 1 character. Max 50 characters allowed.' example: 'Sector 1' nullable: false country: type: string description: 'The billing country. Between 2 and 50 characters allowed.' example: RO nullable: false postalCode: type: string description: 'The billing postal code. Max 10 characters allowed.' example: '010111' nullable: false phone: type: string description: 'The billing phone. The phone number must contain the correct number of digits and the allowed characters between digits are: space, dash, dots or parenthesis.' example: '0700999111' nullable: false email: type: string description: 'The billing email.' example: test@test.com nullable: false shippingTax: type: decimal description: 'The shipping tax. The value can have up to 2 decimal places.' example: '100.50' nullable: false processingFee: type: decimal description: 'The processing fee for the order. The value can have up to 2 decimal places.' example: '0' nullable: false orderCampaignId: type: integer description: 'The order campaign id.' example: 1001 nullable: false discountsTotal: type: decimal description: 'The current total value of all the discounts. The value can have up to 2 decimal places.' example: '100.99' nullable: false invoiceTotal: type: decimal description: 'The current total value of the invoice. The value can have up to 2 decimal places.' example: '999.99' nullable: false invoiceNumber: type: string description: 'An invoice number is a unique number assigned to invoices. They allow invoices to be easily identified and tracked for accounting and tax purposes.' example: SN-RO-001 nullable: false urlPath: type: url description: 'Url path to a pdf containing the order invoice. Max 100 characters allowed.' example: 'https://pathtomyinvoice.pdf' nullable: false unlockOrder: type: boolean description: 'Mention if the order must be unlocked after the Invoice Information is added. It`s recommended to create the order as Locked if the invoice information is required through it`s lifetime. Accepted input are true, false, 1, 0, "1", and "0".' example: false nullable: false sameLinesAsOrder: type: boolean description: 'Activate a validation check that will verify if the provided invoice lines are the same as order lines. Accepted input are true, false, 1, 0, "1", and "0".' example: false nullable: false linesPriceCheck: type: boolean description: 'Activate a validation check that will verify if the sum of provided invoice lines is equal to invoiceTotal value. Accepted input are true, false, 1, 0, "1", and "0".' example: false nullable: false discounts: type: array description: 'Contains a list of discounts. This object parameter will be deprecated in the future. Please use discountApplications instead.' example: - [] items: type: object properties: name: type: string description: 'The discount name. Max 30 characters allowed. The field must be distinct. The field may have alphanumeric characters, as well as dashes and underscores.' example: 'Discount Name No-1' nullable: false value: type: decimal description: 'The discount value. The value can have up to 4 decimals and can also be a negative value.' example: '100.9999' nullable: false required: - name - value discountApplications: type: array description: 'Contains a list of discounts applied to the order based on Shopify REST Order resource model.' example: - [] items: type: object properties: allocationMethod: type: string description: 'The method by which the discount application value has been allocated to entitled lines.' example: each nullable: false targetSelection: type: string description: 'The lines on the order, of the type defined by target_type, that the discount is allocated over. Valid values: all, entitled, explicit.' example: explicit nullable: false targetType: type: string description: 'The type of line on the order that the discount is applicable on. Valid values: line_item, shipping_line.' example: shipping_line nullable: false code: type: string description: 'The discount code that was used to apply the discount. Available only for discount code applications.' example: CODEX101 nullable: false title: type: string description: 'The title of the discount application, as defined by the merchant. Available only for manual discount applications.' example: title nullable: false description: type: string description: 'The description of the discount application, as defined by the merchant. Available only for manual and script discount applications.' example: description nullable: false type: type: string description: 'The discount application type. Valid values: automatic, discount_code, manual, script.' example: discount_code nullable: false value: type: decimal description: 'The value of the discount application as a decimal. This represents the intention of the discount application. For example, if the intent was to apply a 20% discount, then the value will be 20.0. If the intent was to apply a $15 discount, then the value will be 15.0' example: '20.0' nullable: false valueType: type: string description: 'The type of the value. Valid values: fixed_amount, percentage.' example: fixed_amount nullable: false calculatedAmount: type: decimal description: 'The calculated discount amount.' example: '100.9999' nullable: false required: - value - valueType - calculatedAmount invoiceLines: type: array description: 'Contains a list of invoice lines.' example: - [] items: type: object properties: productId: type: integer description: 'The order product ID. The field must be distinct.' example: 123456 nullable: false lineExternalIdentifier: type: string description: 'The external id of the corresponding invoice line. Max 50 characters allowed.' example: accusamus nullable: false pricePerUnit: type: decimal description: 'The invoice line price per unit. The value must be a positive number and can have up to 2 decimal places.' example: '10.55' nullable: false quantity: type: integer description: 'The invoice line quantity. The value must be a positive number.' example: 5 nullable: false totalDiscount: type: decimal description: 'The invoice line total discount. The value must be a positive number and can have up to 2 decimal places.' example: '10.55' nullable: false taxLines: type: array description: 'Contains a list of tax lines for each invoice line.' example: - [] items: type: object properties: title: type: string description: 'The tax title. Between 3 and 50 characters allowed.' example: 'VAT RO' nullable: false required: - title price: type: decimal description: 'The tax price. The value must be a positive number and can have up to 2 decimal places.' example: '10.55' nullable: false rate: type: decimal description: 'The tax rate percentage. The value must be a positive number and can have up to 2 decimal places.' example: '0.99' nullable: false required: - productId - pricePerUnit - quantity - totalDiscount - price required: - isLegalEntity - address - city - county - country - shippingTax parameters: - in: path name: orderId description: 'The order ID.' example: null required: true schema: type: integer '/api/v1/connectors/client/orders/invoice/information/update/{orderInvoiceInformation_id}/invoiceNumber': post: summary: 'UPDATE Order Invoice Information InvoiceNumber' operationId: uPDATEOrderInvoiceInformationInvoiceNumber description: "Updates the invoice number for the Order invoice information by ID\n\nThrottling: Max 50 requests per minute. (50/1)" parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: { } tags: - 'API V1 - Order Invoices' requestBody: required: true content: application/json: schema: type: object properties: invoiceNumber: type: string description: 'An invoice number is a unique number assigned to invoices. They allow invoices to be easily identified and tracked for accounting and tax purposes.' example: SN-RO-001 nullable: false urlPath: type: url description: 'Url path to a pdf containing the order invoice. Max 100 characters allowed.' example: 'https://pathtomyinvoice.pdf' nullable: false required: - invoiceNumber parameters: - in: path name: orderInvoiceInformation_id description: 'The ID of the orderInvoiceInformation.' example: 4 required: true schema: type: integer - in: path name: orderInvoiceInformation description: 'The Order invoice information ID.' example: null required: true schema: type: integer '/api/v1/connectors/client/orders/invoice/fiscal/{orderIdentifier}/download': post: summary: '' operationId: postApiV1ConnectorsClientOrdersInvoiceFiscalOrderIdentifierDownload description: '' parameters: [] responses: { } tags: - 'API V1 - Order Invoices' parameters: - in: path name: orderIdentifier description: '' example: nam required: true schema: type: string /api/v1/connectors/client/products: get: summary: 'GET All Products' operationId: gETAllProducts description: "List all products.\n\nPresents the result with page size and simple pagination (without showing the total number of records and last page).\n\nThrottling: Max 20 requests per minute. (20/1) Max 100 requests per hour. (100/60)\n\nDefault page size : 1000 records per page." parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Products' /api/v1/connectors/client/products/filter: get: summary: 'GET Filtered Products' operationId: gETFilteredProducts description: "List all products that match filters.\n\nPresents the result with page size and simple pagination (without showing the total number of records and last page).\n\nThrottling: Max 20 requests per minute. (20/1) Max 100 requests per hour. (100/60)\n\nDefault page size : 250 records per page. (Maximum 1000 records per page)" parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Products' requestBody: required: false content: application/json: schema: type: object properties: ids: type: string description: 'List of comma-separated Product IDs.' example: '184735,184736,3049927' nullable: false productCode: type: string description: 'The product code.' example: MHM223259 nullable: false barcode: type: string description: 'The product barcode/ean.' example: '4971850911119' nullable: false externalId: type: string description: 'The product external id.' example: '109' nullable: false startDate: type: date description: 'A date between past and today. The format must be in: Y-m-d H:i:s.' example: '2025-01-01 12:59:59' nullable: false endDate: type: date description: 'A date between past and today. If there is a startDate, endDate must be later than startDate. The format must be in: Y-m-d H:i:s.' example: '2025-02-07 13:10:00' nullable: false dateFilterBy: type: 'enum(CREATED_AT,UPDATED_AT)' description: 'The column to which startDate and endDate are compared. - Default: CREATED_AT.' example: CREATED_AT nullable: false sortDate: type: 'enum(DESC,ASC)' description: 'Order in which to retrieve results. - Default : ASC.' example: ASC nullable: false perPage: type: integer description: 'Number of entries per page. The allowed values are between 10 and 1000. If not provided, the default is 250.' example: 250 nullable: false /api/v1/connectors/client/products/filter/createdToday: get: summary: 'GET Products created today' operationId: gETProductsCreatedToday description: "List all products that were created today\n\nPresents the result with page size and pagination.\n\nThrottling: Max 20 requests per hour. (20/60)\n\nDefault page size : 1000 records per page." parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Products' /api/v1/connectors/client/products/filter/updatedToday: get: summary: 'GET Products updated today' operationId: gETProductsUpdatedToday description: "List all products that were updated today\n\nPresents the result with page size and pagination.\nChanges on product stock does not reflect as a product update.\n\nThrottling: Max 20 requests per hour. (20/60)\n\nDefault page size : 1000 records per page." parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Products' '/api/v1/connectors/client/products/byId/{id}': get: summary: 'GET Product By ID' operationId: gETProductByID description: "Get Product information by internal ID\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for Product not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for Product not found' code: type: integer example: 404 tags: - 'API V1 - Products' parameters: - in: path name: id description: 'The product ID.' example: 184742 required: true schema: type: integer '/api/v1/connectors/client/products/byEan/{ean}': get: summary: 'GET Product By EAN' operationId: gETProductByEAN description: "Get Product information by its EAN (barcode)\n\nThis endpoint will return the first product found with the given param value!\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for Product not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for Product not found' code: type: integer example: 404 tags: - 'API V1 - Products' parameters: - in: path name: ean description: 'The product EAN.' example: '4971850911118' required: true schema: type: string '/api/v1/connectors/client/products/delete/{productId}': delete: summary: 'DELETE Product By ID' operationId: dELETEProductByID description: "Delete Product by internal id\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for Product not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for Product not found' code: type: integer example: 404 tags: - 'API V1 - Products' parameters: - in: path name: productId description: 'The product ID.' example: null required: true schema: type: integer '/api/v1/connectors/client/products/byProductCode/{productCode}': get: summary: 'GET Product By Product Code' operationId: gETProductByProductCode description: "Get Product information by its Product Code\n\nThis endpoint will return the first product found with the given param value!\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for Product not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for Product not found' code: type: integer example: 404 tags: - 'API V1 - Products' parameters: - in: path name: productCode description: 'The product code.' example: MHM223256 required: true schema: type: string '/api/v1/connectors/client/products/byExternalId/{externalId}': get: summary: 'GET Product By External ID' operationId: gETProductByExternalID description: "Get Product information by its External ID\n\nThis endpoint will return the first product found with the given param value!\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for Product not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for Product not found' code: type: integer example: 404 tags: - 'API V1 - Products' parameters: - in: path name: externalId description: 'The product External ID.' example: '105' required: true schema: type: string '/api/v1/connectors/client/products/stock/byId/{id}': get: summary: 'GET Product Stock By ID' operationId: gETProductStockByID description: "Get Product stock information by internal ID\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for Product not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for Product not found' code: type: integer example: 404 tags: - 'API V1 - Products' parameters: - in: path name: id description: 'The product ID.' example: 184742 required: true schema: type: integer /api/v1/connectors/client/products/create: post: summary: 'CREATE Product' operationId: cREATEProduct description: "Create a new Product\n\nThrottling: Max 100 requests per minute. (100/1)" parameters: [] responses: { } tags: - 'API V1 - Products' requestBody: required: true content: application/json: schema: type: object properties: description: type: string description: 'The product name. Between 3 and 100 characters allowed.' example: TestProduct nullable: false productCode: type: string description: 'The product code. The field may have alpha-numeric characters, as well as dash, dot, forward slash, plus sign and underscore. Between 3 and 100 characters allowed. The non alpha-numeric characters are not allowed at the beginning of the string. The underscore, dot and forward slash are not allowed at the end of the string. Example: ABQ.123+' example: ABQ.123+ nullable: false ean: type: string description: 'The product barcode. The field may have alpha-numeric characters, as well as dashes, dots and underscores. Between 4 and 20 characters allowed. The non alpha-numeric characters are not allowed at the beginning/end of the string.' example: 8009000123A-2.A nullable: false externalId: type: integer description: 'The product external id. The value must be a positive integer.' example: 10999 nullable: false price: type: decimal description: 'The product price. The value must be a positive number and can support up 2 decimal places.' example: '10.55' nullable: false weight_grams: type: integer description: 'The product weight in grams. The value must be a positive integer.' example: 1500 nullable: false pictureUrl: type: url description: 'The product image url. Between 10 and 200 characters allowed.' example: 'https://www.pathtomyimage.com' nullable: false productType: type: 'enum(0,1,2)' description: 'The product type must be one of next possible values: **`0`** - Normal; **`1`** - With Expiration Date; **`2`** - With Expiration Date & Production Lot.' example: '1' nullable: false useDefaultExpiryOnReception: type: 'enum(no,yes)' description: 'if productType is not 0. If the field is set to yes, a far future expiry date will be used as the default upon product reception.' example: 'no' nullable: false useProdIdAsEan: type: 'enum(no,yes)' description: 'If the field is set to yes, the product EAN will be updated with the ProductId after the product is created.' example: 'no' nullable: false productSpecialType: type: alphaNumeric description: 'If the product is a special type (e.g. each received piece has a SerialNumber) the value needs to be mentioned here from a possible list of values given by developers. This field can be set only if the productType value is set to 0.' example: et nullable: false externalSource: type: string description: 'The name of the external source of the product. The value must start with a value from in External Source List endpoint result.' example: 'Shopify MyWebSite' nullable: false externalSourceProductId: type: string description: 'The product internal website id or any other id that can help identify the product in our system.' example: PRD00001 nullable: false useOverriddenValidationRules: type: boolean description: 'If there are custom validation rules added by developers this field must be passed as true in order to be taken into account.' example: false nullable: false required: - description - productCode - ean - weight_grams - productType - useDefaultExpiryOnReception - useProdIdAsEan '/api/v1/connectors/client/products/update/{product_idp}': put: summary: 'UPDATE Product' operationId: uPDATEProduct description: "Updates product by ID\n\nThrottling: Max 100 requests per minute. (100/1)\n\n" parameters: [] responses: { } tags: - 'API V1 - Products' requestBody: required: true content: application/json: schema: type: object properties: description: type: string description: 'The product name. Between 3 and 100 characters allowed.' example: TestProduct nullable: false productCode: type: string description: 'The product code. The field may have alpha-numeric characters, as well as dash, dot, forward slash, plus sign and underscore. Between 3 and 100 characters allowed. The non alpha-numeric characters are not allowed at the beginning of the string. The underscore, dot and forward slash are not allowed at the end of the string. Example: ABQ.123+' example: ABQ.123+ nullable: false ean: type: string description: 'The product barcode. The field may have alpha-numeric characters, as well as dashes, dots and underscores. Between 4 and 20 characters allowed. The non alpha-numeric characters are not allowed at the beginning/end of the string. Example: 8009000123A-2.A' example: 8009000123A-2.A nullable: false externalId: type: integer description: 'The product external id. The value must be a positive integer.' example: 10999 nullable: false price: type: decimal description: 'The product price. The value must be a positive number and can have up to 2 decimal places.' example: '10.55' nullable: false weight_grams: type: integer description: 'The product weight in grams. The value must be a positive integer.' example: 1500 nullable: false pictureUrl: type: url description: 'The product image url. Between 10 and 200 characters allowed.' example: 'https://www.pathtomyimage.com' nullable: false productType: type: 'enum(0,1,2)' description: 'The product type must be one of next possible values: **`0`** - Normal; **`1`** - With Expiration Date; **`2`** - With Expiration Date & Production Lot' example: '1' nullable: false useDefaultExpiryOnReception: type: 'enum(no,yes)' description: 'if productType is not 0. If the field is set to yes, a far future expiry date will be used as the default upon product reception.' example: 'no' nullable: false externalSource: type: string description: 'The name of the external source of the product. The value must start with a value from in External Source List endpoint result.' example: 'Shopify MyWebSite' nullable: false externalSourceProductId: type: string description: 'The product internal website id or any other id that can help identify the product in our system.' example: PRD00001 nullable: false required: - description - productCode - ean - weight_grams - productType - useDefaultExpiryOnReception parameters: - in: path name: product_idp description: '' example: 1 required: true schema: type: integer /api/v1/connectors/client/products/externalSourceList: get: summary: 'GET External Source List' operationId: gETExternalSourceList description: "Retrieve a list with the allowed external sources.\n\nThrottling: Max 100 requests per minute. (100/1)\n\nPlease inform us if your source is not on this list, so we can add it." parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Products' /api/v1/connectors/client/receptions: get: summary: 'GET All Receptions' operationId: gETAllReceptions description: "List all receptions.\n\nThrottling: Max 30 requests per minute. (30/1)\n\nPresents the result with page size and pagination.\n\nDefault page size : 200 records per page." parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Receptions' /api/v1/connectors/client/receptions/filter: get: summary: 'GET Filtered Receptions with Reception Plans' operationId: gETFilteredReceptionsWithReceptionPlans description: "List filtered receptions with reception plans.\n\nThrottling: Max 15 requests per minute. (15/1)\n\nPresents the result with page size and pagination.\n\nDefault page size : 200 records per page. (Maximum 300)" parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Receptions' requestBody: required: false content: application/json: schema: type: object properties: ids: type: string description: 'List of comma-separated Order IDs.' example: '31084,31072' nullable: false startDate: type: date description: 'A date between past and today. The format must be in: Y-m-d H:i:s.' example: '2020-01-01 12:59:59' nullable: false endDate: type: date description: 'A date between past and today. If there is a startDate, endDate must be later than startDate. The format must be in: Y-m-d H:i:s.' example: '2020-12-30 19:30:00' nullable: false dateFilterBy: type: 'enum(CREATED_AT,UPDATED_AT,PROCESSED_AT)' description: 'The column to which startDate and endDate are compared. - Default: CREATED_AT.' example: CREATED_AT nullable: false sortDate: type: 'enum(DESC,ASC)' description: 'Order in which to retrieve results. - Default : ASC.' example: ASC nullable: false isProcessed: type: boolean description: 'A filter that will only select receptions that are processed or not processed.' example: false nullable: false shippingAWB: type: string description: 'The AWB number.' example: null nullable: false withReceptionPlans: type: boolean description: 'A filter that when true the response will show additional info regarding the reception plans. - Default: false' example: false nullable: false perPage: type: integer description: 'Number of entries per page. The allowed values are between 10 and 300. If not provided, the default is 200.' example: 200 nullable: false '/api/v1/connectors/client/receptions/byId/{receptionId}': get: summary: 'GET Reception By ID' operationId: gETReceptionByID description: "Get Reception information by internal ID.\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for Reception not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for Reception not found' code: type: integer example: 404 tags: - 'API V1 - Receptions' parameters: - in: path name: receptionId description: 'The reception ID.' example: 31072 required: true schema: type: integer '/api/v1/connectors/client/receptions/byId/{reception_id}/contents': get: summary: 'GET Reception Contents By ID' operationId: gETReceptionContentsByID description: "Get Reception contents ( received products ana quantity ) by internal ID.\n\nThrottling: Max 20 requests per minute. (20/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for Reception not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for Reception not found' code: type: integer example: 404 tags: - 'API V1 - Receptions' parameters: - in: path name: reception_id description: 'The ID of the reception.' example: 13 required: true schema: type: integer - in: path name: reception description: 'The reception ID.' example: 31072 required: true schema: type: integer /api/v1/connectors/client/receptionPlans: get: summary: 'GET All Reception Plans' operationId: gETAllReceptionPlans description: "List all reception plans.\n\nThrottling: Max 30 requests per minute. (30/1)\n\nPresents the result with page size and pagination.\n\nDefault page size : 200 records per page.\n\n" parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Reception Plans' /api/v1/connectors/client/receptionPlans/filter: get: summary: 'GET Filtered Reception Plans with Receptions' operationId: gETFilteredReceptionPlansWithReceptions description: "List all reception plans that match filters with receptions.\n\nPresents the result with page size and simple pagination (without showing the total number of records and last page).\n\nThrottling: Max 20 requests per minute. (20/1) Max 100 requests per hour. (100/60)\n\nDefault page size : 200 records per page.\n\n" parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Reception Plans' requestBody: required: false content: application/json: schema: type: object properties: ids: type: string description: 'List of comma-separated Reception Plan IDs.' example: '3420,3478' nullable: false external_ids: type: string description: 'List of comma-separated Reception Plan external IDs.' example: '12312555,456789' nullable: false startDate: type: date description: 'A date between past and today. The format must be in: Y-m-d H:i:s.' example: '2024-01-01 12:59:59' nullable: false endDate: type: date description: 'A date between past and today. If there is a startDate, endDate must be later than startDate. The format must be in: Y-m-d H:i:s.' example: '2024-12-22 19:30:00' nullable: false dateFilterBy: type: 'enum(CREATED_AT,UPDATED_AT)' description: 'The column to which startDate and endDate are compared. - Default: CREATED_AT.' example: CREATED_AT nullable: false sortDate: type: 'enum(DESC,ASC)' description: 'Order in which to retrieve results. - default ASC' example: ASC nullable: false status: type: 'enum(New,Ready,Processing,Finished)' description: 'Filter orders by their status specified by a comma-separated list.' example: 'Processing,New' nullable: false shippingAWB: type: string description: 'The AWB number.' example: null nullable: false hasReception: type: boolean description: "A filter that will only select reception plans that have or don't have receptions." example: true nullable: false '/api/v1/connectors/client/receptionPlans/byId/{receptionPlan_id}': get: summary: 'GET Reception Plan By ID' operationId: gETReceptionPlanByID description: "Get Reception Plan by internal ID.\n\nThrottling: Max 60 requests per minute. (60/1)\n\n" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for ReceptionPlan not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for ReceptionPlan not found' code: type: integer example: 404 tags: - 'API V1 - Reception Plans' parameters: - in: path name: receptionPlan_id description: 'The reception plan ID.' example: 101 required: true schema: type: integer /api/v1/connectors/client/receptionPlans/create: post: summary: 'CREATE Reception Plan' operationId: cREATEReceptionPlan description: "Create a new Reception Plan\n\nThrottling: Max 10 requests per minute. (10/1)" parameters: [] responses: { } tags: - 'API V1 - Reception Plans' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'The reception plan name. Between 5 and 50 characters allowed.' example: TestPlan nullable: false externalId: type: alphaNumeric description: 'The reception plan external id. Between 2 and 50 characters allowed.' example: '10999' nullable: false supplierName: type: string description: 'The reception plan supplier. Between 3 and 50 characters allowed.' example: 'My Supplier' nullable: false awbNumber: type: string description: 'The reception plan shipping AWB Number. Between 3 and 50 characters allowed.' example: AWB001 nullable: false estimatedArrivalDate: type: date description: 'The reception plan estimated arrival date. The date must later or equal to today. The format must be in: yyyy-mm-dd.' example: '2035-01-01' nullable: false receptionSeries: type: string description: 'The reception series. Between 1 and 50 characters allowed. Required when receptionNumber is present. The combination of receptionSeries and receptionNumber must be unique within your group.' example: null nullable: false receptionNumber: type: string description: 'The reception number. Between 1 and 50 characters allowed. Required when receptionSeries is present. The combination of receptionSeries and receptionNumber must be unique within your group.' example: null nullable: false hasStrictMaxQuantity: type: boolean description: 'When is enabled cannot be received more pcs of a product than the given quantity in the reception plan.' example: false nullable: false hasUniqueProducts: type: boolean description: "When is enabled, the reception plan contents can't have the same product more than once. The product needs to be unique even if multiple imports are added in the current plan." example: false nullable: false shouldReceiveOnlyPlannedProducts: type: boolean description: 'When is enabled, the reception will not accept products not present in the reception plan.' example: false nullable: false required: - name - externalId '/api/v1/connectors/client/receptionPlans/update/{receptionPlan_id}': put: summary: 'UPDATE Reception Plan' operationId: uPDATEReceptionPlan description: "Updates reception plan by ID\n\nThrottling: Max 10 requests per minute. (10/1)" parameters: [] responses: { } tags: - 'API V1 - Reception Plans' requestBody: required: false content: application/json: schema: type: object properties: supplierName: type: string description: 'The reception plan supplier. Between 3 and 50 characters allowed.' example: 'My Supplier' nullable: false awbNumber: type: string description: 'The reception plan shipping AWB Number. Between 3 and 50 characters allowed.' example: AWB001 nullable: false estimatedArrivalDate: type: date description: 'The reception plan estimated arrival date. The date must later or equal to today. The format must be in: yyyy-mm-dd.' example: '2035-01-01' nullable: false receptionSeries: type: string description: 'The reception series. Between 1 and 50 characters allowed. Required when receptionNumber is present. The combination of receptionSeries and receptionNumber must be unique within your group.' example: null nullable: false receptionNumber: type: string description: 'The reception number. Between 1 and 50 characters allowed. Required when receptionSeries is present. The combination of receptionSeries and receptionNumber must be unique within your group.' example: null nullable: false parameters: - in: path name: receptionPlan_id description: 'The ID of the receptionPlan.' example: 3 required: true schema: type: integer '/api/v1/connectors/client/receptionPlans/byId/{receptionPlan_id}/imports': get: summary: 'GET Reception Plan Imports' operationId: gETReceptionPlanImports description: "Get Reception Plan Imports by internal ID.\n\nThrottling: Max 30 requests per minute. (30/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Reception Plans' parameters: - in: path name: receptionPlan_id description: 'The reception plan ID.' example: 126 required: true schema: type: integer '/api/v1/connectors/client/receptionPlans/byId/{receptionPlan_id}/details': get: summary: 'GET Reception Plan Details' operationId: gETReceptionPlanDetails description: "Get Reception Plan Details by internal ID.\n\nThrottling: Max 15 requests per minute. (15/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Reception Plans' parameters: - in: path name: receptionPlan_id description: 'The reception plan ID.' example: 126 required: true schema: type: integer '/api/v1/connectors/client/receptionPlans/byId/{receptionPlan_id}/report': get: summary: 'GET Reception Plan Report By ID' operationId: gETReceptionPlanReportByID description: "Get Reception Plan report by internal ID.\n\nThrottling: Max 15 requests per minute. (15/1)\n\n" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 403: description: '' content: application/json: schema: type: object example: message: 'This action is unauthorized.' properties: message: type: string example: 'This action is unauthorized.' 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for ReceptionPlan not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for ReceptionPlan not found' code: type: integer example: 404 tags: - 'API V1 - Reception Plans' parameters: - in: path name: receptionPlan_id description: 'The reception plan ID.' example: 126 required: true schema: type: integer '/api/v1/connectors/client/receptionPlans/byId/{receptionPlan_id}/finish': get: summary: 'FINISH Reception Plan' operationId: fINISHReceptionPlan description: "Finish Reception Plan\n\nThrottling: Max 10 requests per minute. (10/1)" parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Requested Endpoint not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Requested Endpoint not found' code: type: integer example: 404 tags: - 'API V1 - Reception Plans' parameters: - in: path name: receptionPlan_id description: 'The reception plan ID.' example: null required: true schema: type: integer '/api/v1/connectors/client/receptionPlans/byId/{receptionPlan_id}/delete': delete: summary: 'DELETE Reception Plan' operationId: dELETEReceptionPlan description: "Delete Reception Plan by internal id\n\nThrottling: Max 10 requests per minute. (10/1)" parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for ReceptionPlan not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for ReceptionPlan not found' code: type: integer example: 404 tags: - 'API V1 - Reception Plans' parameters: - in: path name: receptionPlan_id description: 'The Reception Plan ID.' example: null required: true schema: type: integer '/api/v1/connectors/client/receptionPlanImports/{receptionPlanImport_id}/details': get: summary: 'GET Reception Plan Details' operationId: gETReceptionPlanDetails description: "Get Reception Plan Details by import ID.\n\nThrottling: Max 15 requests per minute. (15/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Reception Plan Imports' parameters: - in: path name: receptionPlanImport_id description: 'The reception plan import ID.' example: 395 required: true schema: type: integer '/api/v1/connectors/client/receptionPlanImports/create/{receptionPlan_id}': post: summary: 'CREATE Reception Plan Import' operationId: cREATEReceptionPlanImport description: "Create a new Reception Plan Import\n\nThrottling: Max 10 requests per minute. (10/1)" parameters: [] responses: { } tags: - 'API V1 - Reception Plan Imports' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'The reception plan import name. Between 5 and 50 characters allowed.' example: TestImportPlan nullable: false productIdentifierType: type: required description: 'enum(productCode,barcode,externalId,productId) The product identifier type necessary for correctly identifying the product when the reception plan detail is created.' example: barcode nullable: false required: - name parameters: - in: path name: receptionPlan_id description: 'The reception plan ID.' example: 101 required: true schema: type: integer '/api/v1/connectors/client/receptionPlanImports/{receptionPlanImport_id}/finish': get: summary: 'FINISH Reception Plan Import' operationId: fINISHReceptionPlanImport description: "Finish Reception Plan Import\n\nThrottling: Max 10 requests per minute. (10/1)" parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Requested Endpoint not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Requested Endpoint not found' code: type: integer example: 404 tags: - 'API V1 - Reception Plan Imports' parameters: - in: path name: receptionPlanImport_id description: 'The reception plan import ID.' example: null required: true schema: type: integer '/api/v1/connectors/client/receptionPlanImports/{receptionPlanImport_id}/delete': delete: summary: 'DELETE Reception Plan Import' operationId: dELETEReceptionPlanImport description: "Delete Reception Plan Import by internal id\n\nThrottling: Max 10 requests per minute. (10/1)\n\n" parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for ReceptionPlanImport not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for ReceptionPlanImport not found' code: type: integer example: 404 tags: - 'API V1 - Reception Plan Imports' parameters: - in: path name: receptionPlanImport_id description: 'The Reception Plan Import ID.' example: 1 required: true schema: type: integer '/api/v1/connectors/client/receptionPlanDetails/create/{receptionPlanImport_id}': post: summary: 'CREATE Reception Plan Detail' operationId: cREATEReceptionPlanDetail description: "Create a new Reception Plan Detail\n\nThrottling: Max 100 requests per minute. (100/1)" parameters: [] responses: { } tags: - 'API V1 - Reception Plan Details' requestBody: required: true content: application/json: schema: type: object properties: productIdentifier: type: string description: 'The product identifier necessary for correctly identifying the product.' example: BARCODE999 nullable: false externalId: type: string description: 'The external id of the reception plan line.' example: '1' nullable: false expiryDate: type: date description: 'requiredIf The batch is present and filled. Prohibited for Normal products. Date format: Y-m-d.' example: '2050-01-01' nullable: false batch: type: integer description: 'requiredIf Only if identified product is a food product and the expiryDate is present and filled. Prohibited for Normal products.' example: 0 nullable: false quantity: type: integer description: 'The product quantity.' example: 15 nullable: false required: - productIdentifier - quantity parameters: - in: path name: receptionPlanImport_id description: 'The ID of the receptionPlanImport.' example: 1 required: true schema: type: integer - in: path name: receptionPlanImportId description: 'The reception plan import ID.' example: 395 required: true schema: type: integer '/api/v1/connectors/client/receptionPlanDetails/{receptionPlanDetail_id}/delete': delete: summary: 'DELETE Reception Plan Detail' operationId: dELETEReceptionPlanDetail description: "Delete Reception Plan Detail by internal id\n\nThrottling: Max 60 requests per minute. (60/1)" parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for ReceptionPlanDetail not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for ReceptionPlanDetail not found' code: type: integer example: 404 tags: - 'API V1 - Reception Plan Details' parameters: - in: path name: receptionPlanDetail_id description: 'The Reception Plan Detail ID.' example: 1 required: true schema: type: integer /api/v1/connectors/client/stock/allProducts/byProductId: get: summary: 'GET All Products Stock By ID' operationId: gETAllProductsStockByID description: "List all products stock by ID.\n\nThrottling: Max 1 request in 5 minutes. (1/5)\n\nPresents all the results (NonPaginated).\n\nThis endpoint is recommended to use when there are more than 1000 products to display, because the paginated endpoint can show up to 1000 products per page." parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Stock' requestBody: required: false content: application/json: schema: type: object properties: untilDate: type: date description: 'If a date is provided the stock will be calculated until the given date (included). The allowed date format is dd/mm/yyyy.' example: 31/12/2020 nullable: false showNoStock: type: string description: 'If this field is set to "no" then only the products that have "stock" > 0 will be returned. This field accepts only 2 values : yes,no.' example: 'yes' nullable: false showOnlyGoodProducts: type: string description: 'If this field is set to "yes" then only the products with "damageType" equal to "GOOD" will be returned. This field accepts only 2 values : yes,no.' example: 'yes' nullable: false /api/v1/connectors/client/stock/allProductsPaginated/byProductId: get: summary: 'GET All Products Stock Paginated By ID' operationId: gETAllProductsStockPaginatedByID description: "List all products stock by ID.\n\nThrottling: Max 5 requests per minute. (5/1)\n\nPresents the result with page size and pagination.\n\nDefault page size : 1000 records per page.\n\nThis endpoint is recommended to use when there are less than 1000 products to display, because the first page can show up to 1000 products." parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Stock' requestBody: required: false content: application/json: schema: type: object properties: untilDate: type: date description: 'If a date is provided the stock will be calculated until the given date (included). The allowed date format is dd/mm/yyyy.' example: 31/12/2020 nullable: false /api/v1/connectors/client/bundlers: get: summary: 'GET All Bundlers' operationId: gETAllBundlers description: "List all product bundlers.\n\nPresents the result with page size and pagination.\n\nThrottling: Max 10 requests per minute. (10/1)\n\nDefault page size : 50 records per page." parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Bundlers' post: summary: 'CREATE Bundler' operationId: cREATEBundler description: "Create a new Bundler\n\nThrottling: Max 10 requests per minute. (10/1)" parameters: [] responses: { } tags: - 'API V1 - Bundlers' requestBody: required: true content: application/json: schema: type: object properties: bundlerType: type: "enum('bundle','stock-parent')" description: 'The bundler type must be one of next possible values: bundle,stock-parent.' example: bundle nullable: false bundlerProductId: type: integer description: 'The product (internal) ID. This product will be upgraded to a bundler. The value must be a positive integer.' example: 10999 nullable: false bundlerProducts: type: array description: 'array of children products for the bundler' example: - [] items: type: object products: type: object description: '' example: id: 184736 nullable: false properties: id: type: integer description: 'The product (internal) ID. The id must be unique(distinct) in the products object.' example: 184736 nullable: false quantity: type: integer description: 'requiredIf The product quantity. This field is required only if bundlerType is bundle. The value must be at least 1.' example: 3 nullable: false priority: type: integer description: 'requiredIf The product priority. This field is required only if bundlerType is stock-parent. The value must be at least 1.' example: 3 nullable: false required: - bundlerType - bundlerProducts '/api/v1/connectors/client/bundlers/{idp}': get: summary: 'GET Bundler By ID' operationId: gETBundlerByID description: "Get Bundler information by internal ID\n\nThrottling: Max 40 requests per minute. (40/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for Product not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for Product not found' code: type: integer example: 404 tags: - 'API V1 - Bundlers' delete: summary: 'DELETE Bundler By ID' operationId: dELETEBundlerByID description: "Delete Bundler by internal id\n\n\n\nThrottling: Max 40 requests per minute. (40/1)" parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for Product not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for Product not found' code: type: integer example: 404 tags: - 'API V1 - Bundlers' parameters: - in: path name: idp description: '' example: 1 required: true schema: type: integer - in: path name: id description: 'The bundler ID.' example: 184742 required: true schema: type: integer '/api/v1/connectors/client/bundlers/byEan/{ean}': get: summary: 'GET Bundler By EAN' operationId: gETBundlerByEAN description: "Get Bundler information by its EAN (barcode)\n\nThis endpoint will return the first product found with the given param value!\n\nThrottling: Max 40 requests per minute. (40/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for Product not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for Product not found' code: type: integer example: 404 tags: - 'API V1 - Bundlers' parameters: - in: path name: ean description: 'The bundler EAN.' example: '4971850911118' required: true schema: type: string '/api/v1/connectors/client/bundlers/byExternalId/{externalId}': get: summary: 'GET Bundler By External ID' operationId: gETBundlerByExternalID description: "Get Bundler information by its External ID\n\nThis endpoint will return the first product found with the given param value!\n\nThrottling: Max 40 requests per minute. (40/1)" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for Product not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for Product not found' code: type: integer example: 404 tags: - 'API V1 - Bundlers' parameters: - in: path name: externalId description: 'The bundler External ID.' example: '105' required: true schema: type: string '/api/v1/connectors/client/bundlers/{bundler_idp}/addProduct': post: summary: 'ADD Product to bundler' operationId: aDDProductToBundler description: "ADD a child product using the product internal ID to a bundler\n\n\nThrottling: Max 10 requests per minute. (10/1)" parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for Product not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for Product not found' code: type: integer example: 404 tags: - 'API V1 - Bundlers' requestBody: required: true content: application/json: schema: type: object properties: productId: type: string description: 'The child product (internal) ID.' example: '184736' nullable: false productQuantity: type: integer description: 'requiredIf The child product quantity. This field is required only if the bundler type is bundle. The value must be at least 1.' example: 3 nullable: false productPriority: type: integer description: 'requiredIf The child product priority. This field is required only if the bundler type is stock-parent. The value must be at least 1.' example: 3 nullable: false required: - productId parameters: - in: path name: bundler_idp description: '' example: 1 required: true schema: type: integer '/api/v1/connectors/client/bundlers/{bundler_idp}/removeProduct': post: summary: 'REMOVE Product from bundler' operationId: rEMOVEProductFromBundler description: "REMOVE a child product using the product internal ID from a bundler\n\n\nThrottling: Max 10 requests per minute. (10/1)" parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: success: false error: message: 'Entry for Product not found' code: 404 properties: success: type: boolean example: false error: type: object properties: message: type: string example: 'Entry for Product not found' code: type: integer example: 404 tags: - 'API V1 - Bundlers' requestBody: required: true content: application/json: schema: type: object properties: productId: type: string description: 'The child product (internal) ID.' example: '184736' nullable: false required: - productId parameters: - in: path name: bundler_idp description: '' example: 1 required: true schema: type: integer /api/v1/connectors/client/campaigns: get: summary: 'List Campaigns' operationId: listCampaigns description: "Retrieves a paginated list of all campaigns.\nRequires the `campaigns:viewAll` permission." parameters: - in: query name: perPage description: 'The number of results to return per page. Defaults to 200.' example: 50 required: false schema: type: integer description: 'The number of results to return per page. Defaults to 200.' example: 50 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Campaigns' /api/v1/connectors/client/campaigns/create: post: summary: 'Create Campaign' operationId: createCampaign description: "Creates a new campaign entry. The `name` and `externalCode` must be unique.\nRequires the `campaigns:create` permission." parameters: [] responses: { } tags: - 'API V1 - Campaigns' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'A unique name for the new campaign.' example: '"The winter sale"' nullable: false externalCode: type: string description: 'A unique external identifier for the campaign. Allows letters, numbers, hyphens, and underscores, but not at the start or end.' example: '"the-winter-sale"' nullable: false required: - name - externalCode /api/v1/connectors/client/couriers/statusList: get: summary: 'GET All Courier Statuses' operationId: gETAllCourierStatuses description: "List all internal courier statuses records.\n\nThrottling: Max 1 request per hour. (1/60)\n\n\n\nInformation found on fields courierStatusId, status and statusLong come from couriers and might not be up-to-date.\n\nisFinal has only two values: YES,NO. The AWB number/order that have a courier status id with isFinal = YES is considered final and will probably not be changed anymore.\n\nWe have knowledge on situations when couriers changed the status of a shipment even after they provided a final status!" parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Courier Status List' /api/v1/connectors/client/deleteEvents/createdAtDate: post: summary: 'GET Deleted Events by CreatedAt Date' operationId: gETDeletedEventsByCreatedAtDate description: "Returns a list with all deleted events filtered by the source and the provided date of creation.\n\nThrottling: Max 20 requests per hour. (20/60)\n\nDefault page size : 250 records per page.\n\nPresents the result with page size and pagination." parameters: - in: query name: page description: 'Which page to show.' example: 1 required: false schema: type: integer description: 'Which page to show.' example: 1 nullable: false responses: { } tags: - 'API V1 - Delete Event' requestBody: required: true content: application/json: schema: type: object properties: source: type: string description: 'The source field accepts only the following values: product, entry, order.' example: product nullable: false date: type: date description: 'The date must be today or older than today and not older than 2024-05-23. If not provided, the default is today. The format must be in: yyyy-mm-dd.' example: '2024-05-23' nullable: false perPage: type: integer description: 'Number of records to show per page. The allowed values are between 10 and 1000. If not provided, the default is 250.' example: 100 nullable: false required: - source /api/v1/connectors/client/multiStocks: get: summary: 'List Multi-Stocks' operationId: listMultiStocks description: "Retrieves a paginated list of all multi-stocks.\nRequires the `stock:all` and `multiStock:viewAll` permissions." parameters: - in: query name: perPage description: 'The number of results to return per page. Defaults to 200.' example: 50 required: false schema: type: integer description: 'The number of results to return per page. Defaults to 200.' example: 50 nullable: false responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - 'API V1 - Multi Stock' /api/v1/connectors/client/multiStocks/create: post: summary: 'Create Multi-Stock' operationId: createMultiStock description: "Creates a new multi-stock entry. The `name` and `external_id` must be unique.\nRequires the `stock:all` and `multiStock:create` permissions." parameters: [] responses: { } tags: - 'API V1 - Multi Stock' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'A unique name for the new multi-stock.' example: '"Regional Warehouse"' nullable: false external_id: type: string description: 'A unique external identifier for the multi-stock. Allows letters, numbers, hyphens, and underscores, but not at the start or end.' example: '"REG_WH_123"' nullable: false required: - name - external_id /api/v1/connectors/client/custom/products/search: post: summary: '' operationId: postApiV1ConnectorsClientCustomProductsSearch description: '' parameters: [] responses: { } tags: - Endpoints /api/v1/connectors/client/custom/products/create: post: summary: '' operationId: postApiV1ConnectorsClientCustomProductsCreate description: '' parameters: [] responses: { } tags: - Endpoints '/api/v1/connectors/client/custom/orders/byExternalId/{externalId}': get: summary: '' operationId: getApiV1ConnectorsClientCustomOrdersByExternalIdExternalId description: '' parameters: [] responses: 401: description: '' content: application/json: schema: type: object example: message: Unauthenticated. properties: message: type: string example: Unauthenticated. tags: - Endpoints parameters: - in: path name: externalId description: '' example: recusandae required: true schema: type: string /api/v1/connectors/client/custom/orders/create: post: summary: '' operationId: postApiV1ConnectorsClientCustomOrdersCreate description: '' parameters: [] responses: { } tags: - Endpoints tags: - name: 'API V1 - Couriers' description: "\nCouriers Endpoints" - name: 'API V1 - Entries' description: "\nEntries Endpoints\n\n\n\n- The GET All Entries endpoint usage is not recommended even if is still provided. As the number of entries can increase, the number of pages will grow constantly. On long term parsing all the results will become a cumbersome and a resource-consuming process.\n- Information about latest entries should always be requested with the help of GET Entries created today endpoint." - name: 'API V1 - Recipients' description: "\nRecipients Endpoints" - name: 'API V1 - Orders' description: "\nOrders Endpoints\n\n\n\n- The GET All Orders endpoint usage is not recommended even if is still provided. As the number of orders increases the number of pages will grow constantly. On long term parsing all the results will become a cumbersome and a resource-consuming process.\n- Information about orders should always be requested with the help of GET Filtered Orders endpoint.\n- The GET Today latest updated orders endpoint can provide the list of orders updated recently.\n- Usage of GET Order By endpoints is not recommended in a list/array larger than 10-20 orders.\n- The information found on courierStatus and courierStatusId does not seek to provide an undoubted clarification when an order is TRULY delivered, returned, lost, or paid. Those are just courier statuses and their interpretation remains at the discretion of the reader." - name: 'API V1 - Order Invoices' description: "\nOrder Invoice Endpoints" - name: 'API V1 - Products' description: "\nProducts Endpoints\n\n\n\n- The GET All Products endpoint usage is not recommended even if is still provided. Information about products is rarely changed on our system. As the number of products can increase, the number of pages will grow constantly. On long term parsing all the results will become a cumbersome and a resource-consuming process.\n- Information about latest products should always be requested with the help of GET Filtered Products or Created/Updated today filtering endpoints.\n- Usage of GET Product By endpoints is not recommended in a list/array larger than 10-20 products." - name: 'API V1 - Receptions' description: "\nReception Endpoints" - name: 'API V1 - Reception Plans' description: "\n\n\nReception Plan Endpoints" - name: 'API V1 - Reception Plan Imports' description: "\nReception Plan Import Endpoints" - name: 'API V1 - Reception Plan Details' description: "\nReception Plan Details Endpoints" - name: 'API V1 - Stock' description: "\n\n\n\nStock Endpoints" - name: 'API V1 - Bundlers' description: "\nA bundler is only a product with 'abilities'. Usually a bundler contains children and their children are also products.\n\n\n\nThe bundle bundler\n- this type of bundler cannot have warehouse activity (reception, entries or shipments)\n- its children products must have a quantity\n- this type of bundler will expand into its children when detected in the order products\n\n\nThe stock-parent bundler\n- this type of bundler can have warehouse activity\n- its children products must have a priority\n- can have maximum 5 children\n- this bundler stock will be checked before the order creation and if the requested quantity is lower than the current stock its children will be added to the order with the remaining requested quantity (if they have stock), following their priority.\n- the stock is calculated from total entries - total exits from all orders\n\nProduct Bundlers Endpoints" - name: 'API V1 - Campaigns' description: '' - name: 'API V1 - Courier Status List' description: "\nCourier Status List Endpoints\n\n\n\n- The information extracted from here is not 100% reliable and is susceptible to change!\n- The information found on courierStatusId, status and statusLong comes from what couriers provided to us at the time of integration development.\n- It is possible that the courier would change its internal status description, its internal code without any prior information!\n- For the orders that we try to retrieve the status of the AWBs from the courier, we will set the courierStatusId order field with the primary id from the GET All Courier Statuses Endpoint." - name: 'API V1 - Delete Event' description: "\nDelete Event Endpoints\n\n\n\nThere are no delete event records BEFORE 23.05.2024!\n
\nThe order delete event records are different from the other sources.\n- A fully deleted order with 2 products will generate 2 delete event records and the internal product id will be found on sourceProductId with its corresponding quantity.\n- An order with 5 products from which two products were removed, will still exist (and can be shipped) with the 3 remaining products. The other two removed products will each create a delete event for that order.\n- The existence of an order delete event does not mean that the order has been fully removed.\n- The existence of an order/product delete event with your sourceExternalId value does not mean that the order/product was not recreated by an automatic behaviour under another sourceInternalId value." - name: 'API V1 - Multi Stock' description: '' - name: Endpoints description: '' components: securitySchemes: default: type: http scheme: bearer description: 'You can retrieve your token by visiting your dashboard and clicking Tokens in API menu.' security: - default: []