Introduction
APIs provide the possibility to integrate Qapla' both for reading and writing with your own ecommerce system or for an e-commerce to which a plugin or connector has not yet been implemented.
- Qapla' API is based on REST.
- Accepts GET, POST, PUT and DELETE JSON encoded requests.
- Returns JSON encoded values.
- The reference time zone is CEST, which corresponds to UTC + 2 when daylight saving time is in effect, or UTC + 1 when standard time is in effect.
Previous versions
Previous versions of this API are still active, but considered as deprecated.- API 1.1
- API 1.0
Webhook
Qapla' also has a Webhook service which is an integral part of the API.API Key
In oder to use the APIs, it is necessary to know the Private API Keys assigned to your channel(s), available on the Control Panel in the section:Settings \ [CHANNEL_NAME]
This API key must be protected and kept secret.
Endpoint
https://api.qapla.it/[API_VERSION]/[ENDPOINT]
[API_VERSION] | It is the version value of the API. |
[ENDPOINT] | It is the endpoint you need to invoke. |
Response
The JSON response to a Request uses this standard format[API_NAME] | The name of the API consumed |
[OK/KO] | OK in case of a positive answer, KO In case of an error |
[ERROR_MESSAGE] | It is null in case of OK and will contain the error in case of KO |
Rate limiting
The system uses the TokenBucket algorithm with the following parameters:
Bucket capacity | 120 | Maximum of 120 requests |
---|---|---|
Tokens per second | 2 | Refilling at a rate of 2 per second |
A multiple request (e.g. pushShipment or pushOrder with 100 shipments or orders) is evaluated as 100 tokens.
HTTP Response Status Codes
Exceeding the limit will lead to the following HTTP response429
Too Many Requests
and the following response error by any API involved
"error": "Too Many Requests"
Abuse
The abuse of the use will lead to a BAN of the API Key.Sandbox
There isn't any proper sandbox environment. However you can use the sandbox field in the API methods (where supported) to use the test infrastructure, without having operational effects (like costs, picking requests sent to the carries, etc...)Test
Once the API Key has been obtained, a connection test can be immediately performed using the API getChannel.Shipments
- Channel, represented by API Key
- Courier, "courier"
- Tracking number, "trackingNumber"
pushShipment
pushShipment allows you to upload one or more shipments through a POST of data in JSON format.In combination with the Webhook creates an integrated shipping management system.
POSThttps://api.qapla.it/1.2/pushShipment/
Request
In this example, two shipments are loaded, one in "minimum" and one "complete" format.
Parameters
There are 3 types of shipment loading modes.
- "minimum" containing 3 mandatory fields*
- "necessary" to activate additional communication services to the customer such as transactional emails, etc.•
- "complete" always with the first 3 mandatory fields, but containing all the information
*Mandatory parameter
•Parameter required to activate transactional emails and / or SMS
The maximum number of shipments that can be sent for individual request is 100.
apiKey(string) | The API Key assigned to the channel into which you want to import shipments | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
pushShipment(array) |
It is an array of maximum 100 shipments to load.
|
Response Body200
Errors
In case of error, each shipping line will be reported:
getShipment
getShipment allows you to read the status of a shipment through the tracking number, the order reference or the ID.For a total and integrated management of the update cycle of shipments, also evaluate the Webhook.
GEThttps://api.qapla.it/1.2/getShipment/?apiKey=[API_KEY]&trackingNumber=[TRACKING_NUMBER]
GEThttps://api.qapla.it/1.2/getShipment/?apiKey=[API_KEY]&reference=[ORDER_REFERENCE]
GEThttps://api.qapla.it/1.2/getShipment/?apiKey=[API_KEY]&id=[SHIPMENT_ID]
GEThttps://api.qapla.it/1.2/getShipment/?apiKey=[API_KEY]&custom1=[CUSTOM1]
Parameters
Parameter | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apiKey*(string) | The API Key assigned to the channel we want to query | Exclusive parameters | |||||||||||||||||||
trackingNumber(string) | The interested tracking number | ||||||||||||||||||||
reference(string) | The order reference | ||||||||||||||||||||
id(int) | Shipment ID | ||||||||||||||||||||
custom1, custom2, custom3(string) | The fields custom1, custom2, custom3 | ||||||||||||||||||||
Optional parameters | |||||||||||||||||||||
lang | The language of the names of the Qapla' status (it, en, es), default: it.
Example: &lang=en |
||||||||||||||||||||
data |
The flag data specifies which and how much data we want to receive, by default it returns minimal data on the progress of the shipment.
The parameter can be combined separated by commas, for example &data=consignee,historyin order to get only these data. |
Response Body200
Description
result | The result of the operation: OK or KO in case of error | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
error | The error in case of result: KO | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
version | The API version | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lang | The required language / transferred as parameter (default: it) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
count | Number of current shipments | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
shipments |
It is an array that can contain more than one shipment
|
Errors
In case of error the "result" field will contain "KO" and the "error" field the description of the error.{ "getShipment": { "result": "KO", "error": "[ERROR_MESSAGE]" } }
getShipments
getShipments allows you to receive the list of shipments imported from Qapla' by input date, shipping date, order date.GEThttps://api.qapla.it/1.2/getShipments/?apiKey=[API_KEY]&[DATE]
Parameters
Parameter | Description |
---|---|
apiKey | the API Key assigned to the channel we want to query |
[DATE]* | |
shipDate | shipment date in format ISO 8601 "YYYY-MM-DD" |
orderDate | order date in format ISO 8601 "YYYY-MM-DD" |
dateIns | upload date in format ISO 8601 "YYYY-MM-DD" |
Response Body200
Description
result(string) | The result of the operation: OK or KO in case of error | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
error(string) | The error in case of result: KO | ||||||||||||||||||||||||||||||||||
version(string) | The API version | ||||||||||||||||||||||||||||||||||
search(string) | The parameter ascribed as search | ||||||||||||||||||||||||||||||||||
count(int) | Number of current shipments | ||||||||||||||||||||||||||||||||||
shipments(array) |
It is an array that can contain more than one shipment
|
Errors
updateShipment
updateShipment allows you to update a shipment.PUThttps://api.qapla.it/1.2/updateShipment/
deleteShipment
deteleShipment allows you to delete a shipment.DELETEhttps://api.qapla.it/1.2/deleteShipment/
Parameters
Parameter | Description |
---|---|
apiKey*(string) | the API Key assigned to the channel we want to query |
courier*(string) | shipment's courier code |
trackingNumber*(string) | shipment's tracking number |
Response Body200
undeleteShipment
undeleteShipment allows you to restore a shipment.PATCHhttps://api.qapla.it/1.2/undeleteShipment/
Parameters
Parameter | Description |
---|---|
apiKey*(string) | the API Key assigned to the channel we want to query |
courier*(string) | shipment's courier code |
trackingNumber*(string) | shipment's tracking number |
Response Body200
trackingByTimeFrame
trackingByTimeFrame allows you to obtain the list of shipments that have undergone an update of the tracking status included in the dateFrom/dateTo timeframe.GEThttps://api.qapla.it/1.2/trackingByTimeFrame/
Parameters
Parameter | Description |
---|---|
apiKey*(string) | The API Key assigned to the channel we want to query |
Optional parameters | |
dateFrom(timestamp) | default: an hour ago. In format ISO 8601 "yyyy-mm-dd hh:mm:ss" |
dateTo(timestamp) | in format ISO 8601 "yyyy-mm-dd hh:mm:ss" |
lang |
The language of the names of the Qapla' status (it, en, es), default: it.
Example: &lang=en |
Response Body200
Description
result | The result of the operation: OK or KO in case of error |
---|---|
error | The error in case of result: KO |
version | The version of API |
lang | The language requested / passed as a parameter (default: it) |
count | Number of current shipments |
shipments | The description of shipment |
Orders
- Channel, represented by API Key
- Order reference, "reference"
- Tracking number, "trackingNumber
An order update occurs if during a pushOrder, the date of update "updatedAt" is greater than the recorded date.
pushOrder
pushOrder allows you to upload one or more orders via a POST of data in JSON format.POSThttps://api.qapla.it/1.2/pushOrder/
Parameters
*Mandatory parameter
The maximum number of orders that can be sent for each individual request is 100.
apiKey*(string) | The API Key assigned to the channel we want to query | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
origin(string) | Origin of order, permitted values:
amazon, carrefour_es, cdiscount, ebay, ecwid, eprice, ibs, magento, magento2, manomano_de, manomano_es, manomano_fr, manomano_gb, manomano_it, prestashop, privalia_es, privalia_it, shopify, spartoo_be, spartoo_cn, spartoo_de, spartoo_es, spartoo_fr, spartoo_gb, spartoo_gr, spartoo_it, spartoo_nl, spartoo_pl, spartoo_pt, storeden, vtex, woocommerce, worten_es, worten_pt, mediaMarkt_de
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pushOrder(array) |
It is an array of maximum 100 orders to load.
|
Response Body200
Description
version(string) | The number version of this API | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
result(string) | It is "OK" if the transmission was successful, "KO" in case of an error | ||||||||||
error(string) | Possible error message in case of "KO" result | ||||||||||
count(int) | Number of orders sent in the request | ||||||||||
orders(array) |
It is an array that corresponds to the number of orders sent in the request.
|
||||||||||
imported(int) | Counter of imported orders | ||||||||||
updated(int) | Counter of updated orders | ||||||||||
deleted(int) | Counter of deleted orders | ||||||||||
skipped(int) | Counter of skipped orders | ||||||||||
existing(int) | Counter of existing orders |
Errors
The error message is reported in the "error" field.getOrder
getOrder allows you to recover an order.GEThttps://api.qapla.it/1.2/getOrder/?apiKey=[API_KEY]&reference=[ORDER_REFERENCE]
getOrders
getOrders allows you to receive the list of orders imported from Qapla'.GEThttps://api.qapla.it/1.2/getOrders/?apiKey=[API_KEY]&[DATE]
Parameters
Parameter | Description |
---|---|
apiKey*(string) | The API Key assigned to the channel we want to query |
[DATE] | |
updatedAt | Order update date in format ISO 8601 "YYYY-MM-DD" |
createdAt | Order date in format ISO 8601 "YYYY-MM-DD" |
dateIns | Upload date in format ISO 8601 "YYYY-MM-DD" |
dateFrom / dateTo | Date range for the value "updatedAt" in format ISO 8601 "yyyy-mm-dd hh:mm:ss" |
Response Body200
deleteOrder
deleteOrder allows you to delete an order.DELETEhttps://api.qapla.it/1.2/deleteOrder/
updateOrder
updateOrder is replaced by the pushOrder setting and the updatedAt parameter is used to determine whether the order should be updated.updatedAt*(YYYY-MM-DD HH:MM:SS) | Order update date Attention This date is used to determine whether to update the order on Qapla', or if the order has already been imported from Qapla'. A more recent value in this field will cause Qapla' to treat it as an "updated order" and then update all previously imported data. |
---|
undeleteOrder
undeleteOrder allows you to restore a deleted order.PATCHhttps://api.qapla.it/1.2/undeleteOrder/
detectOrderCourier
This API is currently being tested. Ask for activation to Customer Care.
Useful before of a createLabel to identify in advance the courier to use.
It is based on 3 rules to identify the courier according to weight, any cash on delivery amount and the destination zip code.If you have clear rules such as the following:
weight | COD | CAP | |
---|---|---|---|
less than or equal to 3Kg | GLS | ||
greater than 3 Kg | less than 100 € | BRT | |
greater than 3 Kg | greater than 100 € | less than 70000 (north) | GLS |
greater than 3 Kg | greater than 100 € | greater than 70000 (south) | BRT |
it is possible to predetermine and pre-assign the courier to the order before the label is created, for example with the createLabel.
POSThttps://api.qapla.it/1.2/detectOrderCourier/
Request
Parameters
*Mandatory Parameter
Parameter | Description |
---|---|
apiKey*(string) | The channel's API Key |
country*(string) | Recipient country in format ISO 3166-1 alpha-2 (Example: IT) |
weight*(float) | Potential weight of the order |
cod(float) | Amount of the shipment, if the shipment is cash on delivery |
postCode(string) | Recipient postal code |
Response Body200
Parameter | Description |
---|---|
courier(json) | Contains id, code and name of the identified courier |
rule(json) | Contains id, and name of the identified rule |
request(json) | The parameters of the request |
Errors
In case of error the "result" field will contain "KO" and the "error" field the description of the error.apiVirtual
apiVirtual allows you to update the status of a virtual courier shipment.POSThttps://api.qapla.it/virtual/
Parameters
*Mandatory parameter
apiKey*(string) | The API Key assigned to the channel we want to query | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apiVirtual(array) |
It is an array that can hold maximum 100 updates.
|
Response Body200
Errors
In case of error the "result" field will contain "KO" and the "error" field the description of the error.Platforms
fetchPlatformOrders
fetchPlatformOrders allows you to receive the list of orders on a platform.GEThttps://api.qapla.it/1.2/fetchPlatformOrders/?apiKey=[API_KEY]&platform=[PLATFORM]&orderFormat=[ORDERFORMAT]&skip
Parameters
Parameter | Description |
---|---|
apiKey*(string) | The API Key assigned to the channel we want to query |
platform(string) |
The associated platform. If it is not indicated, the platform (CMS) associated with the channel is considered. If no platform is associated with the channel, the parameter becomes mandatory to indicate a marketplace.
Possible values:
amazon, carrefour, cdiscount, ebay, ecwid, eprice, ibs, magento, magento2, manomano, prestashop, privalia, shopify, spartoo, storeden, vtex, woocommerce, worten, leroymerlin, greenweez, maisondumonde, mediamarkt,
bigcommerce, commercelayer, shopware6, aliexpress, allegro, sprinter
|
dateFrom / dateTo(timestamp) | Date range for the value "updatedAt" in format ISO 8601 "yyyy-mm-dd hh:mm:ss" |
orderFormat(string) | If the value (platform) is passed, orders will be returned in original format. If no value is passed, the results will be returned in standard format (qapla). |
skip(string) | Skip order statuses. |
Response Body200
Errors
In case of an error the "result" field will contain "KO" and the "error" field the description of the error.{ "fetchPlatformOrders": { "result": "KO", "error": "[ERROR_MESSAGE]" } }
updatePlatformOrder
updatePlatformOrder allows you to update orders on a platform.PUThttps://api.qapla.it/1.2/updatePlatformOrder/
Authentication
Authentication takes place via the APIKey of the channel, passing Q-API-Key in the request header
Parameter | Description |
---|---|
Q-API-Key*(string) | The channel's API Key |
Parameters
Parameter | Description |
---|---|
platform*(string) | The associated platform, for example a marketplace.
Allowed values:
magento, magento2, prestashop, shopify, woocommerce, amazon, ibs, manomano, spartoo, carrefour, leroymerlin, greenweez, maisondumonde, mediamarkt,
bigcommerce, commercelayer, ecwid, shopware6, storeden, vtex, aliexpress, allegro, ebay, eprice, privalia, sprinter, worten
|
reference(string) | Order alphanumeric reference. To be entered, if required, based on the specific platform used. |
orderID(int) | Order numeric reference. To be entered, if required, based on the specific platform used. |
courier*(string) | The Qapla' courier code |
trackingNumber*(string) | The tracking number of the order to be updated |
setShipped(bool) | It is true if shipment is set. To be used according to the peculiarities of the platform used. |
setDelivered(bool) | It is true if delivery is set. To be used according to the peculiarities of the platform used. |
storeCountry(string) | The country code in ISO 2 format of the marketplace. (if requested) |
trackingUrl(string) | An URL to view tracking information |
Response Body200
Labels
createLabel
createLabel allows you to create a label in PDF or ZPL format (Settings should be configured on the control panel).Ask for activation to Customer Care.
POSThttps://api.qapla.it/1.3/createLabel/
Test
It is possible to obtain a test "dummy label" using the courier with GENERIC code.Request
Parameters
*Mandatory Parameters
Parameter | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apiKey*(string) | The channel's API Key | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sandbox(boolean) | It is true if using the sandbox (test mode) Attention: this parameter works if the courier has already been set correctly on the channel. Contact Qaplà's Customer Care. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
origin(string) | Shipment origin, permitted values:
amazon, carrefour_es, cdiscount, ebay, ecwid, eprice, ibs, magento, magento2, manomano_de, manomano_es, manomano_fr, manomano_gb, manomano_it, prestashop, privalia_es, privalia_it, shopify, spartoo_be, spartoo_cn, spartoo_de, spartoo_es, spartoo_fr, spartoo_gb, spartoo_gr, spartoo_it, spartoo_nl, spartoo_pl, spartoo_pt, storeden, vtex, woocommerce, worten_es, worten_pt, mediaMarkt_de
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
reference*(string) | Order's alphanumeric reference | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
orderID(string) | Possible order's numeric reference | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
courier*(string) | The Qapla' courier code | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
courierService*(string) | Possible kind of courier service; for example it can be the contract code of GLS Italy. If the field is empty or not sent, the default is '0'. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
name*(string) | Recipient name | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
address*(string) | Recipient address | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
city*(string) | Recipient city | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
state*(string) | Recipient province | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
postCode*(string) | Recipient Postal Code | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
country*(string) | Recipient country in format ISO 3166-1 alpha-2 (I.E.: IT) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
email(string) | Recipient email | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
telephone(string) | Recipient telephone | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
amount(float) | Shipment amount. Specify only one separator (the dot) to indicate decimals, and do not use separators to indicate thousands. Give a maximum of two decimal digits. Example: 2340.23 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
currencyCode(string) | Currency code ISO 4217 (default: EUR) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
isCOD(boolean) | It is true if payment is cash on delivery | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
payment(string) | Possible order's payment method. Can be set to CONTRASSEGNO only if isCOD is also set to true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notes(string) | Any order note | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
weight(float) | Potential weight of the order | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
parcels(int) | Any order packages | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
length(float) | Potential measures: lenght | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
width(float) | Potential measures: width | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
height(float) | Potential measures: height | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
shippingCODPaymentOption(string) | Payment method of cash on delivery if different from default settings (to be agreed) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
shippingInsurance(float | string) |
Potential insured amount ALL-IN: insert into "shippingDeliveryOptions" the following string: ALLIN To generate directly with SDA, the value must be passed in the form of a string, specifying one of the following codes:
To generate directly with CRONO PTI, the value must be passed in the form of a string, specifying one of the following codes:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
shippingDeliveryOptions(string | JSON) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
shippingRequiredDeliveryDate(YYYY-MM-DD) | The delivery request date in the format YYYY-MM-DD | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pickupDate(YYYY-MM-DD) | The collection date requested to the courier in format YYYY-MM-DD
For the SDA courier, if this field is not specified when creating the label, during the transmission of the label it will be automatically assigned the working day following that of transmission. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
gSpedPrinterID(int) | Possible printer id (user_id) for the Gsped Labeling Machine (to be agreed) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
printNodePrinterID(int | string) | Possible id or name of the printer to be used with PrintNode (to be agreed) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
forceReprint(int) | If set to 1, it forces the label to be printed again via PrintNode; valid when used with "printNodePrinterID" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
content(string) | The content of the goods that may be present on the label (depends on the courier) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
custom1(string) | A custom field | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
custom2(string) | A custom field | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
custom3(string) | A custom field | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sender |
It is the sender of the shipment if different from the contract holder.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tradeDocuments |
Electronic documents to be sent to the courier. You can upload more than one file per shipment. The maximum size of each file is 5 MB. For the moment only available for DHL, FedEx and UPS couriers. Passed as an array of objects, with three mandatory elements each:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rows(array) |
It is an array of "order rows". It is not mandatory, but if populated it has some mandatory data.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
assemblyTypes(array) |
Possible list of assembly types, one per product, for couriers who support this information
Available for the "courierService" 20 (HD). One element must be specified for each element of rows. Available values for "code":
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PUDO(object) |
Allows you to set a Pick-up or Drop-off point for the collection of goods. Each field must be completed according to the courier's need. Refer to the tables below
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
invoice(object) |
It allows you to set information regarding the invoice associated with the shipment, useful for shipments that have to go through customs.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dangerousGoods(JSON) |
For FEDEX courier you need to use a JSON structured as follows parcel: represents the number of the parcels that contains the dangerous goods (in the example a shipment with 3 parcels and only the first and the third contain dangerous goods)
type: battery
|
Response Body200
Parameter | Description |
---|---|
isShipped(boolean) | It istrue if the order has alredy been labeled and returns the label alredy created. |
id(int) | Shipment ID. Important to invoke other APIs. |
trackingNumber(string) | Shipment tracking number. |
returnTrackingNumber(string) | If a returnn label is requested |
format(string) | Label format:
|
labels(array) | An array with the base64 of the labels obtained (there may be multiple labels for multiple packages or returns, etc.).
Or The ZPL for printing on Zebra, as configured on the Control Panel. |
Errors
In case of error the "result" field will contain "KO" and the "error" field will contain the description of the error.deleteLabel
deleteLabel allows you to delete a label created with createLabel.This API is currently being tested. Ask for activation to Customer Care.
DELETEhttps://api.qapla.it/1.2/deleteLabel/
getLabel
getLabel allows you to download a label created on Qapla' in the orignal courier format (PDF, JPG or ZPL).Warning: the getLabel does NOT work with dummy labels created with the GENERIC courier (even with the createLabel API).
GEThttps://api.qapla.it/1.2/getLabel/?apiKey=[API_KEY]&trackingNumber=[TRACKING_NUMBER]
GEThttps://api.qapla.it/1.2/getLabel/?apiKey=[API_KEY]&reference=[ORDER_REFERENCE]
GEThttps://api.qapla.it/1.2/getLabel/?apiKey=[API_KEY]&id=[SHIPMENT_ID]
Parameters
Parameter | Description |
---|---|
apiKey*(string) | The API Key assigned to the channel we want to query |
Exclusive parameters | |
trackingNumber(string) | Concerned tracking number |
reference(string) | Order reference |
parcel(int) | The parcel number corresponding to the label (default = 1) - Only for PDF labels |
id(int) | the shipment id |
json(string) | if used (eg: &json) force a JSON response |
getReturnLabel(string) | if used (eg: &getReturnLabel) returns the contextual return label |
Response Body200
The label with the proper content type (JPG, PDF or txt for ZPL)
Otherwise, if the &json param is used
Errori
In caso di errore il campo "result" conterrà "KO" ed il error la descrizione dell'errore.Errors
In case of an error the "result" field will contain "KO" and the "error" field the description of the error.confirmLabel
confirmLabel allows you to confirm and send to the courier labels created with createLabel and to obtain the Loading List (borderò / manifest) in PDF format.Ask for activation to Customer Care.
POSThttps://api.qapla.it/1.2/confirmLabel/
Request
Parameters
Attention Use "labelCreationDate" or "labelID".*Mandatory Parameter
Parameter | Description |
---|---|
apiKey*(string) | The channel's API Key |
courier*(string) | The Qapla' courier code |
labelCreationDate*(date) | The label’s date of creation in ISO 8601 format is "YYYY-MM-DD" |
labelID*(array) | An array of shipments ID obtained with createLabel |
Response Body200
Parameter | Description |
---|---|
courier(string) | Courier code |
number(string) | Confirmation number |
date(string) | Confirmation date |
shipments(int) | Number of confirmed shipments |
manifest(string) | Manifest in Base64 encoded PDF |
Errors
In case of error, the "result" field will contain "KO" and the "error" field the description of the error.Couriers
getCouriers
getCouriers allows to request the couriers' list both in total and by individual country/region.GEThttps://api.qapla.it/1.2/getCouriers/?apiKey=[API_KEY]&country=[COUNTRY_LIST]&code=[COURIER_CODE]
Parameters
Parameter | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apiKey | the API Key assigned to the channel we want to query | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Optional parameters | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
country | empty for all couriers, or a comma-separated list of country valuescountry=it,fr,globalThe available values are:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
code | The Qapla' code of the couriercode=BRT |
Response Body200
The following URL
GEThttps://api.qapla.it/1.2/getCouriers/?apiKey=[API_KEY]&country=globalwill result:
detectCourier
detectCourier tries to determine the courier from the tracking number provided, responding with a list of couriers.GEThttps://api.qapla.it/1.2/detectCourier/?apiKey=[API_KEY]&trackingNumber=[TRACKING_NUMBER]
Channels
getChannel
getChannel allows you to obtain information on the channel connected to the API Key and the company who created it.GEThttps://api.qapla.it/1.2/getChannel/?apiKey=[API_KEY]
Parameters
Parameter | Description |
---|---|
apiKey | The API Key assigned to the channel we want to query |
Optional Parameters | |
data |
It obtains information on the configuration of the channel with respect to the platform and/or marketplaces.
Possible values (all, platform, marketplaces) |
Response Body200
Misc
getCredits
getCredits allows you to get the remaining credits on your premium account.GEThttps://api.qapla.it/1.2/getCredits/?apiKey=[API_KEY]
Parameters
Parameter | Description |
---|---|
apiKey | The API Key assigned to the channel we want to query |
Response Body200
Description
result(string) | The result of the operation: OK or KO in case of error |
---|---|
error(string) | The error in case of result: KO |
credits(int) | Remaining credits |
date(string) | Count update date |
getQaplaStatus
getQaplaStatus allows you to get the detailed list of Qapla' shipping statusGEThttps://api.qapla.it/1.2/getQaplaStatus/?apiKey=[API_KEY]&lang=[LANG]&id=[ID]
Parameters
Parameter | Description |
---|---|
apiKey(string) | The API Key assigned to the channel we want to query |
Optional parameters | |
lang(string) | The language of the names of the Qapla' status (it, en, es), default: it.
Example: &lang=en |
id(int) | Possible id of which you want to get informations Example: &id=3 |
Response Body200
result(string) | The result of the operation: OK or KO in case of error | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
error(string) | The error in case of result: KO | ||||||||||||||||
version(string) | The version of API | ||||||||||||||||
qaplaStatus(array) |
It is an array of status
|
getPudos
getPudos allows you to request the list of PUDOs (Pick Up Drop Off points) of several couriers at the same time.Ask for activation to Customer Care.
POSThttps://api.qapla.it/1.2/getPudos/?apiKey=[API_KEY]
Request
Parameters
*Mandatory Parameters
Parameter | Description |
---|---|
apiKey*(string) | The channel's API Key del canale |
postCode*(string) | Postal code of the locality you intend to search for PUDOs |
country*(string) | ISO 3166-2 code of the country where the postcode is located. No quality control of the code is performed |
couriers(array) | List of Qapla's "Courier Codes" whose PUDOs you want to know. Valid courier codes are BRT, DHL, DHLPARCEL-ES, FEDEX, FERMOPOINT, GLS, INPOST, PTI, UPS, CORREOS, TIPSA, CORREOS, CORREOS-EXPRESS, MRW-ES, SEUR, NACEX-ES and SENDING. If this parameter is not specified or left empty, PUDO locations for all valid and configured couriers in Qapla' will be retrieved |
province(string) | Province of the locality being searched |
city(string) | Town/city of the location being searched (required for TIPSA) |
street(string) | Address, complete with house number if applicable |
radius(number) | Radius, expressed in KM, within which to limit the search for PUDOs. Specifying a value ≤ 0 is equivalent to specifying no radius |
limit(number) | Number of PUDOs returned per courier. Specifying a value ≤ 0 is equivalent to specifying no limit, in which case the courier will return its default |
Response Body200
Parameter | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
result(string) | Indicates whether the operation was successful, possible values are 'OK' and 'KO' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
error(string) | Contains the description of the error, if any, that was raised, empty if result = 'OK' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
data(array) |
Array of objects containing the list of PUDOs. Each element of the array corresponds to the response obtained from a courier
|
Business Days
An object of the array businessDays represents a weekly opening day and has several attributes:
Parameter | Description |
---|---|
day(int) | Indicates the number of the day of the week according to ISO 8601 coding ( 1 = Monday...7 = Sunday) |
dayName(string) | The name of the day of the week in English |
dayNameIT(string) | The name of the day of the week in Italian |
businessHours(array) | Array of objects consisting of two attributes, 'open' and 'close', both of type string, representing a time in the format 'hh: mm' |
Script
Tracking Script
By entering and configuring our Tracking Script, you can get tracking anywhere on the site.
<!-- Place this code after <body> tag --> <script type="text/javascript"> let apiKey = "7b1b7235"; // your channel's public API Key let reference = "104"; // your order's reference // let noCSS = true; // let compact = true; // let lang = "en"; </script> <script type="text/javascript" src="https://api.qapla.it/js/1.2/qapla-tracking.min.js"></script> <!-- Place this element where you want to display the Qapla' Tracking --> <div id="qapla-tracking"></div>
Parameters
Parameter | Description | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apiKey*(string) | The "public" API KEY present in the configuration of the sales channel on the Qapla' Control Panel (CP). | ||||||||||||||||||||||||||||||||||
reference*/ trackingNumber*(string) | Track by order reference or by tracking number. | ||||||||||||||||||||||||||||||||||
noCSS(bool) | If true not include the standard css, allowing an override. | ||||||||||||||||||||||||||||||||||
compact(bool) | If true a compact version is displayed. | ||||||||||||||||||||||||||||||||||
lang(string) | if set it shows the courier statuses in the selected language. If not set, the default ('it') is used
|
Result
The result is an HTML that will be inserted into the element with id qapla-tracking having the following content.Help
Qapla' Status
It's the interpretation of the status of the shipment with values that Qapla' assigns to each possible state of the courier.
id | name | Description |
---|
Couriers
List of Qapla's couriers' codes, in alphabetical order.Code | Name | URL |
---|