Dokumentace k partneskému API

Doplňující dokumentace pro snadnou implementaci a integraci s nástrojem Postman je k dispozici zde. Budeme rádi za jakoukoliv zpětnou vazbu, vaše reakce zasílejte na email martin.krizan@airway.cz.

Obsah dokumentu

Již nachystané integrace

Připravujeme a podporujeme implementátory našeho API. Niže uvádíme seznam již ověřených implementací:

0.1 Chybové kódy

Název chyby Číslo chyby Popis
ERROR_NOT_AUTHORIZED 401 Neuvedeny anebo chybné příhlašovací údaje.
ERROR_CONFIGURATION 405 Neplatná konfigurace API na straně Airway s.r.o.
ERROR_REQUIRED_FIELDS 400 Některé z povinných polí ve vašem požadavku chybí.
ERROR_DATETIME_INCORRECT 409 Naplánovaný čas je v minulosti. Týká se především požadavků 1.1 - 1.5
ERROR_INVALID_INPUT 406 Požadavek obsahuje chybu v zaslaných datech. Konkrétní chyba bude doplňena popisem v poli description.
ERROR_PARCEL_STATUS 403 Nelze zpracovat požadavek kvůli stavu zakázky.
ERROR_PARCEL_NOT_FOUND 404 Zásilka v systému neexistuje. Důvodem může být nepotvzení zásilky a odstranění po 48 hodinách anebo vaše dřívejší zrušní zásilky.
ERROR_PARCEL_FINISHED 410 Nelze zprocesovat požadavek u ukončené zásilky.
ERROR_INTERNAL 500 Interní chyba na straně aplikace Airway s.r.o.

Nevalidní požadavky budete moci identifikovat podle vracené odpovědi jako je například tato:

{
  "ok": false,
  "data": {
    "code": 401,
    "name": "ERROR_NOT_AUTHORIZED",
    "description": "Doplňující informace k chybové zprávě."
  }
}

Pole description není povinné a jeho hodnota může nabývat také hodnoty: null

0.2 Address - Objekt adresa pro geokódování

Správná identifikace adres je vitálně závislá pro správný chod spolupráce našich systémů. V rámci výměny informaci o adresách budeme používat následující formát:

Název položky Datový typ Povinná Výchozí hodnota Popis položky
address varchar(255) ANO - Název ulice a číslo domu
additionalInfo varchar(255) NE null Číslo skladu, podlaží, název domu, ... (Vše u adresy mimo název ulice a čisla)
city varchar(100) ANO - Název města či obce
postcode varchar(50) ANO - Poštovní směrovací číslo (PSČ)
countryCode char(2) ANO - Aplha-2 kód země odpovídající formátu ISO 3166-1. Aktuálně operujeme provozujeme sameday-delivery pouze v Praze a okolí. Náš systém je ovšem škálovatelný do celého světa.

Pro geokódování adresy se použijí položky: address, city, postcode, countryCode. Položka additionalInfo bude použita jako doplňující informace pro kurýra.

0.3 Parcel - Popis jednotlivých hodnot spojených s tvorbou zásilky

