[1.3] Opłacanie przesyłki

 

Uwierzytelnianie

Dostęp do zasobu wymaga podania prawidłowego i ważnego access tokenu.


Opłacanie przesyłki

W momencie wyboru oferty, pozostałe (niewybrane) są usuwane.

Ponieważ zakup przesyłki działa asynchronicznie, serwer w odpowiedzi zwróci informacje o przesyłce nieuwzględniające zmian wywołanych przez zakup (zmiana statusu, nadanie numeru przewozowego), gdyż informacje te będą dostępne dopiero po pewnym czasie.

1 POST /v1/shipments/:id/buy

Parametry

Parametr

Typ

Opis

Walidacja

Parametr

Typ

Opis

Walidacja

offer_id

Integer

ID oferty, która dostępna jest dla opłacanej przesyłki.

Atrybut jest wymagany

  • Oferta musi mieć status available lub selected (jeśli wcześniej podjęta była próba zakupu zakończona niepowodzeniem).

Przykładowe zapytanie

1 2 3 curl -X POST https://api-shipx-pl.easypack24.net/v1/shipments/1/buy -H 'Authorization: Bearer token' -H 'Content-Type: application/json' -d '{ "offer_id": 1456 }'

Odpowiedź

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 HTTP/1.1 200 OK Content-Type: application/json { "href": "https://api-shipx-pl.easypack24.net/v1/organizations/1/shipments/1", "id": "1", "parcels": [ { "id": "small package", "template": "small", "dimensions": { "length": "80", "width": "360", "height": "640", "unit": "mm" }, "weight": { "amount": "25", "unit": "kg" }, "tracking_number": null } ], "custom_attributes": { "target_point": "KRA010", "dropoff_point": null, "sending_method": "parcel_locker", "dispatch_order_id": 1 }, "sender": { "id": "123", "name": "Nazwa", "company_name": "InPost S.A.", "first_name": "Jan", "last_name": "Nowak", "email": "sender@email.com", "phone": "888000000", "address": { "id": "123", "street": "Malborska", "building_number": "130", "city": "Kraków", "post_code": "30-624", "country_code": "PL" } }, "receiver": { "id": "123", "name": "Nazwa", "company_name": null, "first_name": null, "last_name": null, "email": "sender@email.com", "phone": "888000000", "address": null }, "created_at": "2015-09-06T19:21:00.000+02:00", "cod_amount": { "amount": 12.50, "currency": "PLN" }, "insurance": { "amount": 25, "currency": "PLN" }, "reference": "Order No. 12345", "is_return": false, "tracking_number": null, "external_customer_id": "8877xxx", "offers": [ { "id": 1456, "carrier": { "id": "inpost_locker", "name": "InPost Paczkomaty", "description": "InPost Paczkomaty - Przesyłki paczkomatowe." }, "service": { "id": "inpost_locker_standard", "name": "Paczkomatowa Standardowa", "description": "Przesyłka paczkomatowa standardowa." }, "status": "selected", "valid_to": null, "rate": 2.02, "currency": "PLN", "unavailability_reasons": null } ], "selected_offer": { "id": 1456, "carrier": { "id": "inpost_locker", "name": "InPost Paczkomaty", "description": "InPost Paczkomaty - Przesyłki paczkomatowe." }, "service": { "id": "inpost_locker_standard", "name": "Paczkomatowa Standardowa", "description": "Przesyłka paczkomatowa standardowa." }, "status": "selected", "valid_to": null, "rate": 2.02, "currency": "PLN", "unavailability_reasons": null }, "transactions": [] }

Informacje obłędach

Lista błędów, które mogą wystąpić przy opłacaniu przesyłki:

  • resource_not_found - może wystąpić gdy określona przesyłka nie istnieje lub użytkownik nie ma do niej dostępu,

  • offer_unavailable - występuje jeśli podejmowana próba opłacenia oferty w statusie innym niż available albo selected,

  • transaction_failed - może wystąpić jeżeli nie uda się opłacić przesyłki,

  • offer_expired - oferta nie może być zakupiona, ponieważ jej ważność wygasła (oferty ważne są przez 5 minut od ich przygotowania)


 

Asynchroniczne opłacanie przesyłki

Aby otrzymać informację o pomyślnym zakupieniu przesyłki, należy zdefiniować w konfiguracji organizacji adres url, pod który mają być wysyłane informacje dla zdarzenia shipment_confirmed. Dzięki temu aplikacja ShipX wyśle na podany adres następujące informacje:

1 2 3 4 5 6 7 8 9 10 11 POST https://{{adres_podany_w_konfiguracji}} Content-Type: application/json { "event_ts":"2015-12-08 19:42:42 +0100", "event":"shipment_confirmed", "organization_id":1, "payload": { "shipment_id":1234567890, "tracking_number":"681549342531876019900138" } }