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: []