Název položky Datový typ Povinná Může vyplnit zákazník Výchozí hodnota Popis položky
parcelId varchar(36) ANO NE - Unikátní hodnota zásilky v systému Airway s.r.o.
externalId varchar(36) ANO ANO - Unikátní identifikátor ve vašem systému.
isParcel boolean NE ANO false Flag pro identifikaci doručení do výdejního boxu.
parcelId varchar(36) NE ANO - UUID výdejního boxu.
slotId varchar(36) NE ANO - Identifikátor slotu pro rozvoz. Přes tuto hodnotu si grupujte případné hromadné rozvozy.
referenceNumber varchar(36) NE ANO - Identifikátor zásilky pro kurýra (číslo objednávky, var. symbol, ...).
status integer ANO NE - Status zásilky. Seznam možných stavů je uveden níže.
paymentType integer ANO ANO - Typ platby zásilky. Výčet možných hodnot je uveden níže.
vehicleType integer ANO ANO - Druh přepravy zásilky. Výčet možných hodnot je uveden níže.
courierId integer ANO NE 0 Interní identifikátor kurýra.
price decimal(10,3) ANO NE - Cena objednávky bez DPH.
vat decimal(10,3) ANO NE - Sazba DPH.
pickupContact varchar(255) ANO ANO - Kontakt pro vyzvednutí zásilky (např. jméno odesilatele).
pickupEmail varchar(255) NE ANO - Uveďte pokud má být odesílatel kontaktován.
pickupPhone varchar(255) ANO ANO - Telefonní kontakt pro vyzvednutí zásilky.
pickupCompany varchar(255) NE ANO - Název firmy pro vyzvednutí zásilky.
pickupAddress Address ANO ANO - Objekt pro geokodování adresy vyzvednutí. Popis objektu adresy je uveden výše.
earliestPickupTime datetime ANO ANO - Nejranější čas pro vyzvednutí zásilky. V tuto dobu již musí být vaš balíček nachystán k předání kurýrovi.
pickupDeadline datetime NE ANO null Nejpozdější čas vyzvednutí.
deliveryContact varchar(255) ANO ANO - Kontakt pro doručení zásilky (např. jméno příjemce).
deliveryEmail varchar(255) NE ANO - Uveďte pokud má být příjemce kontaktován.
deliveryPhone varchar(255) ANO ANO - Telefonní kontakt pro doručení zásilky.
deliveryCompany varchar(255) NE ANO - Název firmy pro doručení zásilky.
deliveryAddress Address ANO ANO - Objekt pro geokodování adresy doručení. Popis objektu adresy je uveden výše.
earliestDeliveryTime datetime NE ANO null Nejranější čas pro doručení zásilky.
deliveryDeadline datetime ANO ANO - Nejpozdější čas doručení.
hasCashOnDelivery boolean ANO ANO - Má se u zásilky provést dobírka?
cashOnDeliveryPrice decimal(8,2) NE ANO 0 Hodnota dobírky v Kč.
cashOnDeliveryType integer NE NE 0 Označení způsobu platby dobírky příjemcem. Výčet možných typů je uveden v sekci 0.3.5
isFood boolean NE ANO false Je převážené zboží jídlo?
isFragile boolean NE ANO false Jedná se o zásilku s křehkým zbožím?
isLiquid boolean NE ANO false Obsahuje zásilka převážně tekutinu?
isNotRotatable boolean NE ANO false Je zásilka omezena polohou převáženého zboží?
isGlass boolean NE ANO false Jde o zasilku převážne ze skla?
isBaked boolean NE ANO false Jde o zásilku s pečeným zbožím?
isRefrigerated boolean NE ANO false Jde o zásilku s chlazeného zboží?
isFlower boolean NE ANO false Obsahuje zboží květiny?
isAlcohol boolean NE ANO false Obsahuje zboží alkohol?
isBeef boolean NE ANO false Obsahuje zásilka hovězí maso?
isPork boolean NE ANO false Obsahuje zásilka vepřové maso?
isPartiallyDeliverable boolean NE ANO false Je možno zásilku doručit jenom částečně? Zásilky u kterých je tato možnost povolena mohou končit stavem PARTIALLY_DELIVERED.
sizeX decimal(7,2) ANO ANO - Šířka zásilky v milimetrech.
sizeY decimal(7,2) ANO ANO - Výška zásilky v milimetrech.
sizeZ decimal(7,2) ANO ANO - Hloubka zásilky v milimetrech.
weight decimal(7,2) ANO ANO - Váha zásilky v kg.
amountOfPackages integer ANO ANO - Počet balíků v objednávce.
callbackUrl text NE ANO null Adresa kam se mají zasílat informace o změnách stavů zásilky. Viz níže.
distance decimal(8,3) ANO NE - Vzdálenost zásilky v kilometrech.
pickupEta datetime NE NE null Přibližný čas vyzvednutí zásilky. Tato hodnota je doplněna až v momentě kdy je zásilka přiřazena kurýrovi, jde o stav ACCEPTED_BY_COURIER.
deliveryEta datetime NE NE null Přibližný čas doručení zásilky. Tato hodnota je doplněna až v momentě kdy je zásilka přiřazena kurýrovi, jde o stav ACCEPTED_BY_COURIER.
courierName varchar(255) ANO NE null Jméno kurýra.
courierNotes text ANO NE null Poznámky kurýra v rámci doručení zásilky.
finalReceiverName varchar(255) ANO NE null Jméno osoby, která převzala zásilku.
printLabelUrl varchar(255) ANO NE - URL adresa pro vytištění štítku zásilky.
publicTrackerUrl varchar(255) ANO NE - Veřejná URL adresa do našeho Track & Trace rozhraní. Tento odkaz můžete posílat komukoliv chcete.
proofOfDelivery array of varchar(512) ANO NE - Seznam odkazů na dokumenty o potvrzení o doručení anebo protokoly o nedoručení zásilky.
refusedItems text NE NE - Doplnění o zamítnutých položkach objednávky pokud je možné částečné doručení.
cancellationReason text NE NE - Důvod zrušení zásilky.

