Gönderi oluşturma ve teklifleri alma

Adım 1: Gönderi yaratma ve teklifleri alma #

Tek bir çağrıyla hem sistemde gönderi oluşturacak hem de o gönderiye teklifleri alabilirsiniz. Bunun için /shipments endpoint’ine POST isteği göndermelisiniz.

İstek #


curl --request POST \
  --url http://api.geliver.io/api/v1/shipments \
  --header 'Authorization: Bearer cb611162-541f-4fb3-a353-586e2013fb31' \
  --header 'Content-Type: application/json' \
  --data '{
	"senderAddressID": "b6029b1b-cc61-4263-95c3-2bd17614c9d6",
	"returnAddressID": "b6029b1b-cc61-4263-95c3-2bd17614c9d6",
	"length": 10,
	"height": 10,
	"width": 10,
	"distanceUnit": "cm",
	"weight": 1,
	"massUnit": "kg"
	"recipientAddress":{
		"company": "Test Company Name",
		"email": "Test Email",
		"phone": "+905051234567",
		"address1": "Celal Bayar Üniversitesi Teknokenti Daire 102",
		"address2": "",
		"countryCode": "TR",
		"countryName": "Türkiye"
		"cityName": "Manisa",
		"cityCode": "45",
		"districtCode":"123",
		"districtName": "Yunusemre",
		"streetName": "4793",
	},
}'
Parametreler Açıklama
senderAddressID Gönderici adres ID’si. Arayüzdeki adresler bölümünden veya /addresses endpointinden adreslerinizi düzenleyebilirsiniz.
returnAddressID Gönderici adres ID’si. Arayüzdeki adresler bölümünden veya /addresses endpointinden adreslerinizi düzenleyebilirsiniz.
parcelTemplateID Opsiyonel. Eğer kargo boyutları ve/ve ağırlığı için hazır şablon kullanabilirsiniz. Bu alanı kullanırsanız aşağıdaki length, height, width, distanceUnit boyutları ignore edilir. Weight ve massUnit yine geçerli olur.
length Kargo gönderisi uzunluğu. Varsayılan olarak cm cinsinden. Uzunluk ölçüsünü distanceUnit alanıyla değiştirebilirsiniz. Detaylar için lütfen API Referans Dökümanını inceleyin
height Kargo gönderisi yüksekliği. Varsayılan olarak cm cinsinden. Uzunluk ölçüsünü distanceUnit alanıyla değiştirebilirsiniz. Detaylar için lütfen API Referans Dökümanını inceleyin
width Kargo gönderisi genişliği. Varsayılan olarak cm cinsinden. Uzunluk ölçüsünü distanceUnit alanıyla değiştirebilirsiniz. Detaylar için lütfen API Referans Dökümanını inceleyin
distanceUnit Kargo gönderisi uzunluk cinsi. Varsayılan olarak “cm” değerindedir. Detaylar için lütfen API Referans Dökümanını inceleyin
weight Kargo gönderisi ağırlığı. Varsayılan olarak kg cinsinden. Uzunluk ölçüsünü massUnit alanıyla değiştirebilirsiniz. Detaylar için lütfen API referans dökümanını inceleyin
massUnit Kargo gönderisi ağırlık cinsi. Varsayılan olarak “kg” değerindedir. Detaylar için lütfen API Referans Dökümanını inceleyin
recipientAddress.countryCode Ülke kodu ISO2 formatındadır. /countries endpointinden tüm ülkelerin kodlarını inceleyebilirsiniz. Detaylar için lütfen API Referans Dökümanını inceleyin
recipientAddress.cityCode Şehir kodu, Türkiye için plaka numarasıdır. Tüm listeyi /cities?countryCode=TR isteğiyle alabilirsiniz. Detaylar için lütfen API Referans Dökümanını inceleyin.
recipientAddress.districtID Geliver sisteminde tanımlanmış olan ilçe ID değeridir. Örneğin İstanbul için /districts?countryCode=TR&cityCode=34 ile ilçeleri çekebilirsiniz. Detaylar için lütfen API Referans Dökümanını inceleyin.
recipientAddress.countryCode Ülke kodu ISO2 formatındadır. /countries endpointinden tüm ülkelerin kodlarını inceleyebilirsiniz. Detaylar için lütfen API Referans Dökümanını inceleyin
recipientAddress.streetName Cadde adı

Cevap #

Gönderi oluşturma isteğine cevap aşağıdaki gibidir. Cevaptaki offers alanından teklifleri alabilirsiniz.