Doplňující informace

  • Časové značky (datový typ datetime) jsou chápány v časovém pásmu CET.
  • Pokud zásilka obsahuje více balíků, úvádějte v rámci rozměrů a váhy zásilky souhrné hodnoty.

0.3.1 Výčet stavů zásilky

Status Hodnota Konečná Popis
NEW 10 NE Nová zásilka, zrovna vytvořena (anebo draft)
QUOTE_REJECTED 20 ANO Zásilka byla zamítnuta anebo vypršela doba pro její doručení (48 hodin).
CONFIRMED_BY_CUSTOMER 30 NE Potvrzeno zákazníkem. Jde o finální stav tvorby zásilky klientem.
COURIER_PROPOSED 40 NE Zásilka byla nabídnuta kurýrovi, zatím nebyla akceptována.
ACCEPTED_BY_COURIER 50 NE Akceptována kurýrem, kurýr ještě není na cestě k odesílateli.
AT_PICKUP 60 NE Kurýr je na adrese odesílatele zásilky.
EN_ROUTE 70 NE Kurýr je na cestě k příjemci zásilky.
AT_DELIVERY 80 NE Kurýr je na adrese příjemce zásilky.
TAKING_SIGNATURE 90 NE Pořizování elektronického podpisu od příjemce anebo pořízení selfie.
CANCELED 100 ANO Zásilka je zrušena.
DELIVERED 110 ANO Zásilka je doručena.
PARTIALLY_DELIVERED 120 ANO Zásilka byla částečně doručena. U zásilky bude uveden seznam nepřijatých položek.
REFUSED_BY_CONTACT 130 ANO Zásilka byla odmítnuta odesilatelem či příjemcem. Například nebylo možné zaplatit dobírku.

0.3.2 Výčet typů plateb zásilky

Typ platby Hodnota Popis
ONLINE 100 Předem online
MONTHLY_BILL 200 V rámci měsíčního vyúčtování
ON_SPOT_SENDER 300 Na místě odesilatelem
ON_SPOT_RECIPIENT 400 Na místě příjemcem

0.3.3 Výčet druhů přepravy

Druh dopravy Hodnota Popis
SINGLE_TRACK 10 Kolo či motocykl
CAR 20 Osobní automobil
VAN_SMALL 30 Malá dodávka, pickup
VAN_LARGE 40 Velká dodávka, Dodávka se zvedací plošinou

0.3.4 Výčet druhů priorit

Název priority doručení Hodnota Popis
EXPRESS 1 Expresní doručení do 90 minut
NORMAL 2 Doručení do 180 minut
ECONOMY 3 Doručení do 300 minut a více

0.3.5 Výčet způsobů provedení dobírky

Název priority doručení Hodnota Popis
PAID_BY_NONE 0 Výchozí hodnota pro nedoběrečné platby
PAID_BY_CASH 1 Dobírka placena v hotovosti
PAID_BY_CARD 2 Dobírka placena platební kartou

Definice API - Jednotlivé požadavky

Výchozí adresa API: https://www.airway.cz

1.0 Získání access tokenu