{
    "result": true,
    "additionalMessage": "Success",
    "data": {
        "id": "fad42868-997c-45ca-b638-5cdf89c0dd05",
        "createdAt": "2021-11-22T16:41:37.275094+03:00",
        ...
        "statusCode": "GOT_OFFERS",
        "offers": {
            "createdAt": "2021-11-22T16:41:37.288005+03:00",
            "updatedAt": "2021-11-22T16:41:37.288005+03:00",
            "cheapest": {
                "id": "58f3d9f2-8603-452d-861c-f5ce9e1e47b0",
                "createdAt": "2021-11-22T16:41:37.293812+03:00",
                "amount": "7.7",
                "currency": "TL",
                "amountLocal": "7.7",
                "currencyLocal": "TL",
                "providerCode": "YURTICI",
                "providerServiceCode": "YURTICI_STANDART",
                "averageEstimatedTime": 259122000000000,
                "durationTerms": "",
                "rating": 0,
                "isAccepted": false
            },
            "fastest": {
                "id": "91cec84a-2145-458b-96e2-54d099a55689",
                "createdAt": "2021-11-22T16:41:37.291221+03:00",
                "amount": "9.9",
                "currency": "TL",
                "amountLocal": "9.9",
                "currencyLocal": "TL",
                "providerCode": "YURTICI",
                "providerServiceCode": "YURTICI_STANDART",
                "averageEstimatedTime": 108136000000000,
                "durationTerms": "",
                "rating": 0,
                "isAccepted": false
            },
            "list": [
                {
                    "id": "91cec84a-2145-458b-96e2-54d099a55689",
                    "createdAt": "2021-11-22T16:41:37.291221+03:00",
                    "amount": "9.9",
                    "currency": "TL",
                    "amountLocal": "9.9",
                    "currencyLocal": "TL",
                    "providerCode": "YURTICI",
                    "providerServiceCode": "YURTICI_STANDART",
                    "averageEstimatedTime": 108136000000000,
                    "durationTerms": "",
                    "rating": 0,
                    "isAccepted": false
                },
                {
                    "id": "58f3d9f2-8603-452d-861c-f5ce9e1e47b0",
                    "createdAt": "2021-11-22T16:41:37.293812+03:00",
                    "amount": "7.7",
                    "currency": "TL",
                    "amountLocal": "7.7",
                    "currencyLocal": "TL",
                    "providerCode": "YURTICI",
                    "providerServiceCode": "YURTICI_STANDART",
                    "averageEstimatedTime": 259122000000000,
                    "durationTerms": "",
                    "rating": 0,
                    "isAccepted": false
                },
                {
                    "id": "4a56e1cf-81f2-442a-94b1-9b8533a0584e",
                    "createdAt": "2021-11-22T16:41:37.295344+03:00",
                    "amount": "13.75",
                    "currency": "TL",
                    "amountLocal": "13.75",
                    "currencyLocal": "TL",
                    "providerCode": "YURTICI",
                    "providerServiceCode": "YURTICI_STANDART",
                    "averageEstimatedTime": 186993000000000,
                    "durationTerms": "",
                    "rating": 0,
                    "isAccepted": false
                }
            ],
            "percentageCompleted": 100,
            "totalOffersRequested": 3,
            "totalOffersCompleted": 3,
            "allowOfferFallback": false
        },
        "acceptedOffer": null,
        "enableAutomation": false,
        "extra": null
    }
}

Parametreler Açıklama
result İsteğin başarılı olup olmadığını belirtir. true ise başarılıdır.
data Oluşturulan gönderinin kaydı.
code Eğer istek başarısız ise burada hata kodu bulunur
message Eğer istek başarısız ise burada hata mesajı bulunur
additionalMessage Sadece test ortamı için geçerli olan detaylı hata mesajı
data.id Yeni oluşturulan gönderinin id’si.
data.statusCode Gönderi durumu. Bu aşamada “GOT_OFFERS” yani teklifler alındı olacak. Sonraki aşama olan Ödeme yapma aşamasında bu değişecektir.
data.offers Gönderiye yapılan teklifler. Anlık olarak oluşturulmaktadır. Tamamlanan teklif yüzdesini percentageCompleted alanından takip edebilirsiniz.
data.offers.percentageCompleted Tekliflerin tamamlanan yüzdesi. 100 ise tüm teklifler alınmıştır. Eğer 100 değilse /shipments/{id} ile tekrar çağrı yapabilirsiniz. Detaylar için lütfen API Referans Dökümanını inceleyin.
data.offers.totalOffersCompleted Alınan toplam teklif sayısı.
data.offers.list Alınan tüm teklifleri bu alanda fiyatlarıyla görebilirsiniz.
data.offers.list.id Tekliflerin her birinin id’sidir. İstediğiniz ödemeyi kabul etmek için ödeme adımında id alanına ihtiyacınız olacak.
data.offers.list.amount Tekliflerin her birinin fiyatı.
data.offers.list.currency Tekliflerin her birinin para birimi kısaltması.
data.offers.cheapest Alınan en ucuz teklif. Bu teklifi kabul etmek için, teklifin id alanına ihtiyacınız olacak. Amount ve currency bilgisi tüm tekliflerdeki gibi bulunmakta.
data.offers.fastest Alınan en hızlı teslimat yapabilecek teklif. Bu teklifi kabul etmek için, teklifin id alanına ihtiyacınız olacak. Amount ve currency bilgisi tüm tekliflerdeki gibi bulunmakta
Hata kodları Açıklama
E1054 Gönderi parse edilemedi. İsteğin yanlış olduğunu belirtir.
E1055 Bu işlemi yapmaya yetkiniz yok.
E1053 Organizasyon bulunamadı
E1068 Gönderici adresi (senderAddressID) bulunamadı. Lütfen addresses endpointi ile adresin varolduğunu kontrol edin
E1056 Alıcı adresi oluşturulamadı
E1057 Sipariş oluşturulamadı
E1058 Gönderi kaydedilemedi