Pro získání access tokenu použijte standardní proces v rámci OAuth2 pro grant_type = client_credentials kdy vaše identifikační údaje naleznete v administrační sekci vašeho účtu v sekci Integrace.

  • URL: /api.partner.v1/authorization/access-token
  • Method: POST

Oproti všem ostatním požadavkům není tělo požadavku ve formátu json nýbrž jde o klasické form data.

grant_type=client_credentials
&client_id=xxxxxxxxxx
&client_secret=xxxxxxxxxx   

1.0.1 Autorizace vašich požadavků

Pro autorizaci vašich požadavků uvedených níže musí být v hlavičce požadavku uveden header Authorization s získaným access tokenem. Tedy takto:

Authorization: Bearer xxxx.xxxx.xxxx

1.1 Získání nabídky

Požadavek pro získání nabídky doručení pro dané parametry.

  • URL: /api.partner.v1/parcel/quote
  • Method: POST
{
  "vehicleType": 20,    
  "pickupAddress": {
    "address": "Za strašnickou vozovnou 1343/6",
    "city": "Praha",
    "postcode": "10000",
    "countryCode": "CZ"
  },
  "earliestPickupTime": "2020-01-04 08:30:00",
  "pickupDeadline": "2020-01-04 09:00:00",
  "deliveryAddress": {
     "address": "Drahobejlova 36",
     "city": "Praha 9",
     "postcode": "19000",
     "countryCode": "CZ"
   },
  "earliestDeliveryTime": "2020-01-04 11:30:00",
  "deliveryDeadline": "2020-01-04 12:00:00",
  "hasCashOnDelivery": true,
  "cashOnDeliveryPrice": 1566.2,
  "isFood": false,
  "isFragile": false,
  "isLiquid": false,
  "isNotRotatable": true,
  "isGlass": false,
  "isBaked": false,
  "isRefrigerated": true,
  "isPartiallyDeliverable": false,
  "isFlower": false,
  "isAlcohol": false,
  "isBeef": false,
  "isPork": false,
  "sizeX": 1000,
  "sizeY": 200,
  "sizeZ": 300,
  "weight": 5.4,
  "amountOfPackages": 1
}

Vracená data pro validní požadavek

{
  "ok": true,
  "data": {  
    "distance": 3.442,
    "price": 209.1,
    "vat": 21,
    "priority": 1,
    "vehicleType": 30
  }
}

1.2 Vytvoření zásilky

Požadavek pro založení zásilky.

  • URL: /api.partner.v1/parcel/create
  • Method: POST
{
  "externalId":  "a469a352-19a0-4feb-a6aa-963b4cf46ebb",
  "slotId": "2020-01-01 01",
  "referenceNumber": "2130332992",
  "paymentType": 200,
  "vehicleType":  30,  
  "pickupContact":  "Jan Novák",
  "pickupEmail": "jan.novak@example.com",
  "pickupPhone":  "+420123456789",
  "pickupCompany": null,
  "pickupAddress":  {
    "address": "Drahobejlova 1073/36",
    "additionalInfo": "Hlaste se na recepci",
    "city": "Praha",
    "postcode": "19000",
    "countryCode": "CZ"
  },  
  "earliestPickupTime": "2020-01-04 08:30:00",
  "pickupDeadline": null,
  "deliveryContact": "Zdeněk Novotný",
  "deliveryEmail": "zdenek.novotny@airway.cz",
  "deliveryPhone": "+420123123321",
  "deliveryCompany": "Airway s.r.o.",
  "deliveryAddress":  {
    "address": "Za strašnickou vozovnou 1343/6",
    "city": "Praha",
    "postcode": "10000",
    "countryCode": "CZ"
  },
  "earliestDeliveryTime": null,
  "deliveryDeadline": "2020-01-04 12:00:00",
  "hasCashOnDelivery":  true,
  "cashOnDeliveryPrice": 2731,
  "isFood":  false,
  "isFragile": true,
  "isLiquid":  false,
  "isNotRotatable": false,
  "isGlass":  false,
  "isBaked": false,
  "isRefrigerated": true,
  "isPartiallyDeliverable": false,
  "isFlower":  false,
  "isAlcohol": false,
  "isBeef":  false,
  "isPork": false,
  "sizeX":  1200,
  "sizeY": 300,
  "sizeZ":  200,
  "weight": 3.1,
  "amountOfPackages": 1,
  "callbackUrl": "https://your.callback.url"
}

Vracená data pro validní požadavek

{
  "ok": true,
  "data": {
    "parcelId": "f469a352-19a0-4feb-a6aa-963b4cf46ebc",
    "externalId": "a469a352-19a0-4feb-a6aa-963b4cf46ebb",
    "distance": 3.442,
    "price": 209.1,
    "vat": 21,
    "priority": 1,
    "vehicleType": 30,
    "status": 10,
    "pickupEta": "2020-01-04 09:00:00",
    "deliveryEta": "2020-01-04 12:00:00",
    "printLabelUrl": "https://www.airway.cz/parcel/print-label/f469a352-19a0-4feb-a6aa-963b4cf46ebc",
    "publicTrackerUrl": "https://www.airway.cz/parcel/track-and-trace/f469a352-19a0-4feb-a6aa-963b4cf46ebc"
  }
}

1.3. Aktualizace zásilky

Požadavek pro aktualizaci položek zásilky. Pro aktualizaci je možné poslat libovolnou podmožinu položek z požadavku 1.2.

  • URL: /api.partner.v1/parcel/update/{parcelId}
  • Method: POST
{
  "externalId":  "f469a352-19a0-4feb-a6aa-963b4cf46ebc",
  "vehicleType":  30,  
  "pickupContact":  "Petr Novák",  
  "pickupAddress":  {
    "additionalInfo": "2.patro, číslo dveří 158"
  }, 
  "isFood":  true
}

Vracená data pro validní požadavek

Vracená odpověď je identická s požadavkem 1.2

1.4 Potvrzení zásilky

Požadavek pro potvrzení zásilky. Tento požadavek mění stav zásilky na CONFIRMED_BY_CUSTOMER a je nezbytný pro potvrzení toho, že máme začít zpracovávat vaší zásilku.

  • URL: /api.partner.v1/parcel/confirm/{parcelId}
  • Method: POST

Vracená data pro validní požadavek

Vracená odpověď je identická s požadavkem 1.2

1.5 Vytvoření zásilky a potvrzení zásilky

  • URL: /api.partner.v1/parcel/create-and-confirm
  • Method: POST
Obsah požadavku je stejný jako u požadavku 1.2

Vracená data pro validní požadavek

Vracená odpověď je identická s požadavkem 1.2

Tato metoda je zde pro snadnější implementaci z vaší strany. Zásilka ve standardním procesu probíhá skupinou stavů:

Tvorba zásilky

  • NEW - Založení zásilky kdy ji lze ještě modifikovat.
  • CONFIRMED_BY_CUSTOMER - Potvrzení zásilky.

Doručení zásilky

Stavy související s procesy doručení v rámci Airway s.r.o.

1.6 Zrušení zásilky

  • URL: /api.partner.v1/parcel/cancel/{parcelId}
  • Method: POST

Vracená data pro validní požadavek

{
  "ok": true
}

Zásilka lze ze strany API zrušit pouze v případě, že ještě není vámi potvrzena (není ve stavu CONFIRMED_BY_CUSTOMER) a je tedy ve stavu NEW. Pro zrušení potvrzené zásilky kontaktujte dispečink.

  • Zrušená zásilka bude tímto smazána z našeho systému.
  • Automaticky smažeme z našeho systému také nepotvrzené zásilky starší než-li 48 hodin.

1.7 Získání stavu zásilky

  • URL: /api.partner.v1/parcel/status/{parcelId}
  • Method: GET

Vracená data pro validní požadavek

Výčet stavů zásilky je uveden v sekci 0.3.1

{
  "ok": true,
  "data": {
    "status": 10, 
    "externalId": "a469a352-19a0-4feb-a6aa-963b4cf46ebb",
    "pickupEta": "2020-01-04 08:42:00",
    "deliveryEta": "2020-01-04 10:28:00",
    "price": 148.1,
    "vat": 21.0,
    "courierName": "Jan Doručil",
    "courierNotes": "Poznámky kurýra ohledně doručení zásilky.",
    "finalReceiverName": "Radomila Štastná",
    "cancellationReason": "",
    "refusedItems": "",
    "proofOfDelivery": [
      "https://www.airway.cz/.../a469a352-19a0-4feb-a6aa-963b4cf46ebb",
      "https://www.airway.cz/.../a469a352-19a0-4feb-a6aa-963b4cf46ebb",
      "..."
    ] 
  }
}

1.8 Získání stavů zásilek

  • URL: /api.partner.v1/parcel/statuses
  • Method: POST
{
  "parcelIdList": [
    "a469a352-19a0-4feb-a6aa-963b4cf46ebb",
    "b469a352-19a0-4feb-a6aa-963b4cf46ebb",
    "c469a352-19a0-4feb-a6aa-963b4cf46ebb"
  ]
}

Odpověď pro validní požadavek

{
  "ok": true,
  "data": [
    {
      "ok": true,
      "parcelId": "a469a352-19a0-4feb-a6aa-963b4cf46ebb",
      "data": {
        "status": 10, 
        "externalId": "a469a352-19a0-4feb-a6aa-963b4cf46ebb",
        "pickupEta": "2020-01-04 08:42:00",
        "deliveryEta": "2020-01-04 10:28:00",
        "price": 148.1,
        "vat": 21.0,
        "courierName": "Jan Doručil",
        "courierNotes": "Poznámky kurýra ohledně doručení zásilky.",
        "finalReceiverName": "Radomila Štastná",
        "cancellationReason": "",
        "refusedItems": "",
        "proofOfDelivery": [
          "https://www.airway.cz/.../a469a352-19a0-4feb-a6aa-963b4cf46ebb",
          "https://www.airway.cz/.../a469a352-19a0-4feb-a6aa-963b4cf46ebb",
          "..."
        ]
      }
    }
  ]
}

1.9 Získání aktivních zásilek

Požadavek pro získání seznamu identifikátorů aktivních zásilek.

  • URL: /api.partner.v1/parcel/active
  • Method: GET

Odpověď pro validní požadavek

{
  "ok": true,
  "data": [
    {
      "parcelId": "a469a352-19a0-4feb-a6aa-963b4cf46ebb",
      "externalId": "1.id.in.your.system",
      "slotId": "Your.Id.of.Slot"
    },
    {
      "parcelId": "b469a352-19a0-4feb-a6aa-963b4cf46ebb",
      "externalId": "2.id.in.your.system",
      "slotId": ""
    }
  ]
}

1.10 Simulace callbacku

Testování callbacků vám může pomoci otestovat si správně váš software. Můžete si založit testovací objednávku a ověřit si chování vaší aplikace pro všechny stavy doručení v našem systému.

  • URL: /api.partner.v1/parcel/simulate-callback
  • Method: POST
{
  "parcelId": "b469a352-19a0-4feb-a6aa-963b4cf46ebb",
  "status": 50 
}

1.11 Zavolání vašeho callbacku (Webhook)

Na vámi uvedenou adresu budeme posílat požadavek po změně stavu anebo času doručení zásilky v našem systému.

  • URL: Hodnota "callbackUrl" z požadavku 1.2
  • Method: POST
{
  "parcelId": "c469a352-19a0-4feb-a6aa-963b4cf46ebb",
  "externalId": "id.ve.vasem.systemu",
  "isFinished": false,
  "status": 50,
  "pickupEta": "2020-01-04 08:42:00",  
  "deliveryEta": "2020-01-04 08:42:00",
  "courierInternalId": 167,  
  "courierPhone": "+420 123 456 789",  
  "courierName": "Jan Novák",  
  "courierNotes": "Poznámky kurýra k doručení zásilky.",
  "finalReceiverName": "Petr Příjemce"  
}

1.12 Získání aktivních rozvozů

Požadavek pro vašich získání aktivních slotů dle zaslaných zásilek. Slot je ukončen jakmile všechny zásilky ve slotu jsou v mají konečný status.

Důležité - Do slotů se dostanou pouze potvrzené zásilky, tzn. že jsou ve finálním stavu ze strany zadání klienta, jde o stav CONFIRMED_BY_CUSTOMER jež má hodnotu 30.

  • URL: /api.partner.v1/parcel/active-slots
  • Method: GET

Odpověď pro validní požadavek

{
  "ok": true,
  "data": {
    "slots": {
      "2020-01-01 01": [
        {
          "parcelId": "bc1106fb-b357-442f-ad41-31b6ce0c1c22",
          "externalId": "a469a352-19a0-4feb-a6aa-963b4ca46eba",
          "slotId": "2020-01-01 01",
          "status": 10,
          "vehicleType": 20,
          "price": 189.0,
          "vat": 21.0,
          "priority": 3,
          "distance": 4.67,
          "pickupEta": null,
          "deliveryEta": null,
          "courierName": "",
          "courierNotes": "",
          "finalReceiverName": "",
          "cancellationReason": "",
          "refusedItems": "",
          "printLabelUrl": "https://www.airway.cz/customer/page/print-label/bc1106fb-b357-442f-ad41-31b6ce0c1c22",
          "publicTrackerUrl": "https://www.airway.cz/customer/page/track-and-trace/bc1106fb-b357-442f-ad41-31b6ce0c1c22",
          "proofOfDelivery": []
        }
      ] 
    },
    "withoutSlot": [
      {
        "parcelId": "bc1106fb-b357-442f-ad41-31b6ce0c1c21",
        "externalId": "a469a352-19a0-4feb-a6aa-963b4ca46ebb",
        "slotId": "",
        "status": 10,
        "vehicleType": 20,
        "price": 189.0,
        "vat": 21.0,
        "priority": 3,
        "distance": 4.67,
        "pickupEta": null,
        "deliveryEta": null,
        "courierName": "",
        "courierNotes": "",
        "finalReceiverName": "",
        "cancellationReason": "",
        "refusedItems": "",
        "printLabelUrl": "https://www.airway.cz/customer/page/print-label/bc1106fb-b357-442f-ad41-31b6ce0c1c21",
        "publicTrackerUrl": "https://www.airway.cz/customer/page/track-and-trace/bc1106fb-b357-442f-ad41-31b6ce0c1c21",
        "proofOfDelivery": []
      }
    ]
  } 
}

1.13 Potvrzení všech zásilek dle slotu - Uzavření slotu

Pro hromadné potvrzení zásilek ve vašem slotu můžete použít tudo metodu. Pokud takto potvrdíte slot, tak dáte našemu systému pokyn k tomu abychom mohli tento slot rozplánovat pro naše kurýry a tedy nepůjde již nic dalšího do slotu přidat. Pokud se budete snažit nahrávat nové zásilky do nového slotu, budeme vám vracet chybu 406 tedy ERROR_INVALID_INPUT.

  • URL: /api.partner.v1/parcel/confirm-by-slot
  • Method: POST
{
  "slotId": "2020-01-01 01"
}

Odpověď pro validní požadavek

{
  "ok": true,
  "data": {
    "slotId": "2020-01-01 01",
    "slotParcels": [
      {"parcelId":  "uuid1", "externalId": "uid1"},
      {"parcelId":  "uuid2", "externalId": "uid2"}
    ]   
  }
}

1.14 Potvrzení zásilek výčtem `parcelId`

Pro hromadné potvrzení zásilek výčtem hodnot parcelId.

  • URL: /api.partner.v1/parcel/confirm-by-parcel-id-list
  • Method: POST
[
  "c80ed180-d68e-4f95-9409-12db3e472b48",
  "31192551-d983-4127-ad53-af49ec359325"
]

Odpověď pro validní požadavek

{
  "ok": true,
  "data": [
    {
      "ok": false,
      "parcelId": "c80ed180-d68e-4f95-9409-12db3e472b48",
      "code": 403,
      "description": "Only new parcel should be confirmed by customer. You parcel has status `CONFIRMED_BY_CUSTOMER` with code 30."
    },
    {
      "ok": true,
      "parcelId": "31192551-d983-4127-ad53-af49ec359325"
    }
  ]
}

Zjistěte cenu vaší zásilky hned teď