# Geliver API Dokümantasyonu - Tam Metin (llms-full.txt) > Bu dosya https://docs.geliver.io adresindeki tüm dokümantasyon sayfalarının derlenmiş düz metin hâlidir. > AI asistanları ve otomatik ajanlar, Geliver API ile ilgili soruları yanıtlarken bu dosyayı > tek kaynak olarak kullanabilir. Kısa indeks için: https://docs.geliver.io/llms.txt Son güncelleme: 2026-10-19 Sayfa sayısı: 34 API tabanı: https://api.geliver.io/api/v1 - Kimlik doğrulama: Authorization: Bearer {token} Dokümantasyon dili: Türkçe. Otomatik üretildi - elle düzenlemeyin (kaynak: docs/*.mdx). ## İçindekiler 1. Genel Bakış - https://docs.geliver.io/docs/home 2. Gönderici adresi oluşturma - https://docs.geliver.io/docs/addresses/create_sender_address 3. Alıcı adresi oluşturma - https://docs.geliver.io/docs/addresses/create_recipient_address 4. Tüm adresleri listeleme - https://docs.geliver.io/docs/addresses/list_addresses 5. Tek bir adresi listeleme - https://docs.geliver.io/docs/addresses/list_address 6. Adres silme - https://docs.geliver.io/docs/addresses/delete_address 7. Şehirleri listeleme - https://docs.geliver.io/docs/addresses/list_cities 8. İlçeleri listeleme - https://docs.geliver.io/docs/addresses/list_districts 9. Kargo şablonu oluşturma - https://docs.geliver.io/docs/parcel_templates/create_parcel_templates 10. Kargo şablonu silme - https://docs.geliver.io/docs/parcel_templates/delete_parcel_templates 11. Kargo şablonlarını listeleme - https://docs.geliver.io/docs/parcel_templates/list_parcel_templates 12. Bakiye görüntüleme - https://docs.geliver.io/docs/prices/get_balance 13. Kargo fiyatlarını listeleme - https://docs.geliver.io/docs/prices/list_prices 14. Gönderi oluşturup ve teklifleri alma - https://docs.geliver.io/docs/shipments_and_transaction/create_shipment/create_shipment_two_step 15. Tek aşamada etiketi satın alma - https://docs.geliver.io/docs/shipments_and_transaction/create_shipment 16. Tek aşamada kapıda ödeme gönderisi etiketi satın alma - https://docs.geliver.io/docs/shipments_and_transaction/create_shipment/create_shipment_payment_on_delivery 17. Tek aşamada kendi anlaşmanız ile etiket satın alma - https://docs.geliver.io/docs/shipments_and_transaction/create_shipment/create_shipment_provider 18. Gönderileri listeleme - https://docs.geliver.io/docs/shipments_and_transaction/get_all_shipments 19. Belirli bir gönderinin detaylarını listeleme - https://docs.geliver.io/docs/shipments_and_transaction/get_shipment 20. Teklifleri kabul etme - https://docs.geliver.io/docs/shipments_and_transaction/accept_offer 21. Gönderi paketlerini güncelleme - https://docs.geliver.io/docs/shipments_and_transaction/update_package_shipment 22. Gönderiyi iptal etme - https://docs.geliver.io/docs/shipments_and_transaction/cancel_shipment 23. Gönderiyi çoğaltma - https://docs.geliver.io/docs/shipments_and_transaction/clone_shipment 24. Gönderiyi iade etme - https://docs.geliver.io/docs/shipments_and_transaction/return_shipment 25. Kargo takip durum kodları - https://docs.geliver.io/docs/shipments_and_transaction/tracking_status_codes 26. Sağlayıcı Servis Kodları - https://docs.geliver.io/docs/shipments_and_transaction/provider_service_codes 27. Webhook oluşturma - https://docs.geliver.io/docs/webhooks/create_webhook 28. Webhookları listeleme - https://docs.geliver.io/docs/webhooks/list_webhooks 29. Webhookları test etme - https://docs.geliver.io/docs/webhooks/test_webhook 30. Webhookları silme - https://docs.geliver.io/docs/webhooks/delete_webhook 31. Kendi anlaşmanızı ekleme - https://docs.geliver.io/docs/providers/create_provider_account 32. Kendi anlaşmalarınızı listeleme - https://docs.geliver.io/docs/providers/list_provider_accounts 33. Kendi anlaşmanızı silme - https://docs.geliver.io/docs/providers/delete_provider_account 34. Hata Kodları - https://docs.geliver.io/docs/error_codes --- # Genel Bakış URL: https://docs.geliver.io/docs/home Geliver API Dokümantasyonu # Kargo süreçlerinizi tek bir API ile yönetin Fiyat karşılaştırma, etiket satın alma, gönderi takibi ve webhook bildirimlerini tek bir REST API üzerinden yönetin. Aşağıdaki menüden ilgili konuya göz atabilir veya adres oluşturarak hemen başlayabilirsiniz. Adresler ile Başlayın Destek Merkezi Test işlemleri hakkında Sistemimizdeki tüm test işlemleriniz için gönderi istekleri içerisinde test alanı yer almaktadır. Burayı 'true' olarak iletmeniz halinde test için gerekli araçlara (Test kargosu, webhook tetikleyicisi ve farklı gönderi durumları) ulaşabileceksiniz. Buradan hareketle ayrı bir test ortamına ihtiyaç bulunmadığı gibi test aşamasında hesabınızın onaylı olmasına da gerek bulunmamaktadır. Soldaki menüde farklı konulara göre kategorize edilmiş başlıklarda farklı istekler, yanıtları, gönderilmesi zorunlu alanlar ve dikkat edilmesi gereken konular yer almaktadır. Tüm isteklerde doğrulama amacıyla Bearer Token kullanılmaktadır. Aşağıda nasıl temin edilebileceği yer almaktadır. Dinamik fiyatlandırma ve yapay zeka algoritmalarımız sayesinde, her gönderi için en uygun fiyatı bulabilirsiniz. En iyi kargo seçeneklerini anında bulabilir ve hangi kargo firmasını seçeceğinizi kolayca belirleyebilirsiniz. Ayrıca, birden fazla kargo firmasıyla entegre çalışarak taşıma ağınızı genişletebilirsiniz. Kargo takip işlemlerinizi API üzerinden kolayca yönetebilirsiniz. Gönderilerinizin anlık durumunu sorgulayabilir, takip bilgilerini e-ticaret platformlarınıza entegre edebilirsiniz. Shopify, WooCommerce, OpenCart gibi popüler e-ticaret platformlarıyla kolay entegrasyon sağlamaktadır. Sipariş bilgilerini otomatik olarak alabilir ve kargo süreçlerinizi hızlıca yönetebilirsiniz. Geliver API, webhooklar ve kendi anlaşmalarınızı da destekler. Webhook kullanarak gönderi durumu değişikliklerinden anında haberdar olabilir, sisteminizde otomatik olarak güncellemeler yapabilirsiniz. Kendi anlaşmalarınız ile kargo fiyatlarını optimize edebilir ve Geliver’in anlaşmaları ile sunduğu özel fiyatlardan faydalanabilirsiniz. Geliver API, dinamik fiyatlandırma ile her gönderi için en uygun kargo seçeneğini bulmanızı, birden fazla kargo firmasıyla tek entegrasyon üzerinden çalışmanızı sağlar. Aşağıdaki üç yetenek üzerine kuruludur: Dinamik FiyatlandırmaPaket ölçülerinize göre anlaşmalı kargo firmalarından anlık fiyat teklifi alın, en uygun seçeneği karşılaştırarak belirleyin. Gönderi TakibiGönderilerinizin anlık durumunu API üzerinden sorgulayın veya Shopify, WooCommerce, OpenCart gibi e-ticaret platformlarınıza entegre edin. Webhook BildirimleriGönderi durumu değiştiğinde anında haberdar olun, sisteminizde otomatik güncellemeler tetikleyin. Kendi AnlaşmalarınızKargo firmalarıyla yaptığınız kendi anlaşmalarınızı Geliver üzerinden kullanarak fiyatlarınızı optimize edin. Öneri Geliştirici dostu dokümantasyon ve müşteri destek sistemimiz ile entegrasyon sürecini kolayca gerçekleştirebilirsiniz. Herhangi bir sorunda Geliver Destek Merkezi veya E-posta üzerinden iletişime geçebilirsiniz. ## SDK'larımız Geliver API'yi tercih ettiğiniz programlama dili ile entegre etmek için aşağıdaki SDK'lardan birini kullanabilirsiniz. #### Go --- # Gönderici adresi oluşturma URL: https://docs.geliver.io/docs/addresses/create_sender_address Geliver aracılığıyla kargo gönderimi yaparken bir gönderici adresi seçmeniz gerekmektedir. Gönderi isteklerinde göreceğinize senderAddressID alanında gönderimi yapacağınız adresin ID'si yer almalıdır. Eğer bu alanı göndermezseniz sistem üzerinde varsayılan olarak seçili adresiniz kullanılacaktır. ## Gönderici adresi oluşturma isteği ```bash title="cURL" curl --location --globoff 'https://api.geliver.io/api/v1/addresses' \ --header 'Authorization: Bearer {{bearerToken}}' \ --header 'Content-Type: application/json' \ --data-raw '{ "name": "İsim Soyisim / Şirket Adı", "email": "mailadresi@gmail.com", "phone": "+905051234567", "address1": "Address Test Json 2-1", "address2": "Address Test Json 2-2", "countryCode": "TR", "cityName": "Istanbul", "cityCode": "34", "districtName": "Esenyurt", "districtID": 107605, "zip": "34020", "isRecipientAddress": false, "shortName": "isimsoyisim" }' ``` #### SDK Kod Örnekleri ```javascript title="geliver (npm)" import { GeliverClient } from 'geliver'; const client = new GeliverClient('YOUR_API_TOKEN'); const address = await client.addresses.createSenderAddress({ name: 'İsim Soyisim / Şirket Adı', email: 'mailadresi@gmail.com', phone: '+905051234567', address1: 'Address Test Json 2-1', address2: 'Address Test Json 2-2', countryCode: 'TR', cityName: 'Istanbul', cityCode: '34', districtName: 'Esenyurt', districtID: 107605, zip: '34020', shortName: 'isimsoyisim' }); console.log(address.id); ``` ```php title="geliver/geliver-php (Composer)" addresses->createSenderAddress([ 'name' => 'İsim Soyisim / Şirket Adı', 'email' => 'mailadresi@gmail.com', 'phone' => '+905051234567', 'address1' => 'Address Test Json 2-1', 'address2' => 'Address Test Json 2-2', 'countryCode' => 'TR', 'cityName' => 'Istanbul', 'cityCode' => '34', 'districtName' => 'Esenyurt', 'districtID' => 107605, 'zip' => '34020', 'shortName' => 'isimsoyisim' ]); echo $address->id; ``` ```python title="geliver (pip)" from geliver import GeliverClient client = GeliverClient('YOUR_API_TOKEN') address = client.create_sender_address( name='İsim Soyisim / Şirket Adı', email='mailadresi@gmail.com', phone='+905051234567', address1='Address Test Json 2-1', address2='Address Test Json 2-2', country_code='TR', city_name='Istanbul', city_code='34', district_name='Esenyurt', district_id=107605, zip='34020', short_name='isimsoyisim' ) print(address.id) ``` ```csharp title="Geliver (NuGet)" using Geliver; var client = new GeliverClient("YOUR_API_TOKEN"); var address = await client.Addresses.CreateSenderAddressAsync(new CreateAddressRequest { Name = "İsim Soyisim / Şirket Adı", Email = "mailadresi@gmail.com", Phone = "+905051234567", Address1 = "Address Test Json 2-1", Address2 = "Address Test Json 2-2", CountryCode = "TR", CityName = "Istanbul", CityCode = "34", DistrictName = "Esenyurt", DistrictID = 107605, Zip = "34020", ShortName = "isimsoyisim" }); Console.WriteLine(address.Id); ``` ```java title="geliver-java (Maven)" import com.geliver.GeliverClient; import com.geliver.models.Address; import com.geliver.requests.CreateAddressRequest; GeliverClient client = new GeliverClient("YOUR_API_TOKEN"); CreateAddressRequest request = new CreateAddressRequest() .setName("İsim Soyisim / Şirket Adı") .setEmail("mailadresi@gmail.com") .setPhone("+905051234567") .setAddress1("Address Test Json 2-1") .setAddress2("Address Test Json 2-2") .setCountryCode("TR") .setCityName("Istanbul") .setCityCode("34") .setDistrictName("Esenyurt") .setDistrictID(107605) .setZip("34020") .setShortName("isimsoyisim"); Address address = client.addresses().createSenderAddress(request); System.out.println(address.getId()); ``` ```go title="geliver-go (go get)" package main import ( "context" "fmt" g "github.com/GeliverApp/geliver-go/pkg/geliver" ) func main() { client := g.NewClient("YOUR_API_TOKEN") ctx := context.Background() zip := "34020" shortName := "isimsoyisim" address, err := client.CreateSenderAddress(ctx, g.CreateAddressRequest{ Name: "İsim Soyisim / Şirket Adı", Email: "mailadresi@gmail.com", Phone: "+905051234567", Address1: "Address Test Json 2-1", Address2: ptrString("Address Test Json 2-2"), CountryCode: "TR", CityName: "Istanbul", CityCode: "34", DistrictName: "Esenyurt", DistrictID: ptrInt(107605), Zip: &zip, ShortName: &shortName, }) if err != nil { panic(err) } fmt.Println(address.ID) } ``` #### İstek içerisindeki alanların açıklamaları namestringzorunlu Gönderici adı veya Şirket adı. En az 4 karakter olmalıdır. emailstring E-posta adresi. phonestringzorunlu Telefon numarası. +90 ile başlayan, boşluksuz, 13 karakterlik formatta olmalıdır (örn. +905051234567). address1stringzorunlu Adres satırı 1 address2string Adres satırı 2 cityNamestringzorunlu Şehir adı. cityCode ile birlikte veya onun yerine gönderilebilir; ikisi de boşsa hata alırsınız. cityCodestringzorunlu Şehir Plaka Kodu. cityName ile birlikte veya onun yerine gönderilebilir; ikisi de boşsa hata alırsınız. districtNamestringzorunlu İlçe adı. Şehrin ilçe kaydı varsa districtName veya districtID'den biri fiilen zorunludur. districtIDnumberzorunlu İlçe ID - Adresler > İlçeleri Listeleme kısmından isteğe ulaşabilirsiniz. districtName ile birlikte veya onun yerine gönderilebilir. zipstring Posta kodu isRecipientAddressboolean Gönderici adresi oluştururken false gönderilmelidir (varsayılan değer zaten false'tur). shortNamestring Adresi panelde ayırt etmek için kullanılan kısa isim. Boş bırakılırsa 'İsim + sayaç' biçiminde otomatik oluşturulur. ## Gönderici adresi oluşturma isteğine gelen yanıt ```json title="200 OK" { "result":true, "data": { "id":"1dc8bd3f-d050-44a8-a6e7-029b619eaeec", "createdAt":"2025-03-07T17:10:31.123257243Z", "updatedAt":"2025-03-07T17:10:31.123257243Z", "shortName":"","name":"İsim soyisim", "email":"isimsoyisim@gmail.com", "phone":"+905051234567", "address1":"Address Test Json 2-1", "address2":"Address Test Json 2-2", "cityCode":"34", "cityName":"Istanbul", "city":null, "state":"", "zip":"34020", "districtID":107605, "districtName":"Esenyurt", "district":null, "streetID":null, "streetName":"", "countryCode":"TR", "countryName":"Türkiye", "source":null, "isDefaultSenderAddress":false, "isDefaultReturnAddress":false, "isRecipientAddress":true, "isInvoiceAddress":false, "isActive":true } } ``` #### Yanıt içerisindeki alanların açıklamaları idstring Oluşturulan gönderici adresinin benzersiz ID'si. createdAtstring Gönderici adresinin oluşturulma zamanı (ISO 8601 formatında). updatedAtstring Gönderici adresinin son güncelleme zamanı (ISO 8601 formatında). shortNamestring Adres için kısa tanımlayıcı isim. namestring Gönderici adı veya şirket adı. emailstring Gönderici email adresi. phonestring Gönderici telefon numarası. address1string Adresin ilk satır bilgisi. address2string Adresin ikinci satır bilgisi. cityCodestring Şehir plaka kodu. cityNamestring Şehir adı. statestring Bölge veya eyalet bilgisi (varsa). zipstring Posta kodu. districtIDnumber İlçe ID, 'Adresler > İlçeleri Listeleme' bölümünden elde edilebilir. districtNamestring İlçe adı. streetNamestring Sokak/mahalle adı. countryCodestring Ülke kodu. countryNamestring Ülke adı. isDefaultSenderAddressboolean Varsayılan gönderici adresi olup olmadığını belirtir. isDefaultReturnAddressboolean Varsayılan iade adresi olup olmadığını belirtir. isRecipientAddressboolean Alıcı adresi olarak kullanılıp kullanılmadığını belirtir. isInvoiceAddressboolean Fatura adresi olup olmadığını belirtir. isActiveboolean Adresin aktif olup olmadığını belirtir. --- # Alıcı adresi oluşturma URL: https://docs.geliver.io/docs/addresses/create_recipient_address Alıcı adresi oluşturmak için, alıcının bilgilerini aşağıdaki cURL isteğinde belirttiğimiz gibi doldurup, belirtilen endpoint'e istek atmanız yeterlidir. ## Alıcı adresi oluşturma isteği ```bash title="cURL" curl --location --globoff 'https://api.geliver.io/api/v1/addresses' \ --header 'Authorization: Bearer {{bearerToken}}' \ --header 'Content-Type: application/json' \ --data-raw '{ "name": "İsim Soyisim/Şirket Adı", "email": "mailadresi@gmail.com", "phone": "+905051234567", "address1": "Address Test Json 2-1", "address2": "Address Test Json 2-2", "countryCode": "TR", "cityName": "Istanbul", "cityCode": "34", "districtName": "Esenyurt", "districtID": 107605, "zip": "34020", "isRecipientAddress": true, "shortName": "isimsoyisim" }' ``` #### SDK Kod Örnekleri ```javascript title="geliver (npm)" import { GeliverClient } from 'geliver'; const client = new GeliverClient('YOUR_API_TOKEN'); const address = await client.addresses.createRecipientAddress({ name: 'İsim Soyisim / Şirket Adı', email: 'mailadresi@gmail.com', phone: '+905051234567', address1: 'Address Test Json 2-1', address2: 'Address Test Json 2-2', countryCode: 'TR', cityName: 'Istanbul', cityCode: '34', districtName: 'Esenyurt', districtID: 107605, zip: '34020', shortName: 'isimsoyisim' }); console.log(address.id); ``` ```php title="geliver/geliver-php (Composer)" addresses->createRecipientAddress([ 'name' => 'İsim Soyisim / Şirket Adı', 'email' => 'mailadresi@gmail.com', 'phone' => '+905051234567', 'address1' => 'Address Test Json 2-1', 'address2' => 'Address Test Json 2-2', 'countryCode' => 'TR', 'cityName' => 'Istanbul', 'cityCode' => '34', 'districtName' => 'Esenyurt', 'districtID' => 107605, 'zip' => '34020', 'shortName' => 'isimsoyisim' ]); echo $address->id; ``` ```python title="geliver (pip)" from geliver import GeliverClient client = GeliverClient('YOUR_API_TOKEN') address = client.create_recipient_address( name='İsim Soyisim / Şirket Adı', email='mailadresi@gmail.com', phone='+905051234567', address1='Address Test Json 2-1', address2='Address Test Json 2-2', country_code='TR', city_name='Istanbul', city_code='34', district_name='Esenyurt', district_id=107605, zip='34020', short_name='isimsoyisim' ) print(address.id) ``` ```csharp title="Geliver (NuGet)" using Geliver; var client = new GeliverClient("YOUR_API_TOKEN"); var address = await client.Addresses.CreateRecipientAddressAsync(new CreateAddressRequest { Name = "İsim Soyisim / Şirket Adı", Email = "mailadresi@gmail.com", Phone = "+905051234567", Address1 = "Address Test Json 2-1", Address2 = "Address Test Json 2-2", CountryCode = "TR", CityName = "Istanbul", CityCode = "34", DistrictName = "Esenyurt", DistrictID = 107605, Zip = "34020", ShortName = "isimsoyisim" }); Console.WriteLine(address.Id); ``` ```java title="geliver-java (Maven)" import com.geliver.GeliverClient; import com.geliver.models.Address; import com.geliver.requests.CreateAddressRequest; GeliverClient client = new GeliverClient("YOUR_API_TOKEN"); CreateAddressRequest request = new CreateAddressRequest() .setName("İsim Soyisim / Şirket Adı") .setEmail("mailadresi@gmail.com") .setPhone("+905051234567") .setAddress1("Address Test Json 2-1") .setAddress2("Address Test Json 2-2") .setCountryCode("TR") .setCityName("Istanbul") .setCityCode("34") .setDistrictName("Esenyurt") .setDistrictID(107605) .setZip("34020") .setShortName("isimsoyisim"); Address address = client.addresses().createRecipientAddress(request); System.out.println(address.getId()); ``` ```go title="geliver-go (go get)" package main import ( "context" "fmt" g "github.com/GeliverApp/geliver-go/pkg/geliver" ) func main() { client := g.NewClient("YOUR_API_TOKEN") ctx := context.Background() zip := "34020" shortName := "isimsoyisim" address, err := client.CreateRecipientAddress(ctx, g.CreateAddressRequest{ Name: "İsim Soyisim / Şirket Adı", Email: "mailadresi@gmail.com", Phone: "+905051234567", Address1: "Address Test Json 2-1", Address2: ptrString("Address Test Json 2-2"), CountryCode: "TR", CityName: "Istanbul", CityCode: "34", DistrictName: "Esenyurt", DistrictID: ptrInt(107605), Zip: &zip, ShortName: &shortName, }) if err != nil { panic(err) } fmt.Println(address.ID) } ``` #### İstek içerisindeki alanların açıklamaları namestringzorunlu Gönderici adı / Şirket adı emailstringzorunlu E-posta adresi phonestringzorunlu Telefon numarası address1stringzorunlu Adres satırı 1 address2string Adres satırı 2 cityNamestringzorunlu Şehir adı. cityCode ile birlikte veya onun yerine gönderilebilir; ikisi de boşsa hata alırsınız. cityCodestringzorunlu Şehir Plaka Kodu. cityName ile birlikte veya onun yerine gönderilebilir; ikisi de boşsa hata alırsınız. districtNamestringzorunlu İlçe adı. Şehrin ilçe kaydı varsa districtName veya districtID'den biri fiilen zorunludur. districtIDnumberzorunlu İlçe ID - Adresler > İlçeleri Listeleme kısmından isteğe ulaşabilirsiniz. districtName ile birlikte veya onun yerine gönderilebilir. zipstring Posta kodu isRecipientAddressboolean Adresin alıcı adresi olarak kaydedilmesi için true gönderilmelidir. Gönderilmezse false (gönderici adresi) kabul edilir. shortNamestring Adresi panelde ayırt etmek için kullanılan kısa isim. Boş bırakılırsa alıcı adreslerinde otomatik doldurulmaz. ## Alıcı adresi oluşturma isteğine gelen yanıt ```json title="200 OK" { "result":true, "data": { "id":"175e52f3-3988-4207-8acd-a4fd2b997ede", "createdAt":"2025-03-07T17:10:07.882420904Z", "updatedAt":"2025-03-07T17:10:07.882420904Z", "shortName":"isimsoyisim","name":"İsim soyisim", "email":"isimsoyisim@gmail.com", "phone":"+905051234567", "address1":"Address Test Json 2-1", "address2":"Address Test Json 2-2", "cityCode":"34", "cityName":"Istanbul", "city":null, "state":"", "zip":"34020", "districtID":107605, "districtName":"Esenyurt", "district":null, "streetID":null, "streetName":"", "countryCode":"TR", "countryName":"Türkiye", "source":null, "isDefaultSenderAddress":false, "isDefaultReturnAddress":false, "isRecipientAddress":true, "isInvoiceAddress":false, "isActive":true } } ``` #### Yanıt içerisindeki alanların açıklamaları idstring Oluşturulan gönderici adresinin benzersiz ID'si. createdAtstring Gönderici adresinin oluşturulma zamanı (ISO 8601 formatında). updatedAtstring Gönderici adresinin son güncelleme zamanı (ISO 8601 formatında). shortNamestring Adres için kısa tanımlayıcı isim. namestring Gönderici adı veya şirket adı. emailstring Gönderici email adresi. phonestring Gönderici telefon numarası. address1string Adresin ilk satır bilgisi. address2string Adresin ikinci satır bilgisi. cityCodestring Şehir plaka kodu. cityNamestring Şehir adı. cityobject Detaylı şehir bilgisi; mevcut değilse null. statestring Bölge veya eyalet bilgisi (varsa). zipstring Posta kodu. districtIDnumber İlçe ID, 'Adresler > İlçeleri Listeleme' bölümünden elde edilebilir. districtNamestring İlçe adı. streetNamestring Sokak/mahalle adı. countryCodestring Ülke kodu. countryNamestring Ülke adı. isDefaultSenderAddressboolean Varsayılan gönderici adresi olup olmadığını belirtir. isDefaultReturnAddressboolean Varsayılan iade adresi olup olmadığını belirtir. isRecipientAddressboolean Alıcı adresi olarak kullanılıp kullanılmadığını belirtir. isInvoiceAddressboolean Fatura adresi olup olmadığını belirtir. isActiveboolean Adresin aktif olup olmadığını belirtir. ### Hata Kodları | Hata Kodu | Açıklama | | --- | --- | | E1129 | Alıcı adresi boş. | | E1130 | Alıcı şehri boş. | | E1131 | Alıcı ülkesi boş. | | E1132 | Alıcı ilçesi boş. | | E1133 | Alıcı ismi boş. | | E1134 | Alıcı telefon numarası boş. | | E1136 | Alıcı e-posta adresi boş. | Tüm hata kodları için Hata Kodları sayfasına bakabilirsiniz. --- # Tüm adresleri listeleme URL: https://docs.geliver.io/docs/addresses/list_addresses Geliver sisteminde kayıtlı olan tüm adreslerinizi bu istek ile listeleyebilirsiniz. ## Tüm adresleri listeleme isteği ```bash title="cURL" curl --location --globoff 'https://api.geliver.io/api/v1/addresses?isRecipientAddress=false&limit=10&page=1' \ --header 'Authorization: Bearer {{bearerToken}}' ``` #### SDK Kod Örnekleri ```javascript title="geliver (npm)" import { GeliverClient } from 'geliver'; const client = new GeliverClient('YOUR_API_TOKEN'); // Gönderici adreslerini listele const addresses = await client.addresses.list({ isRecipientAddress: false, limit: 10, page: 1 }); addresses.forEach(addr => console.log(addr.id, addr.name)); ``` ```php title="geliver/geliver-php (Composer)" addresses->list([ 'isRecipientAddress' => false, 'limit' => 10, 'page' => 1 ]); foreach ($addresses as $addr) { echo $addr->id . ' - ' . $addr->name . PHP_EOL; } ``` ```python title="geliver (pip)" from geliver import GeliverClient client = GeliverClient('YOUR_API_TOKEN') # Gönderici adreslerini listele addresses = client.list_addresses( is_recipient_address=False, limit=10, page=1 ) for addr in addresses: print(addr.id, addr.name) ``` ```csharp title="Geliver (NuGet)" using Geliver; var client = new GeliverClient("YOUR_API_TOKEN"); // Gönderici adreslerini listele var addresses = await client.Addresses.ListAsync( isRecipientAddress: false, limit: 10, page: 1 ); foreach (var addr in addresses) { Console.WriteLine($"{addr.Id} - {addr.Name}"); } ``` ```java title="geliver-java (Maven)" import com.geliver.GeliverClient; import com.geliver.models.Address; import java.util.List; GeliverClient client = new GeliverClient("YOUR_API_TOKEN"); // Gönderici adreslerini listele List
addresses = client.addresses().list(false, 10, 1); for (Address addr : addresses) { System.out.println(addr.getId() + " - " + addr.getName()); } ``` ```go title="geliver-go (go get)" package main import ( "context" "fmt" g "github.com/GeliverApp/geliver-go/pkg/geliver" ) func main() { client := g.NewClient("YOUR_API_TOKEN") ctx := context.Background() isRecipient := false limit := 10 page := 1 result, err := client.ListAddresses(ctx, &isRecipient, &limit, &page) if err != nil { panic(err) } for _, addr := range result.Data { fmt.Println(addr.ID, addr.Name) } } ``` #### İstek parametrelerinin açıklamaları isRecipientAddressbool Alıcı adresi olup olmadığına göre filtreler. Gönderilmezse false kabul edilir (gönderici adresleri listelenir) — tüm adresleri filtresiz görmek için bu parametreyi kullanmayın, gerekiyorsa iki ayrı istekle (true ve false) sorgulayın. isDefaultSenderAddressbool Yalnızca varsayılan gönderici adresini filtrelemek için true gönderebilirsiniz. isInvoiceAddressbool Yalnızca fatura adresini filtrelemek için true gönderebilirsiniz. isTransferredAddressbool Transfer edilmiş adresleri filtrelemek için true gönderebilirsiniz. limitint İstekte sayfa başına kaç adres istendiğinin limitidir. Gönderilmezse veya geçersizse varsayılan davranış uygulanır. pageint Kaç sayfalık yanıt istediğini belirtir. Gönderilmezse veya geçersizse varsayılan davranış uygulanır. ## Tüm adresleri listeleme isteğine gelen yanıt ```json title="200 OK" { "result":true, "additionalMessage":"Success", "limit":10, "page":1, "sort":"created_at desc", "totalRows":2, "totalPages":1, "data":[ { "id":"3efcb969-4a79-45f0-b640-cb7297dfe156", "createdAt":"2023-08-15T12:22:27.359167+03:00", "updatedAt":"2023-08-15T12:22:27.359167+03:00", "shortName":"Yeni Test Adres","name":"test", "email":"@gmail.com","phone":"+9053123456", "address1":" Mh. . Sk. No: Kat: 3 Daire: 8", "address2":"", "cityCode":"01", "cityName":"Adana", "city":null, "state":"", "zip":"45145", "districtID":107120, "districtName":"Aladağ", "district":{ "name":"Gerede", "districtID":107665, "cityCode":"14", "regionCode":null, "countryCode":"TR" }, "streetID":null, "streetName":"", "countryCode":"TR", "countryName":"Türkiye", "source":null, "isDefaultSenderAddress":false, "isDefaultReturnAddress":false, "isRecipientAddress":false, "isInvoiceAddress":false, "isActive":true }, { "id":"89cf6b59-acd9-475a-961e-31586d69fc80", "createdAt":"2023-04-19T19:17:36.870357+03:00", "updatedAt":"2023-07-26T16:44:24.824542+03:00", "shortName":"Ana adres","name":"Test", "email":"test@gmail.com", "phone":"+9055555555555", "address1":" Mh. . Sk. No: 1 Yunusemre/Manisa", "address2":"","cityCode":"14", "cityName":"Bolu", "city":null, "state":"", "zip":"45125", "districtID":107665, "districtName":"Gerede", "district":{ "name":"Gerede", "districtID":107665, "cityCode":"14", "regionCode":null, "countryCode":"TR" }, "streetID":null, "streetName":"", "countryCode":"TR", "countryName":"Türkiye", "source":null, "isDefaultSenderAddress":true, "isDefaultReturnAddress":true, "isRecipientAddress":false, "isInvoiceAddress":false, "isActive":true } ] } ``` resultboolean İşlemin başarılı olup olmadığını belirten sonuç. additionalMessagestring İşlem sonrası ek mesaj bilgisi. limitnumber Sorgu sonucunda dönen sayfa limiti. pagenumber Mevcut sayfa numarası. sortstring Veri listesinin sıralama düzeni. totalRowsnumber Toplam kayıt (satır) sayısı. totalPagesnumber Toplam sayfa sayısı. dataarray Adres nesnelerinin bulunduğu dizi. idstring Adresin benzersiz ID'si. createdAtstring Adresin oluşturulma zamanı (ISO 8601 formatında). updatedAtstring Adresin son güncelleme zamanı (ISO 8601 formatında). shortNamestring Adres için kısa tanımlayıcı isim. namestring Gönderici veya şirket adı. emailstring Gönderici e-posta adresi. phonestring Gönderici telefon numarası. address1string Adresin birinci satır bilgisi. address2string Adresin ikinci satır bilgisi. cityCodestring Şehir plaka kodu. cityNamestring Şehir adı. cityobject Detaylı şehir bilgisi; mevcut değilse null. statestring Bölge veya eyalet bilgisi (varsa). zipstring Posta kodu. districtIDnumber İlçe ID; 'Adresler > İlçeleri Listeleme'den elde edilebilir. districtNamestring İlçe adı. districtobject İlçeye ilişkin detaylı bilgileri içerir. namestring İlçenin adı. districtIDnumber İlçe ID'si. cityCodestring İlçenin bağlı olduğu şehrin plaka kodu. regionCodestring Bölge kodu; mevcut değilse null. countryCodestring İlçenin bağlı olduğu ülkenin kodu. streetIDnumber Sokak veya mahalle ID'si; mevcut değilse null. streetNamestring Sokak veya mahalle adı. countryCodestring Ülke kodu. countryNamestring Ülke adı. sourceobject Kaynak bilgisi; mevcut değilse null. isDefaultSenderAddressboolean Varsayılan gönderici adresi olup olmadığını belirtir. isDefaultReturnAddressboolean Varsayılan iade adresi olup olmadığını belirtir. isRecipientAddressboolean Alıcı adresi olarak kullanılıp kullanılmadığını belirtir. isInvoiceAddressboolean Fatura adresi olup olmadığını belirtir. isActiveboolean Adresin aktif olup olmadığını belirtir. --- # Tek bir adresi listeleme URL: https://docs.geliver.io/docs/addresses/list_address Tek bir adresi listelemek istiyorsanız, adresin ID'si ile sorgulama yapmalısınız. Tüm adresleri listelerken attığınız istekten ve adres oluştururken atılan istekten gelen yanıtlarda veya Geliver panelinde Adresler menüsünde adreslerin ID bilgilerine erişim sağlayabilirsiniz. ## Tek bir adresi listeleme isteği ```bash title="cURL" curl --location --globoff 'https://api.geliver.io/api/v1/addresses/addressID' \ --header 'Authorization: Bearer {{bearerToken}}' ``` ## Tek bir adresi listeleme isteğine gelen yanıt ```json title="200 OK" { "result": true, "additionalMessage": "Success", "data": { "id": "d7e3a680-4926-478a-82ea-89e9a23d2f36", "createdAt": "2025-03-07T14:00:00.000000+03:00", "updatedAt": "2025-03-07T14:00:00.000000+03:00", "shortName": "Test Adres", "name": "İsim Soyisim", "email": "isim.soyisim@mail.com", "phone": "+905321234567", "address1": "Başakşehir Mh. 1234. Sk. No: 22 Kat: 2 Daire: 5", "address2": "", "cityCode": "34", "cityName": "İstanbul", "city": null, "state": "", "zip": "34488", "districtID": 100202, "districtName": "Başakşehir", "district": { "name": "Başakşehir", "districtID": 100202, "cityCode": "34", "regionCode": null, "countryCode": "TR" }, "streetID": null, "streetName": "", "countryCode": "TR", "countryName": "Türkiye", "source": null, "isDefaultSenderAddress": false, "isDefaultReturnAddress": false, "isRecipientAddress": false, "isInvoiceAddress": false, "isActive": true } } ``` #### Yanıt içerisindeki alanların açıklamaları idstring Oluşturulan adresin benzersiz ID'si. createdAtstring Adresin oluşturulma zamanı (ISO 8601 formatında). updatedAtstring Adresin son güncelleme zamanı (ISO 8601 formatında). shortNamestring Adres için kısa tanımlayıcı isim. namestring Gönderici adı veya şirket adı. emailstring Gönderici e-posta adresi. phonestring Gönderici telefon numarası. address1string Adresin birinci satır bilgisi. address2string Adresin ikinci satır bilgisi. cityCodestring Şehir plaka kodu. cityNamestring Şehir adı. cityobject Detaylı şehir bilgisi; mevcut değilse null. statestring Bölge veya eyalet bilgisi (varsa). zipstring Posta kodu. districtIDnumber İlçe ID, 'Adresler > İlçeleri Listeleme' bölümünden elde edilebilir. districtNamestring İlçe adı. districtobject İlçeye ilişkin detaylı bilgileri içerir. namestring İlçe adı. districtIDnumber İlçe ID'si. cityCodestring İlçenin bağlı olduğu şehrin plaka kodu. regionCodestring Bölge kodu; mevcut değilse null. countryCodestring Ülke kodu. streetIDnumber Sokak veya mahalle ID'si; mevcut değilse null. streetNamestring Sokak veya mahalle adı. countryCodestring Ülke kodu. countryNamestring Ülke adı. sourceobject Kaynak bilgisi; mevcut değilse null. isDefaultSenderAddressboolean Varsayılan gönderici adresi olup olmadığını belirtir. isDefaultReturnAddressboolean Varsayılan iade adresi olup olmadığını belirtir. isRecipientAddressboolean Alıcı adresi olarak kullanılıp kullanılmadığını belirtir. isInvoiceAddressboolean Fatura adresi olup olmadığını belirtir. isActiveboolean Adresin aktif olup olmadığını belirtir. --- # Adres silme URL: https://docs.geliver.io/docs/addresses/delete_address Geliver sisteminde kayıt olan adresleri silmek için aşağıdaki isteği kullanabilirsiniz. Adresi silmek için ID bilgisine ihtiyacınız vardır. Tüm adresleri listelerken attığınız istekten ve adres oluştururken atılan istekten gelen yanıtlarda veya Geliver panelinde Adresler menüsünde adreslerin ID bilgilerine erişim sağlayabilirsiniz. Silinemeyen adresler Varsayılan gönderici adresi (isDefaultSenderAddress: true) ve fatura adresi (isInvoiceAddress: true) olarak işaretli adresler doğrudan silinemez. Bu adresleri silmeden önce başka bir adresi varsayılan/fatura adresi yapmanız gerekir. ## Adres silme isteği ```bash title="cURL" curl --location --globoff --request DELETE 'https://api.geliver.io/api/v1/addresses/addressID' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {{bearerToken}}' ``` #### SDK Kod Örnekleri ```javascript title="geliver (npm)" import { GeliverClient } from 'geliver'; const client = new GeliverClient('YOUR_API_TOKEN'); const result = await client.addresses.delete('ADDRESS_ID'); console.log(result); ``` ```php title="geliver/geliver-php (Composer)" addresses->delete('ADDRESS_ID'); print_r($result); ``` ```python title="geliver (pip)" from geliver import GeliverClient client = GeliverClient('YOUR_API_TOKEN') result = client.delete_address('ADDRESS_ID') print(result) ``` ```csharp title="Geliver (NuGet)" using Geliver; var client = new GeliverClient("YOUR_API_TOKEN"); var result = await client.Addresses.DeleteAsync("ADDRESS_ID"); Console.WriteLine(result); ``` ```java title="geliver-java (Maven)" import com.geliver.GeliverClient; GeliverClient client = new GeliverClient("YOUR_API_TOKEN"); var result = client.addresses().delete("ADDRESS_ID"); System.out.println(result); ``` ```go title="geliver-go (go get)" package main import ( "context" "fmt" g "github.com/GeliverApp/geliver-go/pkg/geliver" ) func main() { client := g.NewClient("YOUR_API_TOKEN") ctx := context.Background() result, err := client.DeleteAddress(ctx, "ADDRESS_ID") if err != nil { panic(err) } fmt.Println(result) } ``` ## Adres silme isteğine gelen yanıt ```json title="200 OK" { "result": true, "data": { "id": "1dc8bd3f-d050-44a8-a6e7-029b619eaeec", "createdAt": "2025-03-07T20:10:31.123257+03:00", "updatedAt": "2025-03-07T20:10:31.123257+03:00", "shortName": "", "name": "İsim soyisim", "email": "isimsoyisim@gmail.com", "phone": "+905051234567", "address1": "Address Test Json 2-1", "address2": "Address Test Json 2-2", "cityCode": "34", "cityName": "Istanbul", "city": null, "state": "", "zip": "34020", "districtID": 107605, "districtName": "Esenyurt", "district": null, "streetID": null, "streetName": "", "countryCode": "TR", "countryName": "Türkiye", "source": null, "isDefaultSenderAddress": false, "isDefaultReturnAddress": false, "isRecipientAddress": true, "isInvoiceAddress": false, "isActive": false } } ``` --- # Şehirleri listeleme URL: https://docs.geliver.io/docs/addresses/list_cities Geliver API ile çalışırken şehir ve ilçelerin sorunsuz çalışması için, şehir ve ilçe listeleme isteklerimizi kullanmalı ve adreslerinizde buradaki ilçe ve şehir ID'lerini eklemelisiniz. countryCode gönderilmezse tüm ülkelerin şehirleri döner. Türkiye için (countryCode=TR), İstanbul, Ankara, İzmir, Bursa ve Antalya listenin başında; diğer şehirler plaka koduna göre sıralı gelir. ## Şehirleri listeleme isteği ```bash title="cURL" curl --location --globoff 'https://api.geliver.io/api/v1/cities?countryCode=TR' ``` #### SDK Kod Örnekleri ```javascript title="geliver (npm)" import { GeliverClient } from 'geliver'; const client = new GeliverClient('YOUR_API_TOKEN'); const cities = await client.geo.listCities('TR'); cities.forEach(city => console.log(city.cityCode, city.name)); ``` ```php title="geliver/geliver-php (Composer)" geo->listCities('TR'); foreach ($cities as $city) { echo $city->cityCode . ' - ' . $city->name . PHP_EOL; } ``` ```python title="geliver (pip)" from geliver import GeliverClient client = GeliverClient('YOUR_API_TOKEN') cities = client.list_cities('TR') for city in cities: print(city.city_code, city.name) ``` ```csharp title="Geliver (NuGet)" using Geliver; var client = new GeliverClient("YOUR_API_TOKEN"); var cities = await client.Geo.ListCitiesAsync("TR"); foreach (var city in cities) { Console.WriteLine($"{city.CityCode} - {city.Name}"); } ``` ```java title="geliver-java (Maven)" import com.geliver.GeliverClient; import com.geliver.models.City; import java.util.List; GeliverClient client = new GeliverClient("YOUR_API_TOKEN"); List cities = client.geo().listCities("TR"); for (City city : cities) { System.out.println(city.getCityCode() + " - " + city.getName()); } ``` ```go title="geliver-go (go get)" package main import ( "context" "fmt" g "github.com/GeliverApp/geliver-go/pkg/geliver" ) func main() { client := g.NewClient("YOUR_API_TOKEN") ctx := context.Background() cities, err := client.ListCities(ctx, "TR") if err != nil { panic(err) } for _, city := range cities { fmt.Println(city.CityCode, city.Name) } } ``` ## Şehirleri listeleme isteğine gelen yanıt ```json title="200 OK" { "result": true, "additionalMessage": "Success", "data": [ { "name": "Istanbul", "areaCode": "", "cityCode": "34", "countryCode": "TR" }, { "name": "Ankara", "areaCode": "", "cityCode": "06", "countryCode": "TR" }, { "name": "İzmir", "areaCode": "", "cityCode": "35", "countryCode": "TR" }, { "name": "Bursa", "areaCode": "", "cityCode": "16", "countryCode": "TR" }, { "name": "Antalya", "areaCode": "", "cityCode": "07", "countryCode": "TR" } ] } ``` #### Yanıt içerisindeki alanların açıklamaları namestring Şehrin adı. areaCodestring Şehrin alan kodu; mevcut değilse boş string. cityCodestring Şehir plaka kodu. countryCodestring Ülke kodu. --- # İlçeleri listeleme URL: https://docs.geliver.io/docs/addresses/list_districts Geliver API ile çalışırken şehir ve ilçelerin sorunsuz çalışması için, şehir ve ilçe listeleme isteklerimizi kullanmalı ve adreslerinizde buradaki ilçe ve şehir ID'lerini eklemelisiniz. ## İlçeleri listeleme isteği ```bash title="cURL" curl --location --globoff 'https://api.geliver.io/api/v1/districts?countryCode=TR&cityCode=34' ``` #### SDK Kod Örnekleri ```javascript title="geliver (npm)" import { GeliverClient } from 'geliver'; const client = new GeliverClient('YOUR_API_TOKEN'); const districts = await client.geo.listDistricts('TR', '34'); districts.forEach(d => console.log(d.districtID, d.name)); ``` ```php title="geliver/geliver-php (Composer)" geo->listDistricts('TR', '34'); foreach ($districts as $d) { echo $d->districtID . ' - ' . $d->name . PHP_EOL; } ``` ```python title="geliver (pip)" from geliver import GeliverClient client = GeliverClient('YOUR_API_TOKEN') districts = client.list_districts('TR', '34') for d in districts: print(d.district_id, d.name) ``` ```csharp title="Geliver (NuGet)" using Geliver; var client = new GeliverClient("YOUR_API_TOKEN"); var districts = await client.Geo.ListDistrictsAsync("TR", "34"); foreach (var d in districts) { Console.WriteLine($"{d.DistrictID} - {d.Name}"); } ``` ```java title="geliver-java (Maven)" import com.geliver.GeliverClient; import com.geliver.models.District; import java.util.List; GeliverClient client = new GeliverClient("YOUR_API_TOKEN"); List districts = client.geo().listDistricts("TR", "34"); for (District d : districts) { System.out.println(d.getDistrictID() + " - " + d.getName()); } ``` ```go title="geliver-go (go get)" package main import ( "context" "fmt" g "github.com/GeliverApp/geliver-go/pkg/geliver" ) func main() { client := g.NewClient("YOUR_API_TOKEN") ctx := context.Background() districts, err := client.ListDistricts(ctx, "TR", "34") if err != nil { panic(err) } for _, d := range districts { fmt.Println(d.DistrictID, d.Name) } } ``` #### İstek parametrelerinin açıklamaları cityCodeintzorunlu İlçelerini listelemek istediğiniz şehrin plaka kodu ## İlçeleri listeleme isteğine gelen yanıt ```json title="200 OK" { "result": true, "additionalMessage": "Success", "data": [ { "name": "Adalar", "districtID": 107062, "cityCode": "34", "regionCode": null, "countryCode": "TR" }, { "name": "Arnavutköy", "districtID": 107188, "cityCode": "34", "regionCode": null, "countryCode": "TR" }, { "name": "Ataşehir", "districtID": 107207, "cityCode": "34", "regionCode": null, "countryCode": "TR" }, { "name": "Avcılar", "districtID": 107213, "cityCode": "34", "regionCode": null, "countryCode": "TR" }, { "name": "Bağcılar", "districtID": 107308, "cityCode": "34", "regionCode": null, "countryCode": "TR" } ] } ``` #### Yanıt içerisindeki alanların açıklamaları namestring İlçenin adı. districtIDnumber İlçenin benzersiz ID'si. cityCodestring İlçenin bağlı olduğu şehrin plaka kodu. regionCodestring Bölge kodu; mevcut değilse null değeri alır. countryCodestring İlçenin bağlı olduğu ülkenin kodu. --- # Kargo şablonu oluşturma URL: https://docs.geliver.io/docs/parcel_templates/create_parcel_templates Geliver içerisinde kargo şablonları oluşturarak varsayılan şablonlar aracılığıyla gönderi boyutunuzu her seferinde tek tek girme zahmetinden kurtulabilirsiniz. Paketinizin ölçülerini istekte belirtiliği şekilde girerek şablonunuzu oluşturabilirsiniz. ## Kargo şablonu oluşturma isteği ```bash title="cURL" curl --location --globoff 'https://api.geliver.io/api/v1/parceltemplates' \ --header 'Authorization: Bearer {{bearerToken}}' \ --header 'Content-Type: application/json' \ --data '{ "name": "Test Sablon", "distanceUnit": "cm", "massUnit": "kg", "height": 4, "length": 4, "weight": 6, "width": 2 }' ``` #### SDK Kod Örnekleri ```javascript title="geliver (npm)" import { GeliverClient } from 'geliver'; const client = new GeliverClient('YOUR_API_TOKEN'); const template = await client.parcelTemplates.create({ name: 'Test Sablon', distanceUnit: 'cm', massUnit: 'kg', height: '4', length: '4', weight: '6', width: '2' }); console.log('Template ID:', template.id); ``` ```php title="geliver/geliver-php (Composer)" parcelTemplates->create([ 'name' => 'Test Sablon', 'distanceUnit' => 'cm', 'massUnit' => 'kg', 'height' => '4', 'length' => '4', 'weight' => '6', 'width' => '2' ]); echo 'Template ID: ' . $template->id . PHP_EOL; ``` ```python title="geliver (pip)" from geliver import GeliverClient client = GeliverClient('YOUR_API_TOKEN') template = client.create_parcel_template( name='Test Sablon', distance_unit='cm', mass_unit='kg', height='4', length='4', weight='6', width='2' ) print('Template ID:', template.id) ``` ```csharp title="Geliver (NuGet)" using Geliver; var client = new GeliverClient("YOUR_API_TOKEN"); var template = await client.ParcelTemplates.CreateAsync(new CreateParcelTemplateRequest { Name = "Test Sablon", DistanceUnit = "cm", MassUnit = "kg", Height = "4", Length = "4", Weight = "6", Width = "2" }); Console.WriteLine($"Template ID: {template.Id}"); ``` ```java title="geliver-java (Maven)" import com.geliver.GeliverClient; import com.geliver.models.ParcelTemplate; import com.geliver.requests.CreateParcelTemplateRequest; GeliverClient client = new GeliverClient("YOUR_API_TOKEN"); CreateParcelTemplateRequest request = new CreateParcelTemplateRequest() .setName("Test Sablon") .setDistanceUnit("cm") .setMassUnit("kg") .setHeight("4") .setLength("4") .setWeight("6") .setWidth("2"); ParcelTemplate template = client.parcelTemplates().create(request); System.out.println("Template ID: " + template.getId()); ``` ```go title="geliver-go (go get)" package main import ( "context" "fmt" g "github.com/GeliverApp/geliver-go/pkg/geliver" ) func main() { client := g.NewClient("YOUR_API_TOKEN") ctx := context.Background() template, err := client.CreateParcelTemplate(ctx, g.CreateParcelTemplateRequest{ Name: "Test Sablon", DistanceUnit: "cm", MassUnit: "kg", Height: "4", Length: "4", Weight: "6", Width: "2", }) if err != nil { panic(err) } fmt.Println("Template ID:", template.ID) } ``` #### İstek içerisindeki alanların açıklamaları bilgi Aşağıdaki alanlar sunucu tarafında zorunlu tutulmaz (eksik gönderirseniz istek hata vermez), ancak şablonun gönderi oluştururken işlevsel olması için tüm ölçüleri eksiksiz göndermeniz önerilir. namestringzorunlu Şablonunuza vermek istediğiniz isim distanceUnitstringzorunlu Uzunluk birimi massUnitstringzorunlu Kütle birimi heightstringzorunlu Yükseklik lengthstringzorunlu Uzunluk weightstringzorunlu Ağırlık widthstringzorunlu Genişlik ## Kargo şablonu oluşturma isteğine gelen yanıt ```json title="200 OK" { "result":true, "data": { "id":"1d316b43-eb83-42e6-ba4c-da9d9d941b71", "createdAt":"2025-03-07T17:11:55.14018029Z", "updatedAt":"2025-03-07T17:11:55.14018029Z", "length":"4", "width":"2", "height":"4", "desi":"0", "oldDesi":"0", "distanceUnit":"cm", "weight":"6", "oldWeight":"0", "massUnit":"kg", "isActive":true, "name":"Test Sablon", "LanguageCode":"en-US" } } ``` --- # Kargo şablonu silme URL: https://docs.geliver.io/docs/parcel_templates/delete_parcel_templates Oluşturduğunuz kargo şablonlarını silebilmek için Kargo şablonu silme isteğimizi kullanabilirsiniz. ## Kargo şablonu silme isteği ```bash title="cURL" curl --location --globoff --request DELETE 'https://api.geliver.io/api/v1/parceltemplates/:templateID' \ --header 'Authorization: Bearer {{bearerToken}}' ``` ## Kargo şablonu silme isteğine gelen yanıt Bilinen davranış Bu uç nokta, şablonu silmesine rağmen yanıt gövdesinde kargo şablonu yerine boş (zero-value) bir adres nesnesi döner. Şablonun silinip silinmediğini anlamak için yanıttaki alanlara değil, result: true değerine bakın; gerekirse Kargo şablonlarını listeleme isteğiyle şablonun artık listede olmadığını doğrulayabilirsiniz. ```json title="200 OK" { "result": true, "data": { "id": "00000000-0000-0000-0000-000000000000", "createdAt": "0001-01-01T00:00:00Z", "updatedAt": "0001-01-01T00:00:00Z", "shortName": "", "name": "", "email": "", "phone": "", "address1": "", "address2": "", "cityCode": null, "cityName": "", "city": null, "state": "", "zip": "", "districtID": 0, "districtName": "", "district": null, "streetID": null, "streetName": "", "countryCode": null, "countryName": "", "source": null, "isDefaultSenderAddress": false, "isDefaultReturnAddress": false, "isRecipientAddress": false, "isInvoiceAddress": false, "isActive": false } } ``` --- # Kargo şablonlarını listeleme URL: https://docs.geliver.io/docs/parcel_templates/list_parcel_templates Oluşturduğunuz kargo şablonlarını listelemek için aşağıdaki isteği kullanabilirsiniz. ## Kargo şablonlarını listeleme isteği ```bash title="cURL" curl --location --globoff 'https://api.geliver.io/api/v1/parceltemplates' \ --header 'Authorization: Bearer {{bearerToken}}' ``` ## Kargo şablonlarını listeleme isteğine gelen yanıt ```json title="200 OK" { "result":true, "additionalMessage":"Success", "data": [ { "id":"1d316b43-eb83-42e6-ba4c-da9d9d941b71", "createdAt":"2025-03-07T20:11:55.14018+03:00", "updatedAt":"2025-03-07T20:11:55.14018+03:00", "length":"4", "width":"2", "height":"4", "desi":"0", "oldDesi":"0", "distanceUnit":"cm", "weight":"6", "oldWeight":"0", "massUnit":"kg", "isActive":true, "name":"Test Sablon", "LanguageCode":"en-US" }, { "id":"120596ad-66fc-4c35-bdc3-a71bf7e86c78", "createdAt":"2025-03-07T20:12:12.797301+03:00", "updatedAt":"2025-03-07T20:12:12.797301+03:00", "length":"4", "width":"2", "height":"4", "desi":"0", "oldDesi":"0", "distanceUnit":"cm", "weight":"6", "oldWeight":"0", "massUnit":"kg", "isActive":true, "name":"Test Sablon 2", "LanguageCode":"en-US" } ] } ``` --- # Bakiye görüntüleme URL: https://docs.geliver.io/docs/prices/get_balance Bakiyenizi görüntülemek için bakiye görüntüleme isteğimizi kullanabilirsiniz. İstek içerisindeki organizationID bilgisini, Geliver panelinizde Hesabı Yönet > Üyeler menüsüne giderek, açılan linkteki https://app.geliver.io/organizations/ kısmından sonra başlayan ID'yi kopyalayıp edinebilirsiniz. ## Bakiye görüntüleme isteği ```bash title="cURL" curl --location --globoff --request GET 'https://api.geliver.io/api/v1/organizations/{{organizationId}}/balance' \ --header 'Authorization: Bearer {{bearerToken}}' ``` ## Bakiye görüntüleme isteğine gelen yanıt ```json title="json" { "result":true, "additionalMessage":"Success", "data":"150", "debt":"36" } ``` --- # Kargo fiyatlarını listeleme URL: https://docs.geliver.io/docs/prices/list_prices Geliver kendi kargo anlaşmaları ile uygun fiyatlı gönderim yapabileceğiniz bir akıllı kargo pazaryeri platformudur. Geliver'in avantajlı fiyatlarını güncel olarak çekebileceğiniz Kargo fiyatlarını listeleme isteğimizi aşağıda bulabilirsiniz. ## Kargo fiyatlarını listeleme isteği ```bash title="cURL" curl --location --globoff --request GET 'https://api.geliver.io/api/v1/priceList?paramType=parcel&length=2&width=5&height=5&weight=24' \ --header 'Authorization: Bearer {{bearerToken}}' ``` #### SDK Kod Örnekleri ```javascript title="geliver (npm)" import { GeliverClient } from 'geliver'; const client = new GeliverClient('YOUR_API_TOKEN'); const prices = await client.prices.list({ paramType: 'parcel', length: 2, width: 5, height: 5, weight: 24 }); console.log('Fiyat listesi:', prices); ``` ```php title="geliver/geliver-php (Composer)" prices->list([ 'paramType' => 'parcel', 'length' => 2, 'width' => 5, 'height' => 5, 'weight' => 24 ]); print_r($prices); ``` ```python title="geliver (pip)" from geliver import GeliverClient client = GeliverClient('YOUR_API_TOKEN') prices = client.list_prices( param_type='parcel', length=2, width=5, height=5, weight=24 ) print('Fiyat listesi:', prices) ``` ```csharp title="Geliver (NuGet)" using Geliver; var client = new GeliverClient("YOUR_API_TOKEN"); var prices = await client.Prices.ListAsync(new PriceListRequest { ParamType = "parcel", Length = 2, Width = 5, Height = 5, Weight = 24 }); Console.WriteLine($"Fiyat listesi: {prices}"); ``` ```java title="geliver-java (Maven)" import com.geliver.GeliverClient; GeliverClient client = new GeliverClient("YOUR_API_TOKEN"); var prices = client.prices().list("parcel", 2, 5, 5, 24); System.out.println("Fiyat listesi: " + prices); ``` ```go title="geliver-go (go get)" package main import ( "context" "fmt" g "github.com/GeliverApp/geliver-go/pkg/geliver" ) func main() { client := g.NewClient("YOUR_API_TOKEN") ctx := context.Background() prices, err := client.ListPrices(ctx, g.PriceListParams{ ParamType: "parcel", Length: 2, Width: 5, Height: 5, Weight: 24, }) if err != nil { panic(err) } fmt.Println("Fiyat listesi:", prices) } ``` ## Fiyat sorgulama isteğine gelen yanıt ```json title="200 OK" { "result": true, "additionalMessage": "Success", "priceList": [ { "desi": "30", "offers": [ { "amount": "94.25", "currency": "TL", "amountLocal": "94.25", "amountVat": "19.3", "amountLocalVat": "19.3", "amountTax": "2.22", "amountLocalTax": "221.49", "totalAmount": "115.76", "totalAmountLocal": "115.76", "providerCode": "SENDEO", "providerServiceCode": "SENDEO_STANDART" }, { "amount": "116", "currency": "TL", "amountLocal": "116", "amountVat": "23.75", "amountLocalVat": "23.75", "amountTax": "2.73", "amountLocalTax": "272.6", "totalAmount": "142.48", "totalAmountLocal": "142.48", "providerCode": "SURAT", "providerServiceCode": "SURAT_STANDART" }, { "amount": "197.25", "currency": "TL", "amountLocal": "197.25", "amountVat": "39.45", "amountLocalVat": "39.45", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "236.7", "totalAmountLocal": "236.7", "providerCode": "PTT", "providerServiceCode": "PTT_STANDART" }, { "amount": "249", "currency": "TL", "amountLocal": "249", "amountVat": "50.98", "amountLocalVat": "50.98", "amountTax": "5.86", "amountLocalTax": "585.15", "totalAmount": "305.83", "totalAmountLocal": "305.83", "providerCode": "YURTICI", "providerServiceCode": "YURTICI_STANDART" } ] } ] } ``` #### Yanıt içerisindeki alanların açıklamaları resultboolean İsteğin başarılı olup olmadığını belirtir. true ise başarılıdır. dataobject Oluşturulan gönderinin kaydı. codestring Eğer istek başarısız ise burada hata kodu bulunur. messagestring Eğer istek başarısız ise burada hata mesajı bulunur. additionalMessagestring Sadece test ortamı için geçerli olan detaylı hata mesajı. priceList.offersarray Alınan tüm teklifleri bu alanda fiyatlarıyla görebilirsiniz. priceList.offers.amountstring Tekliflerin her birinin fiyatı (vergiler hariç). priceList.offers.amountTaxstring Tekliflerin her birinin sadece vergilerinin ücretleri toplamı. priceList.offers.amountVatstring Tekliflerin her birinin sadece KDV’sinin ücreti. priceList.offers.totalAmountstring Tekliflerin her birinin vergiler dahil toplam ücreti. priceList.offers.currencystring Tekliflerin her birinin para birimi kısaltması. --- # Gönderi oluşturup ve teklifleri alma URL: https://docs.geliver.io/docs/shipments_and_transaction/create_shipment/create_shipment_two_step Geliver API kullanarak, Geliver anlaşmalı kargo firmalarından etiket satın alarak, kapıda ödemeli gönderi oluşturarak ve kendi anlaşmalarınızı kullanarak gönderim yapabilirsiniz. Bunun için kargo gönderisi oluşturmanız gerekmektedir. Bu gönderilerin oluşturulması için farklı istekler kullanmanız gerekmektedir. ## Gönderi oluşturup teklifleri alma isteği Bilgi Aşağıdaki cURL test gönderisi oluşturmak amacıyla test alanı true olacak şekilde verilmiştir. Canlı ortamda gönderi oluşturmak isterseniz test alanının false'a çekilmesi gerekmektedir. ```bash title="cURL" curl --request POST \ --url https://api.geliver.io/api/v1/shipments \ --header 'Authorization: Bearer {{bearerToken}}' \ --header 'Content-Type: application/json' \ --data '{ "test": true, "senderAddressID": "b6029b1b-cc61-4263-95c3-2bd17614c9d6", "returnAddressID": "b6029b1b-cc61-4263-95c3-2bd17614c9d6", "length": "10", "height": "10", "width": "10", "distanceUnit": "cm", "weight": "1", "massUnit": "kg", "items": [ {"title":"test product", "quantity":1} ], "recipientAddress":{ "name": "Test Company Name", "email": "Test Email", "phone": "+905051234567", "address1": "Celal Bayar Üniversitesi Teknokenti Daire 102", "countryCode": "TR", "cityCode": "45", "districtName": "Yunusemre" }, "productPaymentOnDelivery":false, "order": { "sourceCode": "API", "sourceIdentifier": "https://magazaadresiniz.com", "orderNumber": "ABC12333322", "totalAmount": 150, "totalAmountCurrency": "TL" } }' ``` #### SDK Kod Örnekleri ```javascript title="geliver (npm)" import { GeliverClient } from 'geliver'; const client = new GeliverClient('YOUR_API_TOKEN'); // Gönderi oluştur ve teklifleri al const shipment = await client.shipments.create({ test: true, senderAddressID: 'SENDER_ADDRESS_ID', length: '10', height: '10', width: '10', distanceUnit: 'cm', weight: '1', massUnit: 'kg', items: [{ title: 'test product', quantity: 1 }], recipientAddress: { name: 'Test Company Name', email: 'test@example.com', phone: '+905051234567', address1: 'Celal Bayar Üniversitesi Teknokenti Daire 102', countryCode: 'TR', cityCode: '45', districtName: 'Yunusemre' }, order: { sourceCode: 'API', sourceIdentifier: 'https://magazaadresiniz.com', orderNumber: 'ABC12333322', totalAmount: 150, totalAmountCurrency: 'TL' } }); // Teklifleri bekle const offers = await client.shipments.waitForOffers(shipment.id); console.log('En ucuz teklif:', offers.cheapest.id); ``` ```php title="geliver/geliver-php (Composer)" shipments->create([ 'test' => true, 'senderAddressID' => 'SENDER_ADDRESS_ID', 'length' => '10', 'height' => '10', 'width' => '10', 'distanceUnit' => 'cm', 'weight' => '1', 'massUnit' => 'kg', 'items' => [['title' => 'test product', 'quantity' => 1]], 'recipientAddress' => [ 'name' => 'Test Company Name', 'email' => 'test@example.com', 'phone' => '+905051234567', 'address1' => 'Celal Bayar Üniversitesi Teknokenti Daire 102', 'countryCode' => 'TR', 'cityCode' => '45', 'districtName' => 'Yunusemre' ], 'order' => [ 'sourceCode' => 'API', 'sourceIdentifier' => 'https://magazaadresiniz.com', 'orderNumber' => 'ABC12333322', 'totalAmount' => 150, 'totalAmountCurrency' => 'TL' ] ]); // Teklifleri bekle $offers = $client->shipments->waitOffers($shipment->id); echo 'En ucuz teklif: ' . $offers->cheapest->id; ``` ```python title="geliver (pip)" from geliver import GeliverClient client = GeliverClient('YOUR_API_TOKEN') # Gönderi oluştur ve teklifleri al shipment = client.create_shipment( test=True, sender_address_id='SENDER_ADDRESS_ID', length='10', height='10', width='10', distance_unit='cm', weight='1', mass_unit='kg', items=[{'title': 'test product', 'quantity': 1}], recipient_address={ 'name': 'Test Company Name', 'email': 'test@example.com', 'phone': '+905051234567', 'address1': 'Celal Bayar Üniversitesi Teknokenti Daire 102', 'countryCode': 'TR', 'cityCode': '45', 'districtName': 'Yunusemre' }, order={ 'sourceCode': 'API', 'sourceIdentifier': 'https://magazaadresiniz.com', 'orderNumber': 'ABC12333322', 'totalAmount': 150, 'totalAmountCurrency': 'TL' } ) # Teklifleri bekle offers = client.wait_for_offers(shipment.id) print('En ucuz teklif:', offers.cheapest.id) ``` ```csharp title="Geliver (NuGet)" using Geliver; var client = new GeliverClient("YOUR_API_TOKEN"); // Gönderi oluştur ve teklifleri al var shipment = await client.Shipments.CreateAsync(new CreateShipmentRequest { Test = true, SenderAddressID = "SENDER_ADDRESS_ID", Length = "10", Height = "10", Width = "10", DistanceUnit = "cm", Weight = "1", MassUnit = "kg", Items = new[] { new Item { Title = "test product", Quantity = 1 } }, RecipientAddress = new RecipientAddressRequest { Name = "Test Company Name", Email = "test@example.com", Phone = "+905051234567", Address1 = "Celal Bayar Üniversitesi Teknokenti Daire 102", CountryCode = "TR", CityCode = "45", DistrictName = "Yunusemre" }, Order = new OrderRequest { SourceCode = "API", SourceIdentifier = "https://magazaadresiniz.com", OrderNumber = "ABC12333322", TotalAmount = 150, TotalAmountCurrency = "TL" } }); // Teklifleri bekle var offers = await client.Shipments.WaitForOffersAsync(shipment.Id); Console.WriteLine($"En ucuz teklif: {offers.Cheapest.Id}"); ``` ```java title="geliver-java (Maven)" import com.geliver.GeliverClient; import com.geliver.models.*; import com.geliver.requests.*; GeliverClient client = new GeliverClient("YOUR_API_TOKEN"); // Gönderi oluştur ve teklifleri al CreateShipmentRequest request = new CreateShipmentRequest() .setTest(true) .setSenderAddressID("SENDER_ADDRESS_ID") .setLength("10") .setHeight("10") .setWidth("10") .setDistanceUnit("cm") .setWeight("1") .setMassUnit("kg") .setItems(List.of(new Item().setTitle("test product").setQuantity(1))) .setRecipientAddress(new RecipientAddress() .setName("Test Company Name") .setEmail("test@example.com") .setPhone("+905051234567") .setAddress1("Celal Bayar Üniversitesi Teknokenti Daire 102") .setCountryCode("TR") .setCityCode("45") .setDistrictName("Yunusemre")) .setOrder(new Order() .setSourceCode("API") .setSourceIdentifier("https://magazaadresiniz.com") .setOrderNumber("ABC12333322") .setTotalAmount(150) .setTotalAmountCurrency("TL")); Shipment shipment = client.shipments().create(request); // Teklifleri bekle OfferList offers = client.shipments().waitForOffers(shipment.getId()); System.out.println("En ucuz teklif: " + offers.getCheapest().getId()); ``` ```go title="geliver-go (go get)" package main import ( "context" "fmt" "time" g "github.com/GeliverApp/geliver-go/pkg/geliver" ) func main() { client := g.NewClient("YOUR_API_TOKEN") ctx := context.Background() length, width, height, weight := "10", "10", "10", "1" testMode := true // Gönderi oluştur shipment, err := client.CreateShipmentWithRecipientAddress(ctx, g.CreateShipmentWithRecipientAddress{ CreateShipmentRequestBase: g.CreateShipmentRequestBase{ SenderAddressID: "SENDER_ADDRESS_ID", Length: &length, Width: &width, Height: &height, DistanceUnit: ptrString("cm"), Weight: &weight, MassUnit: ptrString("kg"), Test: &testMode, Order: &g.OrderRequest{ OrderNumber: "ABC12333322", SourceIdentifier: ptrString("https://magazaadresiniz.com"), TotalAmount: ptrString("150"), TotalAmountCurrency: ptrString("TL"), }, }, RecipientAddress: g.Address{ Name: "Test Company Name", Email: "test@example.com", Phone: "+905051234567", Address1: "Celal Bayar Üniversitesi Teknokenti Daire 102", CountryCode: "TR", CityCode: "45", DistrictName: "Yunusemre", }, }) if err != nil { panic(err) } // Teklifleri bekle offers, err := client.WaitForOffers(ctx, shipment.ID, time.Second, 30*time.Second) if err != nil { panic(err) } fmt.Println("En ucuz teklif:", offers["cheapest"]) } ``` #### İstek içerisindeki alanların açıklamaları teststring Geliştirme sırasında test gönderisi oluştururken true değerini verirseniz ücretsiz olan test tekliflerini getirir. Test edebilmeniz için bu test gönderilerinde gönderi bilgilerini her çektiğinizde (app’ten veya api’den) gönderi dağıtım durumu alıcıya ulaşana kadar her seferde güncellenir. Canlıya çıktığınızda false’a çekmeyi unutmayın. senderAddressIDstring Gönderici adres ID’si. Arayüzdeki adresler bölümünden veya /addresses endpointinden adreslerinizi düzenleyebilirsiniz. Gönderilmezse organizasyonunuzun varsayılan gönderici adresi kullanılır; panelde varsayılan bir gönderici adresi tanımlı değilse bu alan fiilen zorunlu hale gelir ve göndermezseniz hata alırsınız. returnAddressIDstring Gönderinin geri dönme adresidir. Arayüzdeki adresler bölümünden veya /addresses endpointinden adreslerinizi düzenleyebilirsiniz. Boş ise senderAddressID kullanılır. recipientAddressIDstring Alıcı adres ID’si. Arayüzdeki adresler bölümünden veya /addresses endpointinden adreslerinizi düzenleyebilirsiniz. Boş ise recipientAddress objesinden iletilen adres kullanılır. parcelTemplateIDstring Kargo boyutları 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. bilgi Paket boyutu alanları (length/height/width/weight/massUnit/distanceUnit) sunucu tarafında zorunlu tutulmaz; eksik gönderirseniz istek hata vermeden başarıyla tamamlanır. Ancak parcelTemplateID veya bu boyutlar (birim alanlarıyla birlikte) gönderilmezse gönderiye hiçbir teklif gelmez — istek başarılı görünse de boş bir teklif listesiyle sonuçlanır. Teklif alabilmek için bu alanları eksiksiz göndermeniz önerilir. lengthstringzorunlu Kargo gönderisi uzunluğu. Varsayılan olarak cm cinsinden. Uzunluk ölçüsünü distanceUnit alanıyla değiştirebilirsiniz. heightstringzorunlu Kargo gönderisi yüksekliği. Varsayılan olarak cm cinsinden. Uzunluk ölçüsünü distanceUnit alanıyla değiştirebilirsiniz. widthstringzorunlu Kargo gönderisi genişliği. Varsayılan olarak cm cinsinden. Uzunluk ölçüsünü distanceUnit alanıyla değiştirebilirsiniz. distanceUnitstringzorunlu Kargo gönderisi uzunluk cinsi. Varsayılan olarak “cm” değerindedir. weightstringzorunlu Kargo gönderisi ağırlığı. Varsayılan olarak kg cinsinden. Uzunluk ölçüsünü massUnit alanıyla değiştirebilirsiniz. massUnitstringzorunlu Kargo gönderisi ağırlık cinsi. Varsayılan olarak “kg” değerindedir. itemsarrayzorunlu Paketin içindeki ürün bilgileri titlestringzorunlu Paketin içindeki ürünlerin ismi quantityintzorunlu Paketin içindeki ürünlerin sayısı namestringzorunlu Gönderici adı / Şirket adı emailstringzorunlu E-posta adresi phonestring Telefon numarası address1stringzorunlu Adres satırı 1 countryCodestringzorunlu Ülke kodu cityCodestringzorunlu Şehir Plaka Kodu districtNamestringzorunlu İlçe adı. Eğer districtID kullanılmadıysa zorunlu. Adresler > İlçeleri listeleme kısmından ilçelere ve ID bilgilerine ulaşabilirsiniz. productPaymentOnDeliveryboolzorunlu Kapıda ödemeli kargo tekliflerini alabilmeyi sağlar. Kapıda ödemeli kargo teklifleri almak istemiyorsanız bu fieldı false bırakabilir veya isteğinizden kaldırabilirsiniz. sourceCodestringzorunlu API üzerinden yapılan istekler için sabit “API” olarak gönderilir. sourceIdentifierstringzorunlu Gönderinin hangi web site veya uygulama tarafından oluşturulduğunu belirten alandır. Bu alanı daha sonra takip bilgisini alırken gönderi kaynağını eşlemek için kullanabilirsiniz. orderNumberstringzorunlu Takip bilgisi alınırken gönderinin oluşturulduğu kaynaktaki ilgili kayıt (sipariş) ile eşlemek için kullanılan string alandır. totalAmountintzorunlu Gönderideki ürünün toplam fiyatını ifade eden integer alandır. Kapıda ödemede alıcıdan alınacak tutar buradan belirtilir. Kapıda ödemeli gönderiler dışında opsiyoneldir. totalAmountCurrencystringzorunlu Gönderideki ürünün fiyatının para birimini ifade eden string alandır. Kapıda ödemeli gönderiler dışında opsiyoneldir. ## Gönderi oluşturup teklifleri alma isteğine gelen yanıt ```json title="200 OK" { "result": true, "additionalMessage": "Success", "data": { "id": "4aaaf0b4-d071-4edc-a941-cea2f6a78453", "createdAt": "2025-03-08T14:59:36.460431984Z", "updatedAt": "2025-03-08T14:59:36.460431984Z", "test": true, "amount": "0", "currency": "TL", "amountLocal": "0", "currencyLocal": "TL", "amountVat": "0", "amountLocalVat": "0", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "0", "totalAmountLocal": "0", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0", "length": "10", "width": "10", "height": "10", "desi": "1", "oldDesi": "0", "distanceUnit": "cm", "weight": "1", "oldWeight": "0", "massUnit": "kg", "useWeightOfItems": false, "useDimensionsOfItems": false, "trackingStatus": { "id": "2cce95d1-94c9-412a-8208-b703b8a29b99", "createdAt": "2025-03-08T14:59:36.463503109Z", "updatedAt": "2025-03-08T14:59:36.463503109Z", "trackingStatusCode": "PRE_TRANSIT", "trackingSubStatusCode": "information_received", "statusDetails": "", "statusDate": "2025-03-08T14:59:36.463215679Z", "locationName": "", "locationLat": null, "locationLng": null, "hash": "fa6c0693196f824aeb4e7160be102306373f257b44d4f0758313ac4302dffe6f" }, "labelFileType": "PROVIDER_PDF", "hidePackageContentOnTag": false, "shipmentDate": null, "invoiceGenerated": false, "refundInvoiceID": null, "productPaymentOnDelivery": false, "orderID": "246d3aa4-4559-4a40-9299-239068663e3d", "order": { "id": "246d3aa4-4559-4a40-9299-239068663e3d", "createdAt": "2025-03-08T14:59:36.457913248Z", "updatedAt": "2025-03-08T14:59:36.457913248Z", "itemIDs": null, "buyerShippingCost": "0", "buyerShipmentMethod": "", "totalAmount": "150", "totalTax": "0", "totalAmountCurrency": "TL", "sourceCode": "API", "sourceIdentifier": "https://magazaadresiniz.com", "orderNumber": "ABC12333322", "orderCode": "", "notes": "", "organizationID": null }, "senderAddressID": "19cf6b59-acd9-475a-961e-31586d69fc80", "senderAddress": { "id": "19cf6b59-acd9-475a-961e-31586d69fc80", "createdAt": "2023-04-19T19:17:36.870357+03:00", "updatedAt": "2023-07-26T16:44:24.824542+03:00", "shortName": "Ana adres", "name": "test", "email": "test@gmail.com", "phone": "+90555555555", "address1": "Cumhuriyet Mh. 5951. Sk. No: 17 Kat: 3 Daire: 8 Yunusemre/Manisa", "address2": "", "cityCode": "14", "cityName": "Bolu", "city": null, "state": "", "zip": "45125", "districtID": 107665, "districtName": "Gerede", "district": null, "streetID": null, "streetName": "", "countryCode": "TR", "countryName": "Türkiye", "source": null, "isDefaultSenderAddress": true, "isDefaultReturnAddress": true, "isRecipientAddress": false, "isInvoiceAddress": false, "isActive": true }, "recipientAddressID": "19e8b663-ce2b-4169-9c99-d68d7604866e", "recipientAddress": { "id": "19e8b663-ce2b-4169-9c99-d68d7604866e", "createdAt": "2025-03-08T14:59:36.453831898Z", "updatedAt": "2025-03-08T14:59:36.453831898Z", "shortName": "", "name": "Test Company Name", "email": "Test Email", "phone": "+905051234567", "address1": "Celal Bayar Üniversitesi Teknokenti Daire 102", "address2": "", "cityCode": "45", "cityName": "Manisa", "city": null, "state": "", "zip": "45000", "districtID": 108740, "districtName": "Yunusemre", "district": null, "streetID": null, "streetName": "", "countryCode": "TR", "countryName": "Türkiye", "source": null, "isDefaultSenderAddress": false, "isDefaultReturnAddress": false, "isRecipientAddress": true, "isInvoiceAddress": false, "isActive": true }, "createReturnLabel": false, "statusCode": "GOT_OFFERS", "offers": { "createdAt": "2025-03-08T14:59:36.471644998Z", "updatedAt": "2025-03-08T14:59:36.471644998Z", "length": "10", "width": "10", "height": "10", "weight": "1", "cheapest": { "id": "16bc98bb-3d1f-4bc1-8acd-14d2422301e6", "createdAt": "2025-03-08T14:59:36.476579071Z", "updatedAt": "2025-03-08T14:59:36.476579071Z", "amount": "0", "currency": "TL", "amountLocal": "0", "currencyLocal": "TL", "amountVat": "0", "amountLocalVat": "0", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "0", "totalAmountLocal": "0", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0", "providerCode": "GELIVER", "providerServiceCode": "GELIVER_STANDART", "averageEstimatedTimeHumanReadible": "01 gün 00 saat", "durationTerms": "", "rating": 0, "isAccepted": false, "isGlobal": true, "isC2C": true, "integrationType": "C2C", "isMainOffer": false, "isProviderAccountOffer": false, "providerAccountOwnerType": "", "providerAccountName": null }, "fastest": { "id": "16bc98bb-3d1f-4bc1-8acd-14d2422301e6", "createdAt": "2025-03-08T14:59:36.476579071Z", "updatedAt": "2025-03-08T14:59:36.476579071Z", "amount": "0", "currency": "TL", "amountLocal": "0", "currencyLocal": "TL", "amountVat": "0", "amountLocalVat": "0", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "0", "totalAmountLocal": "0", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0", "providerCode": "GELIVER", "providerServiceCode": "GELIVER_STANDART", "averageEstimatedTimeHumanReadible": "01 gün 00 saat", "durationTerms": "", "rating": 0, "isAccepted": false, "isGlobal": true, "isC2C": true, "integrationType": "C2C", "isMainOffer": false, "isProviderAccountOffer": false, "providerAccountOwnerType": "", "providerAccountName": null }, "list": [ { "id": "16bc98bb-3d1f-4bc1-8acd-14d2422301e6", "createdAt": "2025-03-08T14:59:36.476579071Z", "updatedAt": "2025-03-08T14:59:36.476579071Z", "amount": "0", "currency": "TL", "amountLocal": "0", "currencyLocal": "TL", "amountVat": "0", "amountLocalVat": "0", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "0", "totalAmountLocal": "0", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0", "providerCode": "GELIVER", "providerServiceCode": "GELIVER_STANDART", "averageEstimatedTimeHumanReadible": "01 gün 00 saat", "durationTerms": "", "rating": 0, "isAccepted": false, "isGlobal": true, "isC2C": true, "integrationType": "C2C", "isMainOffer": false, "isProviderAccountOffer": false, "providerAccountOwnerType": "", "providerAccountName": null }, { "id": "1f26245c-db36-4bce-ac57-6f443847ec4f", "createdAt": "2025-03-08T14:59:36.48203158Z", "updatedAt": "2025-03-08T14:59:36.48203158Z", "amount": "1.25", "currency": "TL", "amountLocal": "1.25", "currencyLocal": "TL", "amountVat": "0.25", "amountLocalVat": "0.25", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "1.5", "totalAmountLocal": "1.5", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0", "providerCode": "PTT", "providerServiceCode": "PTT_STANDART", "providerAccountID": "73344ee2-2ae8-4f2c-84df-219541adcd24", "averageEstimatedTime": 88968000000000, "averageEstimatedTimeHumanReadible": "02 gün 00 saat", "durationTerms": "", "rating": 0, "isAccepted": false, "isGlobal": false, "isC2C": false, "integrationType": "DEFAULT", "isMainOffer": false, "isProviderAccountOffer": true, "providerAccountOwnerType": "CURRENT_ORGANIZATION", "providerAccountName": "FRD" } ], "percentageCompleted": 100, "totalOffersRequested": 2, "totalOffersCompleted": 2, "allowOfferFallback": false }, "acceptedOffer": null, "enableAutomation": false, "items": [ { "id": "16ded0d4-8c11-4854-a7a1-0c84d76d2f85", "createdAt": "2025-03-08T14:59:36.462405077Z", "updatedAt": "2025-03-08T14:59:36.462405077Z", "title": "test product", "variantTitle": "", "quantity": 1, "unitWeight": "0", "totalPrice": "0", "totalPriceLocal": "0", "massUnit": "", "unitPrice": "0", "currency": null, "unitPriceLocal": "0", "currencyLocal": "", "countryOfOrigin": "", "maxShipTime": null, "maxDeliveryTime": null, "sku": "" } ], "organizationShipmentID": 76, "providerBranchName": null, "providerInvoiceNo": null, "providerReceiptNo": null, "providerSerialNo": null, "hasError": false, "lastErrorMessage": null, "lastErrorCode": null, "cancelDate": "0001-01-01T00:00:00Z", "isReturned": false, "isReturn": false, "isTrackingOnly": false, "isRecipientSmsActivated": true, "packageAcceptedAt": null, "tenantId": null } } ``` ### Üst Düzey (Meta) Bilgiler İşlemin genel durumunu belirten temel alanlardır. Burada, işlemin başarılı olup olmadığı, ek mesaj ve ana veri nesnesinin varlığı kontrol edilmektedir. resultbooleanzorunlu İşlemin başarılı olup olmadığını gösterir. codestring Eğer istek başarısız ise hata kodu burada bulunur. messagestring Eğer istek başarısız ise hata mesajı burada bulunur. additionalMessagestring Sadece test ortamı için geçerli olan detaylı hata mesajı. dataobjectzorunlu Oluşturulan gönderinin kaydı. ### Teklif Bilgileri offersobjectzorunlu Gönderiye yapılan teklifler. Anlık olarak oluşturulmaktadır. Tamamlanan teklif yüzdesini percentageCompleted alanından takip edebilirsiniz. offers.percentageCompletednumberzorunlu Tekliflerin tamamlanan yüzdesi. 100 ise tüm teklifler alınmıştır. 100 değilse /shipments/{id} ile tekrar çağrı yapabilirsiniz. offers.totalOffersCompletednumberzorunlu Alınan toplam teklif sayısı. offers.listarrayzorunlu Alınan tüm teklifleri bu alanda fiyatlarıyla görebilirsiniz. Randevulu teslimat özelliği olan kargo firmaları için offer listteki ana offer dışında, offer > subOffer listesinden scheduleDate alanında yer alan randevu tarihi ile de randevu tarihini seçip subOffer ID'yi kullanarak etiket satın alabilirsiniz. offers.list.idstringzorunlu Tekliflerin her birinin id’si. İstediğiniz ödemeyi kabul etmek için ödeme adımında id alanına ihtiyacınız olacak. offers.list.amountstringzorunlu Tekliflerin her birinin fiyatı (vergiler hariç). offers.list.amountTaxstringzorunlu Tekliflerin her birinin sadece vergilerinin ücretleri toplamı. offers.list.amountVatstringzorunlu Tekliflerin her birinin sadece KDV’sinin ücreti. offers.list.totalAmountstringzorunlu Tekliflerin her birinin vergiler dahil toplam ücreti. offers.list.currencystringzorunlu Tekliflerin her birinin para birimi kısaltması. offers.cheapestobjectzorunlu 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. offers.fastestobjectzorunlu 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. offersobjectzorunlu Gönderiye yapılan teklifler. Anlık olarak oluşturulmaktadır. Tamamlanan teklif yüzdesini percentageCompleted alanından takip edebilirsiniz. offers.percentageCompletednumberzorunlu Tekliflerin tamamlanan yüzdesi. 100 ise tüm teklifler alınmıştır. 100 değilse /shipments/{id} ile tekrar çağrı yapabilirsiniz. offers.totalOffersCompletednumberzorunlu Alınan toplam teklif sayısı. offers.listarrayzorunlu Alınan tüm teklifleri bu alanda fiyatlarıyla görebilirsiniz. offers.list.idstringzorunlu Tekliflerin her birinin id’si. İstediğiniz ödemeyi kabul etmek için ödeme adımında id alanına ihtiyacınız olacak. offers.list.amountstringzorunlu Tekliflerin her birinin fiyatı (vergiler hariç). offers.list.amountTaxstringzorunlu Tekliflerin her birinin sadece vergilerinin ücretleri toplamı. offers.list.amountVatstringzorunlu Tekliflerin her birinin sadece KDV’sinin ücreti. offers.list.totalAmountstringzorunlu Tekliflerin her birinin vergiler dahil toplam ücreti. offers.list.currencystringzorunlu Tekliflerin her birinin para birimi kısaltması. offers.cheapestobjectzorunlu 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. offers.fastestobjectzorunlu 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. ### Sipariş (Gönderi) Bilgileri Bu kısım, siparişin temel kimlik bilgileri, oluşturulma ve güncelleme zamanları, durum kodu ve toplam tutar gibi kritik bilgileri içerir. Geliştiriciler için siparişin temel durumunu anlamak açısından önemlidir. idstringzorunlu Gönderinin benzersiz ID'si. createdAtstringzorunlu Gönderinin oluşturulma zamanı. updatedAtstringzorunlu Gönderinin güncellenme zamanı. statusCodestringzorunlu Gönderi durumu. Alabileceği değerler: CREATED, GOT_OFFERS, OFFER_ACCEPTED, TRACKING_CODE_CREATED, SHIPPED, DELIVERED. totalAmountstringzorunlu Gönderinin toplam tutarı. currencystringzorunlu Para birimi. ### Takip Durum Bilgileri Siparişin veya gönderinin takip sürecine ait bilgiler bu bölümde yer almaktadır. Takip durum kodu ve durum tarih bilgisini içerir. trackingStatusobject Gönderinin takip durum bilgileri. trackingStatusCodestring Takip durum kodu. statusDatestring Takip durumunun geçerli tarihi. labelFileTypestring Etiket dosya türü. PDF ise Geliver tarafından oluşturulan PDF, PROVIDER_PDF ise kargo firması tarafından oluşturulan PDF dosyasını ifade eder. hidePackageContentOnTagboolean Etiket üzerinde paket içeriğinin gizlenip gizlenmeyeceğini belirtir. ### Sipariş Detayları orderobject Siparişe ait bilgiler. orderNumberstring Sipariş numarası. totalAmountstring Siparişin toplam tutarı. totalAmountCurrencystring Siparişin para birimi. sourceCodestring Siparişin kaynağı (örn: API). sourceIdentifierstring Siparişin oluşturulduğu web site veya uygulama. ### Gönderici ve Alıcı Adres Bilgileri #### Gönderici Adres Bilgileri: senderAddressobject Gönderici adres bilgileri. idstring Gönderici adresinin ID'si. namestring Gönderici adı veya şirket. address1string Adres satırı 1. countryCodestring Ülke kodu (ISO2). cityCodestring Şehir kodu. districtNamestring İlçe adı. streetNamestring Cadde adı. #### Alıcı Adres Bilgileri: recipientAddressobject Alıcı adres bilgileri. idstring Alıcı adresinin ID'si. namestring Alıcı adı veya şirket. address1string Adres satırı 1. countryCodestring Ülke kodu (ISO2). cityCodestring Şehir kodu. districtNamestring İlçe adı. streetNamestring Cadde adı. ### Ürün (Item) Bilgileri – Özet Siparişte yer alan ürünlerin temel bilgileri itemsarray Siparişe ait ürün öğelerinin bulunduğu dizi. titlestring Ürün başlığı. quantitynumber Ürün adedi. totalPricestring Ürünün toplam fiyatı. unitWeightnumber Ürünün birim ağırlığı. skustring Ürün stok kodu (SKU). ### Hata Kodları | Hata Kodu | 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ı. Adresin var olduğunu addresses endpoint'i ile kontrol edin. | | E1056 | Alıcı adresi oluşturulamadı. | | E1057 | Sipariş oluşturulamadı. | | E1058 | Gönderi kaydedilemedi. | | Hata Kodu | Açıklama | | --- | --- | | E1129 | Alıcı adresi boş. | | E1130 | Alıcı şehri boş. | | E1131 | Alıcı ülkesi boş. | | E1132 | Alıcı ilçesi boş. | | E1133 | Alıcı ismi boş. | | E1134 | Alıcı telefon numarası boş. | | E1136 | Alıcı e-posta adresi boş. | Tüm hata kodları için Hata Kodları sayfasına bakabilirsiniz. --- # Tek aşamada etiketi satın alma URL: https://docs.geliver.io/docs/shipments_and_transaction/create_shipment Geliver API kullanarak, Geliver anlaşmalı kargo firmalarından etiket satın alarak, kapıda ödemeli gönderi oluşturarak ve kendi anlaşmalarınızı kullanarak gönderim yapabilirsiniz. Bunun için kargo gönderisi oluşturmanız gerekmektedir. Bu gönderilerin oluşturulması için farklı istekler kullanmanız gerekmektedir. ## Tek aşamada etiketi satın alma isteği Tek aşamada gönderi oluşturmak için providerServiceCode belirlemeniz gerekmektedir. providerServiceCode'lara Gönderiler menüsü altından ulaşabilirsiniz. Bilgi Aşağıdaki cURL test gönderisi oluşturmak amacıyla test alanı true olacak şekilde verilmiştir. Canlı ortamda gönderi oluşturmak isterseniz test alanının false'a çekilmesi gerekmektedir. ```bash title="cURL" curl --location --request POST 'https://api.geliver.io/api/v1/transactions' \ --header 'Authorization: Bearer {{bearerToken}}' \ --header 'Content-Type: application/json' \ --data '{ "providerServiceCode": "GELIVER_STANDART", "shipment": { "test": true, "senderAddressID": "SENDER_ADDRESS_ID", "returnAddressID": "RETURN_ADDRESS_ID", "recipientAddress": { "name": "Test Company Name", "phone": "+905051234567", "address1": "Celal Bayar Üniversitesi Teknokenti Daire 102", "countryCode": "TR", "cityCode": "45", "districtName": "Yunusemre" }, "length": "10", "height": "10", "width": "10", "distanceUnit": "cm", "weight": "1", "massUnit": "kg", "items":[{"title":"test product", "quantity":1}, {"title":"test product", "quantity":1}, {"title":"test product", "quantity":1}], "productPaymentOnDelivery": false, "hidePackageContentOnTag": false, "order": { "sourceCode": "API", "sourceIdentifier": "https://magazaadresiniz.com", "orderNumber": "ABC12333322", "totalAmount": 150, "totalAmountCurrency": "TL" } } }' ``` providerServiceCodestringzorunlu Soldaki Gönderiler menüsünden sağlayıcı servis kodlarına erişebilir ve satın alım yapmak istediğiniz kargoyu seçebilirsiniz. teststring Geliştirmelerinizde kullanabileceğiniz test kargomuzu aktifleştirir. Test gönderisi oluşturur. Geliştirmelerinizi tamamladıktan sonra false'a çekmeyi unutmayın. senderAddressIDstring Gönderici adresinizin ID'si. Adresler menüsünden gönderici adresi oluşturabilir, varsa listeleyerek ID'sini alabilirsiniz. Gönderilmezse organizasyonunuzun varsayılan gönderici adresi kullanılır; panelde varsayılan bir adres tanımlı değilse bu alan fiilen zorunlu hale gelir. recipientAddressIDstring Alıcı adresinizin ID'si. Adresler menüsünden alıcı adresi oluşturabilir, varsa listeleyerek ID'sini alabilirsiniz. İstek içerisinde adresi aşağıdaki recipientAddress alanından göndermek istiyorsanız bu alanı göndermenize gerek yoktur. lengthstringzorunlu Paketin uzunluk bilgisi heightstringzorunlu Paketin yükseklik bilgisi widthstringzorunlu Paketin genişlik bilgisi distanceUnitstringzorunlu Uzunluk birimi weightstringzorunlu Paketin ağırlığı massUnitstringzorunlu Kütle birimi itemsarrayzorunlu Paketin içindeki ürün bilgileri titlestringzorunlu Paketin içindeki ürünlerin ismi quantityintzorunlu Paketin içindeki ürünlerin sayısı namestringzorunlu Gönderici adı / Şirket adı emailstringzorunlu E-posta adresi phonestringzorunlu Telefon numarası address1stringzorunlu Adres satırı 1 countryCodestringzorunlu Ülke kodu cityCodestringzorunlu Şehir Plaka Kodu districtNamestringzorunlu İlçe adı productPaymentOnDeliveryboolzorunlu Kapıda ödemeli gönderi oluşturmak için true olarak gönderebilirsiniz. sourceCodestringzorunlu Kaynak Kodu, API olarak gönderebilirsiniz. sourceIdentifierstringzorunlu Mağazanızın web site adresi. orderNumberstringzorunlu Mağazanızdaki sipariş kodu totalAmountintzorunlu Siparişinizin tutarı, kapıda ödemeli siparişleriniz için tutarı düzgün yolladığınızdan emin olun. totalAmountCurrencystringzorunlu Sipariş tutarınızın para birimi ## Tek aşamada etiketi satın alma isteğine gelen yanıt ```json title="200 OK" { "result": true, "message": "Success", "data": { "id": "13dce14b-c85d-4407-b248-d6107a90a44b", "createdAt": "2025-03-08T03:12:55.750138+03:00", "updatedAt": "2025-03-08T00:12:55.820875176Z", "amount": "0", "currency": "TL", "amountLocal": "0", "currencyLocal": "TL", "amountVat": "0", "amountLocalVat": "0", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "0", "totalAmountLocal": "0", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0", "offerID": "110c1382-8080-47c2-9d8b-c361aec750ca", "shipment": { "id": "1cd609f5-b4a2-45a4-8354-203aa5ee7900", "createdAt": "2025-03-08T03:12:55.708235+03:00", "updatedAt": "2025-03-08T03:12:55.819749+03:00", "test": true, "amount": "0", "currency": "TL", "amountLocal": "0", "amountVat": "0", "amountLocalVat": "0", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "0", "totalAmountLocal": "0", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0", "length": "10", "width": "10", "height": "10", "desi": "1", "oldDesi": "0", "distanceUnit": "cm", "weight": "1", "oldWeight": "0", "massUnit": "kg", "useWeightOfItems": false, "useDimensionsOfItems": false, "trackingStatus": null, "barcode": "90522705", "labelFileType": "PROVIDER_PDF", "labelURL": "https://api.geliver.io/labels/1cd609f5-b4a2-45a4-8354-203aa5ee7900.pdf", "responsiveLabelURL": "https://api.geliver.io/api/v1/responsivelabels/1cd609f5-b4a2-45a4-8354-203aa5ee7900/5f41", "hidePackageContentOnTag": false, "shipmentDate": null, "invoiceGenerated": false, "refundInvoiceID": null, "productPaymentOnDelivery": false, "orderID": "18951c1f-d700-420c-a779-8f82594836df", "order": null, "senderAddressID": "19cf6b59-acd9-475a-961e-31586d69fc80", "senderAddress": null, "recipientAddressID": "1aef1a091-023c-41fc-9861-5a7b4a336825", "recipientAddress": null, "createReturnLabel": false, "statusCode": "TRACKING_CODE_CREATED", "offers": null, "acceptedOfferID": "10c1382-8080-47c2-9d8b-c361aec750ca", "acceptedOffer": null, "providerCode": "GELIVER", "providerServiceCode": "GELIVER_STANDART", "enableAutomation": false, "organizationShipmentID": 65, "providerBranchName": null, "providerInvoiceNo": null, "providerReceiptNo": null, "providerSerialNo": null, "hasError": false, "lastErrorMessage": null, "lastErrorCode": null, "cancelDate": "0001-01-01T00:00:00Z", "isReturned": false, "isReturn": false, "isTrackingOnly": false, "isRecipientSmsActivated": true, "packageAcceptedAt": null, "tenantId": null }, "description": "Yeni gönderi ücretlendirilmesi", "isRefund": false, "isCustomAccountCharge": false, "isPayed": true, "payedVia": "BALANCE", "transactionType": "CREATE_SHIPMENT", "invoiceID": "3a3f7bce-dd2e-4b3f-90ca-d52dae189c86", "cancelDescription": "", "isCanceled": false, "oldBalance": "0", "newBalance": "0", "invoiceOldDebt": "0", "invoiceNewDebt": "0" } } ``` #### Diğer alanların detaylı açıklamaları Gönderi oluşturma ve istek kısımlarında verilmiştir. Aşağıdaki bilgiler bu yanıta özel olarak eklenmiştir. shipment.idstring Gönderinin benzersiz ID'si. shipment.createdAtstring Gönderi oluşturulma zamanı. shipment.updatedAtstring Gönderi güncelleme zamanı. shipment.labelFileTypestring Etiket dosya türü. PDF ise Geliver tarafından oluşturulan PDF, PROVIDER_PDF ise kargo firması tarafından oluşturulan PDF dosyasını ifade eder. shipment.barcodestring Etiketinizin sipariş kodu / barkod numarası shipment.labelURLstring Etiket dosyasının URL'si. shipment.statusCodestring Gönderinin durum kodu. shipment.isTrackingOnlyboolean Sadece takip edilen bir gönderi olup olmadığı. --- # Tek aşamada kapıda ödeme gönderisi etiketi satın alma URL: https://docs.geliver.io/docs/shipments_and_transaction/create_shipment/create_shipment_payment_on_delivery Geliver API kullanarak, Geliver anlaşmalı kargo firmalarından etiket satın alarak, kapıda ödemeli gönderi oluşturarak ve kendi anlaşmalarınızı kullanarak gönderim yapabilirsiniz. Bunun için kargo gönderisi oluşturmanız gerekmektedir. Bu gönderilerin oluşturulması için farklı istekler kullanmanız gerekmektedir. ## Tek aşamada kapıda ödemeli gönderi oluşturma isteği ```bash title="cURL" curl --location --request POST 'https://api.geliver.io/api/v1/transactions' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {{bearerToken}}' \ --data '{ "providerServiceCode": "PTT_KAPIDA_ODEME", "shipment": { "test": false, "senderAddressID": "c385546e-f7dd-4912-b925-493c7c66fc22", "returnAddressID": "c385546e-f7dd-4912-b925-493c7c66fc22", "length": "10", "height": "10", "width": "10", "distanceUnit": "cm", "weight": "1", "massUnit": "kg", "items":[{"title":"test product", "quantity":1}], "recipientAddress":{ "name": "Test Company Name", "email": "Test Email", "phone": "+905051234567", "address1": "Celal Bayar Üniversitesi Teknokenti Daire 102", "countryCode": "TR", "cityCode": "45", "districtName": "Yunusemre" }, "productPaymentOnDelivery":true, "order": { "sourceCode": "API", "sourceIdentifier": "https://magazaadresiniz.com", "orderNumber": "ABC12333322", "totalAmount": 150, "totalAmountCurrency": "TL" } } }' ``` providerServiceCodestringzorunlu Kargo hizmeti türünü belirten servis kodu. Kapıda ödeme için 'PTT_KAPIDA_ODEME' kullanılabilir. testbool Geliştirme ve test amaçlı gönderiyi aktifleştirmek için kullanılır. Gerçek gönderilerde false olmalıdır. senderAddressIDstring Gönderici adresinin ID'si. Adresler menüsünden adres oluşturabilir ve ID'sini alabilirsiniz. Gönderilmezse organizasyonunuzun varsayılan gönderici adresi kullanılır; panelde varsayılan bir adres tanımlı değilse bu alan fiilen zorunlu hale gelir. returnAddressIDstringzorunlu İade adresinin ID'si. Adresler menüsünden iade adresi oluşturabilir ve ID'sini alabilirsiniz. lengthstringzorunlu Paketin uzunluk bilgisi. heightstringzorunlu Paketin yükseklik bilgisi. widthstringzorunlu Paketin genişlik bilgisi. distanceUnitstringzorunlu Uzunluk birimi. Örneğin, cm veya inch. weightstringzorunlu Paketin ağırlığı. massUnitstringzorunlu Ağırlık birimi. Örneğin, kg veya g. itemsarrayzorunlu Paketin içindeki ürün bilgileri. items.titlestringzorunlu Ürünün adı. items.quantityintzorunlu Ürünün sayısı. recipientAddressobjectzorunlu Alıcı adresi bilgileri. recipientAddress.namestringzorunlu Alıcının adı. recipientAddress.emailstringzorunlu Alıcının e-posta adresi. recipientAddress.phonestringzorunlu Alıcının telefon numarası. recipientAddress.address1stringzorunlu Alıcının adres satırı 1. recipientAddress.countryCodestringzorunlu Alıcının ülke kodu. recipientAddress.cityCodestringzorunlu Alıcının şehir plaka kodu. recipientAddress.districtNamestringzorunlu Alıcının ilçe adı. productPaymentOnDeliveryboolzorunlu Kapıda ödemeli gönderi oluşturmak için true olmalıdır. orderobjectzorunlu Sipariş bilgileri. order.sourceCodestringzorunlu Siparişin kaynağı. API olarak gönderebilirsiniz. order.sourceIdentifierstringzorunlu Mağazanızın web site adresi. order.orderNumberstringzorunlu Mağazanızdaki sipariş kodu. order.totalAmountintzorunlu Siparişin toplam tutarı. order.totalAmountCurrencystringzorunlu Siparişin para birimi. Yanıt diğer gönderi oluşturma isteğiyle aynı olduğundan eklenmemiştir. --- # Tek aşamada kendi anlaşmanız ile etiket satın alma URL: https://docs.geliver.io/docs/shipments_and_transaction/create_shipment/create_shipment_provider Geliver API kullanarak, Geliver anlaşmalı kargo firmalarından etiket satın alarak, kapıda ödemeli gönderi oluşturarak ve kendi anlaşmalarınızı kullanarak gönderim yapabilirsiniz. Bunun için kargo gönderisi oluşturmanız gerekmektedir. Bu gönderilerin oluşturulması için farklı istekler kullanmanız gerekmektedir. ## Tek aşamada kendi anlaşmanız ile gönderi oluşturma isteği ```bash title="cURL" curl --location --request POST 'https://api.geliver.io/api/v1/transactions' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {{bearerToken}}' \ --data '{ "providerAccountID": "f80e40d3-be00-4d7b-b043-e66fb8bcf0c7", "providerServiceCode": "SURAT_STANDART", "shipment": { "test": false, "senderAddressID": "e80018df-882e-4b90-ad67-0d45fa6df452", "returnAddressID": "e80018df-882e-4b90-ad67-0d45fa6df452", "recipientAddress": { "name": "Test Company Name", "phone": "+905051234567", "address1": "Celal Bayar Üniversitesi Teknokenti Daire 102", "countryCode": "TR", "cityCode": "45", "districtName": "Yunusemre" }, "length": "10", "height": "10", "width": "10", "distanceUnit": "cm", "weight": "1", "massUnit": "kg", "items":[{"title":"test product", "quantity":1}], "productPaymentOnDelivery": false, "hidePackageContentOnTag": false, "order": { "sourceCode": "API", "sourceIdentifier": "https://magazaadresiniz.com", "orderNumber": "ABC12333322", "totalAmount": 150, "totalAmountCurrency": "TL" } } }' ``` providerAccountIDstringzorunlu Kendi anlaşmanızı kullanabilmek için sağlayıcı hesabınızın ID'si. Yalnızca shipment.test false iken işleme alınır; test modunda gönderseniz bile yok sayılır. providerServiceCodestringzorunlu Kargo sağlayıcınızın servis kodu. Bu, kargo hizmeti türünü belirtir. testbool Geliştirme ve test amaçlı gönderiyi aktifleştirmek için kullanılır. Gerçek gönderilerde false olmalıdır. senderAddressIDstring Gönderici adresinizin ID'si. Adresler menüsünden gönderici adresi oluşturabilir ve ID'sini alabilirsiniz. Gönderilmezse organizasyonunuzun varsayılan gönderici adresi kullanılır; panelde varsayılan bir adres tanımlı değilse bu alan fiilen zorunlu hale gelir. returnAddressIDstringzorunlu Gönderinin iade adresinin ID'si. Adresler menüsünden iade adresi oluşturabilir ve ID'sini alabilirsiniz. recipientAddressobjectzorunlu Alıcı adresi bilgileri. recipientAddress.namestringzorunlu Alıcının adı. recipientAddress.phonestringzorunlu Alıcının telefon numarası. recipientAddress.address1stringzorunlu Alıcının adres satırı 1. recipientAddress.countryCodestringzorunlu Alıcının ülke kodu. recipientAddress.cityCodestringzorunlu Alıcının şehir plaka kodu. recipientAddress.districtNamestringzorunlu Alıcının ilçe adı. lengthstringzorunlu Paketin uzunluk bilgisi. heightstringzorunlu Paketin yükseklik bilgisi. widthstringzorunlu Paketin genişlik bilgisi. distanceUnitstringzorunlu Uzunluk birimi. Örneğin, cm veya inch. weightstringzorunlu Paketin ağırlığı. massUnitstringzorunlu Ağırlık birimi. Örneğin, kg veya g. itemsarrayzorunlu Paketin içindeki ürün bilgileri. items.titlestringzorunlu Ürünün adı. items.quantityintzorunlu Ürünün sayısı. productPaymentOnDeliveryboolzorunlu Kapıda ödemeli gönderi oluşturmak için true olarak gönderebilirsiniz. hidePackageContentOnTagbool Paket içeriğini etiket üzerinde gizlemek için true gönderebilirsiniz. orderobjectzorunlu Sipariş bilgileri. order.sourceCodestringzorunlu Siparişin kaynağı. API olarak gönderebilirsiniz. order.sourceIdentifierstringzorunlu Mağazanızın web site adresi. order.orderNumberstringzorunlu Mağazanızdaki sipariş kodu. order.merchantCodestringzorunlu Mağazanızın kodu. order.totalAmountintzorunlu Siparişin toplam tutarı. order.totalAmountCurrencystringzorunlu Siparişin para birimi. Yanıt diğer gönderi oluşturma isteğiyle aynı olduğundan eklenmemiştir. --- # Gönderileri listeleme URL: https://docs.geliver.io/docs/shipments_and_transaction/get_all_shipments Bu endpoint, organizasyonunuza ait gönderileri listelemek için kullanılır. Çeşitli filtreleme, sayfalama ve sıralama seçenekleri sunar. ## Endpoint ```http GET https://api.geliver.io/api/v1/shipments ``` ## Headers ```text Authorization: Bearer {access_token} ``` {access_token} yerine API anahtarınızı kullanın. ## Query Parameters | Parametre | Tip | Zorunlu | Açıklama | | --- | --- | --- | --- | | limit | integer | Hayır | Sayfa başına gösterilecek kayıt sayısı. Belirtilmezse varsayılan değer kullanılır. | | page | integer | Hayır | Sayfa numarası. Sayfalama için kullanılır. | | sortBy | string | Hayır | Sıralama kriteri. Kabul edilen değerler: organization_shipment_id, desi, desi desc, amount, amount desc, updated_at desc. Geçersiz veya boş bir değer gönderilirse varsayılan sıralama (organization_shipment_id desc) kullanılır. | | filter | string | Hayır | Genel arama filtresi. Gönderi numarası, alıcı bilgileri gibi alanlarda arama yapar. | | startDate | string | Hayır | Başlangıç tarihi (ISO 8601 formatında). Bu tarih ve sonrası oluşturulan gönderiler listelenir. | | endDate | string | Hayır | Bitiş tarihi (ISO 8601 formatında). Bu tarih ve öncesi oluşturulan gönderiler listelenir. | | statusFilter | string | Hayır | Gönderi durumuna göre filtreleme. Kullanılabilir değerler: CREATED, GOT_OFFERS, OFFER_ACCEPTED, TRACKING_CODE_CREATED, LABEL_PRINTED, SHIPPED, DELIVERED, CANCELED, RETURNED, RETURN_SHIPPED, FAILED | | invoiceID | string | Hayır | Fatura ID'sine göre filtreleme. | | merchantCode | string | Hayır | Mağaza/merchant koduna göre filtreleme. | | orderNumber | string | Hayır | Sipariş numarasına göre filtreleme. | | providerServiceCode | string | Hayır | Kargo hizmeti koduna göre filtreleme (örn: MNG_STANDART, YURTICI_STANDART). null olabilir. | | storeIdentifier | string | Hayır | Mağaza tanımlayıcısına göre filtreleme. null olabilir. | | isReturned | boolean | Hayır | İade gönderilerini filtrelemek için. true, false veya null değer alabilir. | | tags | string | Hayır | Gönderilere atanmış etiketlere göre filtreleme. | ## Örnek İstek ```bash title="cURL" curl --location 'https://api.geliver.io/api/v1/shipments?limit=20&page=1&statusFilter=DELIVERED&startDate=2025-01-01&endDate=2025-10-15' \ --header 'Authorization: Bearer {access_token}' ``` ### Tüm Parametrelerle Örnek ```bash title="cURL" curl --location 'https://api.geliver.io/api/v1/shipments?limit=50&page=1&sortBy=createdAt&filter=test&startDate=2025-01-01&endDate=2025-10-15&statusFilter=SHIPPED&invoiceID=INV-123&merchantCode=STORE001&orderNumber=ORD-456&providerServiceCode=MNG_STANDART&storeIdentifier=STORE-ID-123&isReturned=false' \ --header 'Authorization: Bearer {access_token}' ``` ## Yanıt Başarılı bir istek aşağıdaki yapıda bir yanıt döner: ```json title="200 OK" { "result": true, "additionalMessage": "Success", "limit": 5, "page": 1, "sort": "organization_shipment_id desc", "totalRows": 420, "totalPages": 84, "data": [ { "id": "a24429c5-690c-4bd0-8bf7-22de8fd6288b", "createdAt": "2025-09-23T19:11:28.332945+03:00", "updatedAt": "2025-10-14T19:59:25.060507+03:00", "amount": "45.50", "currency": "TL", "amountLocal": "45.50", "amountVat": "8.19", "amountLocalVat": "8.19", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "53.69", "totalAmountLocal": "53.69", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0", "length": "30", "width": "20", "height": "15", "desi": "2.25", "oldDesi": "0", "distanceUnit": "cm", "weight": "2.5", "oldWeight": "0", "massUnit": "kg", "useWeightOfItems": false, "useDimensionsOfItems": false, "trackingStatus": { "id": "906e1f44-28fc-4180-b087-93910af64b19", "createdAt": "2025-10-14T19:59:25.057091+03:00", "updatedAt": "2025-10-14T19:59:25.057091+03:00", "trackingStatusCode": "DELIVERED", "trackingSubStatusCode": "delivered", "statusDetails": "Teslim Edildi", "statusDate": "2025-10-14T14:30:00.000000+03:00", "locationName": "Kadıköy Şube", "locationLat": 40.9929, "locationLng": 29.0265, "hash": "abc123def456" }, "labelFileType": "PDF", "hidePackageContentOnTag": false, "shipmentDate": "2025-09-24T10:00:00+03:00", "invoiceGenerated": true, "refundInvoiceID": null, "productPaymentOnDelivery": false, "orderID": "40067592-7f54-4b19-b7f0-be88a8ab325f", "order": { "id": "40067592-7f54-4b19-b7f0-be88a8ab325f", "createdAt": "2025-09-23T19:11:28.324817+03:00", "updatedAt": "2025-09-23T19:11:28.324817+03:00", "itemIDs": null, "buyerShippingCost": "45.50", "buyerShipmentMethod": "MNG_STANDART", "totalAmount": "549.90", "totalTax": "98.98", "sourceCode": "SHOPIFY", "orderNumber": "1234567890", "orderCode": "#1001", "notes": "Hızlı teslimat isteniyor", "organizationID": "9561ced7-d5ba-4129-a09f-f1644be55236" }, "senderAddressID": "1f0fb99e-53b0-4e79-a830-4b76f2438357", "senderAddress": { "id": "1f0fb99e-53b0-4e79-a830-4b76f2438357", "createdAt": "2024-10-23T16:02:12.110231+03:00", "updatedAt": "2025-04-26T22:42:45.865124+03:00", "shortName": "Örnek Mağaza Deposu", "name": "Örnek E-Ticaret Ltd. Şti.", "email": "info@ornekmagaza.com", "phone": "+905301234567", "address1": "Atatürk Caddesi No:123 Daire:4", "address2": "Merkez Mahallesi", "cityCode": "34", "cityName": "İstanbul", "city": null, "state": "", "zip": "34000", "districtID": 108947, "districtName": "Kadıköy", "district": null, "streetID": null, "streetName": "Atatürk Caddesi", "countryCode": "TR", "countryName": "Türkiye", "source": null, "isDefaultSenderAddress": true, "isDefaultReturnAddress": true, "isRecipientAddress": false, "isInvoiceAddress": false, "isActive": true }, "recipientAddressID": "8081a604-7447-4844-b8d3-e3d93b15a525", "recipientAddress": { "id": "8081a604-7447-4844-b8d3-e3d93b15a525", "createdAt": "2025-08-13T16:46:52.159147+03:00", "updatedAt": "2025-08-13T16:46:52.159147+03:00", "shortName": "Ahmet Yılmaz", "name": "Ahmet Yılmaz", "email": "ahmet.yilmaz@example.com", "phone": "+905321234567", "address1": "Cumhuriyet Mahallesi Barış Sokak No:45 Daire:8", "address2": "", "cityCode": "06", "cityName": "Ankara", "city": null, "state": "", "zip": "06100", "districtID": 108740, "districtName": "Çankaya", "district": null, "streetID": null, "streetName": "Barış Sokak", "countryCode": "TR", "countryName": "Türkiye", "source": null, "isDefaultSenderAddress": false, "isDefaultReturnAddress": false, "isRecipientAddress": true, "isInvoiceAddress": false, "isActive": true }, "createReturnLabel": false, "statusCode": "DELIVERED", "offers": null, "acceptedOffer": null, "enableAutomation": true, "items": [ { "id": "a3653d8a-45ea-45eb-8e54-3710a4b670d8", "createdAt": "2025-09-23T19:12:19.374543+03:00", "updatedAt": "2025-09-23T19:12:19.374543+03:00", "title": "Kablosuz Bluetooth Kulaklık", "variantTitle": "Siyah - Standart", "quantity": 2, "unitWeight": "0.25", "totalPrice": "549.90", "totalPriceLocal": "549.90", "massUnit": "kg", "unitPrice": "274.95", "currency": "TL", "unitPriceLocal": "274.95", "currencyLocal": "TL", "countryOfOrigin": "TR", "maxShipTime": null, "maxDeliveryTime": null, "sku": "BT-HEADPHONE-BLK-001" } ], "organizationShipmentID": 436, "providerBranchName": "İstanbul Anadolu Merkez Şube", "providerInvoiceNo": "MNG2025001234", "providerReceiptNo": "RCP-987654", "providerSerialNo": "SER-456789", "hasError": false, "lastErrorMessage": null, "lastErrorCode": null, "cancelDate": null, "isReturned": false, "isReturn": false, "isTrackingOnly": false, "isRecipientSmsActivated": true, "packageAcceptedAt": "2025-09-24T11:30:00+03:00", "tenantId": null } ] } ``` ## Yanıt Alanları ### Genel Bilgiler - result: İsteğin başarılı olup olmadığı (boolean) - additionalMessage: Ek mesaj bilgisi - limit: Sayfa başına gösterilen kayıt sayısı - page: Mevcut sayfa numarası - sort: Uygulanan sıralama kriteri - totalRows: Toplam kayıt sayısı - totalPages: Toplam sayfa sayısı - data: Gönderilerin bulunduğu dizi ### Gönderi Temel Bilgileri - id: Gönderinin benzersiz ID'si (UUID) - organizationShipmentID: Organizasyon bazında gönderi numarası - statusCode: Gönderinin mevcut durumu - createdAt: Oluşturulma tarihi - updatedAt: Son güncellenme tarihi ### Fiyat ve Miktar Bilgileri - amount: Tutar - currency: Para birimi - amountLocal: Yerel tutar - amountVat: KDV tutarı - amountTax: Vergi tutarı - totalAmount: Toplam tutar - discountRate: İndirim oranı - bonusBalance: Bonus bakiyesi ### Paket Bilgileri - length, width, height: Paket boyutları - weight: Ağırlık - massUnit: Ağırlık birimi (kg, g) - distanceUnit: Boyut birimi (cm, m) - desi: Desi değeri - useWeightOfItems: Ürünlerin ağırlığı kullanılsın mı? - useDimensionsOfItems: Ürünlerin boyutları kullanılsın mı? ### Adres Bilgileri - senderAddress: Gönderen adres bilgileri - id: Adres ID'si - shortName: Kısa ad - name: İsim - email: E-posta - phone: Telefon - address1, address2: Adres satırları - cityCode, cityName: Şehir kodu ve adı - districtID, districtName: İlçe ID ve adı - zip: Posta kodu - countryCode, countryName: Ülke kodu ve adı - isDefaultSenderAddress: Varsayılan gönderen adresi mi? - isDefaultReturnAddress: Varsayılan iade adresi mi? - recipientAddress: Alıcı adres bilgileri (aynı yapıda) ### Sipariş Bilgileri - orderID: Sipariş ID'si - order: Sipariş detayları - sourceCode: Kaynak kodu (GLV, SHOPIFY, vb.) - orderNumber: Sipariş numarası - orderCode: Sipariş kodu - totalAmount: Toplam tutar - notes: Notlar ### Takip Durumu - trackingStatus: Güncel takip durumu - trackingStatusCode: Genel durum kodu (PRE_TRANSIT, TRANSIT, DELIVERED, CANCELED, vb.) - trackingSubStatusCode: Detaylı durum kodu (package_accepted, delivered, package_canceled, vb.) - statusDetails: Durum detayları - statusDate: Durum tarihi - locationName: Konum adı - locationLat, locationLng: Konum koordinatları ### Ürün Bilgileri - items: Gönderideki ürünler listesi - id: Ürün ID'si - title: Ürün başlığı - variantTitle: Varyant başlığı - quantity: Miktar - unitWeight: Birim ağırlık - unitPrice: Birim fiyat - totalPrice: Toplam fiyat - sku: Stok kodu ### Kargo Bilgileri - providerBranchName: Kargo şube adı - providerInvoiceNo: Kargo fatura numarası - providerReceiptNo: Kargo makbuz numarası - providerSerialNo: Kargo seri numarası ### Diğer Bilgiler - labelFileType: Etiket dosya tipi (PDF, vb.) - hidePackageContentOnTag: Etiket üzerinde paket içeriği gizlensin mi? - shipmentDate: Kargoya verilme tarihi - invoiceGenerated: Fatura oluşturuldu mu? - productPaymentOnDelivery: Kapıda ödeme var mı? - createReturnLabel: İade etiketi oluşturulsun mu? - enableAutomation: Otomasyon aktif mi? - hasError: Hata var mı? - lastErrorMessage: Son hata mesajı - lastErrorCode: Son hata kodu - cancelDate: İptal tarihi (iptal edildiyse) - isReturned: İade edildi mi? - isReturn: İade gönderisi mi? - isTrackingOnly: Sadece takip için mi? - isRecipientSmsActivated: Alıcı SMS'i aktif mi? - packageAcceptedAt: Paketin kargo tarafından teslim alındığı tarih - tenantId: Kiracı ID'si ## Durum Kodları | Kod | Açıklama | | --- | --- | | CREATED | Gönderi oluşturuldu | | GOT_OFFERS | Teklifler alındı | | OFFER_ACCEPTED | Teklif kabul edildi | | TRACKING_CODE_CREATED | Takip kodu oluşturuldu | | LABEL_PRINTED | Etiket yazdırıldı | | SHIPPED | Kargoya verildi | | DELIVERED | Teslim edildi | | CANCELED | İptal edildi | | RETURNED | İade edildi | | RETURN_SHIPPED | İade kargoya verildi | | FAILED | Başarısız | ## Hata Yanıtları ```json title="Hata Yanıtı" { "result": false, "errorCode": "ERROR_CODE", "message": "Hata açıklaması" } ``` ## Notlar - Yetkilendirme: Normal kullanıcılar sadece kendi organizasyonlarına ait gönderileri görebilir. Admin rolü tüm gönderilere erişebilir. - Sınırlı Erişim: limitedAccessUser rolüne sahip kullanıcılar sadece kendilerinin oluşturduğu gönderileri görebilir. - Sayfalama: Büyük veri setleri için limit ve page parametrelerini kullanarak sayfalama yapabilirsiniz. - Filtreleme: Birden fazla filtre parametresini aynı anda kullanabilirsiniz. - Tarih Formatı: Tarih parametreleri ISO 8601 formatında olmalıdır (örn: 2025-10-15T10:30:00Z) --- # Belirli bir gönderinin detaylarını listeleme URL: https://docs.geliver.io/docs/shipments_and_transaction/get_shipment Tek bir gönderinin güncel durumunu ve takip bilgilerini görüntülemek için, gönderinin ID'si ile aşağıdaki isteği kullanabilirsiniz. Yetkilendirme Normal kullanıcılar sadece kendi organizasyonlarına ait gönderileri görebilir. limitedAccessUser rolüne sahip kullanıcılar ise yalnızca kendilerinin oluşturduğu gönderileri görüntüleyebilir. ## Belirli bir gönderinin detaylarını listeleme isteği ```bash title="cURL" curl --location --request GET 'https://api.geliver.io/api/v1/shipments/shipmentID' \ --header 'Authorization: Bearer {{bearerToken}}' ``` #### SDK Kod Örnekleri ```javascript title="geliver (npm)" import { GeliverClient } from 'geliver'; const client = new GeliverClient('YOUR_API_TOKEN'); const shipment = await client.shipments.get('SHIPMENT_ID'); console.log('Takip Numarası:', shipment.trackingNumber); console.log('Durum:', shipment.trackingStatus?.trackingStatusCode); ``` ```php title="geliver/geliver-php (Composer)" shipments->get('SHIPMENT_ID'); echo 'Takip Numarası: ' . $shipment->trackingNumber . PHP_EOL; echo 'Durum: ' . $shipment->trackingStatus->trackingStatusCode . PHP_EOL; ``` ```python title="geliver (pip)" from geliver import GeliverClient client = GeliverClient('YOUR_API_TOKEN') shipment = client.get_shipment('SHIPMENT_ID') print('Takip Numarası:', shipment.tracking_number) print('Durum:', shipment.tracking_status.tracking_status_code) ``` ```csharp title="Geliver (NuGet)" using Geliver; var client = new GeliverClient("YOUR_API_TOKEN"); var shipment = await client.Shipments.GetAsync("SHIPMENT_ID"); Console.WriteLine($"Takip Numarası: {shipment.TrackingNumber}"); Console.WriteLine($"Durum: {shipment.TrackingStatus?.TrackingStatusCode}"); ``` ```java title="geliver-java (Maven)" import com.geliver.GeliverClient; import com.geliver.models.Shipment; GeliverClient client = new GeliverClient("YOUR_API_TOKEN"); Shipment shipment = client.shipments().get("SHIPMENT_ID"); System.out.println("Takip Numarası: " + shipment.getTrackingNumber()); System.out.println("Durum: " + shipment.getTrackingStatus().getTrackingStatusCode()); ``` ```go title="geliver-go (go get)" package main import ( "context" "fmt" g "github.com/GeliverApp/geliver-go/pkg/geliver" ) func main() { client := g.NewClient("YOUR_API_TOKEN") ctx := context.Background() shipment, err := client.GetShipment(ctx, "SHIPMENT_ID") if err != nil { panic(err) } fmt.Println("Takip Numarası:", shipment.TrackingNumber) if shipment.TrackingStatus != nil { fmt.Println("Durum:", shipment.TrackingStatus.TrackingStatusCode) } } ``` ## Belirli bir gönderinin detaylarını listeleme yanıtı ```json title="200 OK" { "result": true, "additionalMessage": "Success", "data": { "id":"186af322-c9ad-407c-b798-64d464816cf4", "trackingNumber":"123123123", "trackingUrl": "http://xxx.com/123123123", ... "trackingStatus":{ "id": "3b8ecf37-4e9d-4b73-aed5-13abcdc427e0", "createdAt": "2022-04-28T16:16:37.217468Z", "updatedAt": "2022-04-28T16:16:37.217468Z", "trackingStatusCode": "DELIVERED", "trackingSubStatusCode": "delivered", "statusDetails": "Teslim Edildi", "statusDate": "2022-04-23T14:29:45.06Z", "locationName": "Sarnıç Mikro" } ... } } ``` ## Alan Açıklamaları | Alan İsmi | Açıklama | | --- | --- | | trackingNumber | Kargo firması tarafından üretilen kargo takip numarası. Bazı kargo firmaları takip numarasını şubeye teslimde ileteceği için bu alanı almak için periyodik sorgu yapmanız gerekebilir. Bunun yerine Webhook kullanırsanız biz size çağrı yaptığımızda alabilirsiniz. | | trackingUrl | Kargo firması tarafından üretilen kargo takip adresi. Bazı kargo firmaları takip adresini şubeye teslimde ileteceği için bu alanı almak için periyodik sorgu yapmanız gerekebilir. Bunun yerine Webhook kullanırsanız biz size çağrı yaptığımızda alabilirsiniz. Dilerseniz https://app.geliver.io/tracking/{shipmentID} adresini de kullanabilirsiniz. | | trackingStatus.trackingStatusCode | Gönderinin o anki genel durumu (PRE_TRANSIT, TRANSIT, DELIVERED, RETURNED, FAILURE, UNKNOWN) | | trackingStatus.trackingSubStatusCode | Gönderinin o anki detaylı durumu. Aşağıdaki tabloda tüm değerleri görebilirsiniz. | | trackingStatus.statusDetails | Yazılı olarak gönderinin o anki durumu. Genelde kargo firması bunu belirtir. | | trackingStatus.statusDate | Gönderi durumunun güncellendiği zaman. | | trackingStatus.locationName | Gönderi durumu alındığındaki paketin konumu. | ## Kargo Durum Değerleri | trackingStatusCode | trackingSubStatusCode | Açıklama | | --- | --- | --- | | PRE_TRANSIT | information_received | Kargo sistemde oluşturuldu | | TRANSIT | package_accepted | Kargo, Gönderici şube tarafından teslim alındı. | | TRANSIT | package_departed | Kargo, aktarma merkezinden ayrıldı | | TRANSIT | package_processing | Kargo aktarma merkezinde | | TRANSIT | delivery_scheduled | Kargo alıcı şubede | | TRANSIT | out_for_delivery | Kargo dağıtımda | | TRANSIT | package_damaged | Paket hasarlı | | TRANSIT | package_forwarded_to_another_carrier | Kargo aracı firmaya verildi | | TRANSIT | delivery_rescheduled | Kargo dağıtım zamanı değişti (yanlış şube vs) | | DELIVERED | delivered | Kargo alıcıya teslim edildi | | FAILURE | package_lost | Paket kayboldu | | FAILURE | package_undeliverable | Kargo dağıtılamıyor | | RETURNED | return_to_sender | Kargo iade edildi | | UNKNOWN | other | Bilinmeyen durum | --- # Teklifleri kabul etme URL: https://docs.geliver.io/docs/shipments_and_transaction/accept_offer Gönderi oluşturup teklifleri aldıktan sonra kabul etmek istediğiniz teklifin offerID'sini kullanıp etiket satın alma işleminizi gerçekleştirebilirsiniz. ## Teklifleri kabul etme isteği ```bash title="cURL" curl --location --globoff --request POST 'https://api.geliver.io/api/v1/transactions' \ --header 'Authorization: Bearer {{bearerToken}}' \ --header 'Content-Type: application/json' \ --data '{ "offerID": "3c42cecb-f257-4120-ae0a-84e5981a4bf2" }' ``` #### SDK Kod Örnekleri ```javascript title="geliver (npm)" import { GeliverClient } from 'geliver'; const client = new GeliverClient('YOUR_API_TOKEN'); // Teklifi kabul et ve etiket satın al const transaction = await client.transactions.acceptOffer('OFFER_ID'); console.log('Transaction ID:', transaction.id); console.log('Barkod:', transaction.shipment.barcode); console.log('Etiket URL:', transaction.shipment.labelURL); ``` ```php title="geliver/geliver-php (Composer)" transactions->acceptOffer('OFFER_ID'); echo 'Transaction ID: ' . $transaction->id . PHP_EOL; echo 'Barkod: ' . $transaction->shipment->barcode . PHP_EOL; echo 'Etiket URL: ' . $transaction->shipment->labelURL . PHP_EOL; ``` ```python title="geliver (pip)" from geliver import GeliverClient client = GeliverClient('YOUR_API_TOKEN') # Teklifi kabul et ve etiket satın al transaction = client.accept_offer('OFFER_ID') print('Transaction ID:', transaction.id) print('Barkod:', transaction.shipment.barcode) print('Etiket URL:', transaction.shipment.label_url) ``` ```csharp title="Geliver (NuGet)" using Geliver; var client = new GeliverClient("YOUR_API_TOKEN"); // Teklifi kabul et ve etiket satın al var transaction = await client.Transactions.AcceptOfferAsync("OFFER_ID"); Console.WriteLine($"Transaction ID: {transaction.Id}"); Console.WriteLine($"Barkod: {transaction.Shipment.Barcode}"); Console.WriteLine($"Etiket URL: {transaction.Shipment.LabelURL}"); ``` ```java title="geliver-java (Maven)" import com.geliver.GeliverClient; import com.geliver.models.Transaction; GeliverClient client = new GeliverClient("YOUR_API_TOKEN"); // Teklifi kabul et ve etiket satın al Transaction transaction = client.transactions().acceptOffer("OFFER_ID"); System.out.println("Transaction ID: " + transaction.getId()); System.out.println("Barkod: " + transaction.getShipment().getBarcode()); System.out.println("Etiket URL: " + transaction.getShipment().getLabelURL()); ``` ```go title="geliver-go (go get)" package main import ( "context" "fmt" g "github.com/GeliverApp/geliver-go/pkg/geliver" ) func main() { client := g.NewClient("YOUR_API_TOKEN") ctx := context.Background() // Teklifi kabul et ve etiket satın al transaction, err := client.AcceptOffer(ctx, "OFFER_ID") if err != nil { panic(err) } fmt.Println("Transaction ID:", transaction.ID) fmt.Println("Barkod:", transaction.Shipment.Barcode) fmt.Println("Etiket URL:", transaction.Shipment.LabelURL) } ``` #### İstek içerisindeki alanların açıklamaları offerIDstringzorunlu Aldığınız teklifin ID'si. Bu ID'ler İki aşamada gönderi oluşturma isteğine gönderilen yanıt içerisinde offers altında bulunmaktadır. Farklı kargo firmalarının teklifleri burada yer alır. Satın almak istediğiniz teklifin ID'sini bu istek ile göndererek etiketi satın almış olursunuz. ## Teklifleri kabul etme isteğine gelen yanıt ```json title="200 OK" { "result": true, "message": "Success", "data": { "id": "b87sc5c3-9ddf-4e4c-8a41-b9461f81f895", "createdAt": "2025-05-12T17:14:37.158623+03:00", "updatedAt": "2025-05-12T14:14:37.186479037Z", "amount": "0", "currency": "TL", "amountLocal": "0", "currencyLocal": "TL", "amountVat": "0", "amountLocalVat": "0", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "0", "totalAmountLocal": "0", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0", "offerID": "02bs6948-adf1-4e80-9f33-a37d86d4388e", "shipment": { "id": "404sd66d-c0a7-4925-9327-f493dc8c7c55", "createdAt": "2025-05-12T17:12:50.665306+03:00", "updatedAt": "2025-05-12T17:14:37.185667+03:00", "test": true, "amount": "0", "currency": "TL", "amountLocal": "0", "amountVat": "0", "amountLocalVat": "0", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "0", "totalAmountLocal": "0", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0", "length": "10", "width": "10", "height": "10", "desi": "1", "oldDesi": "0", "distanceUnit": "cm", "weight": "1", "oldWeight": "0", "massUnit": "kg", "useWeightOfItems": false, "useDimensionsOfItems": false, "trackingStatus": null, "barcode": "64124002705", "labelFileType": "PDF", "labelURL": "https://labels3.geliver.io/labels/4sdsd66d-c0a7-4925-9327-f493dc8c7c55.pdf", "responsiveLabelURL": "https://api.geliver.io/api/v1/responsivelabels/40sds66d-c0a7-4925-9327-f493dc8c7c55/9536", "hidePackageContentOnTag": false, "shipmentDate": null, "invoiceGenerated": false, "refundInvoiceID": null, "productPaymentOnDelivery": false, "orderID": "f734374c-68ad-471c-b579-caf806df5f7c", "order": null, "senderAddressID": "1f01b99e-53b0-4e79-a830-4b76f2438357", "senderAddress": null, "recipientAddressID": "b1180e76-21f3-4b42-bbc4-0794969bf1a4", "recipientAddress": null, "createReturnLabel": false, "statusCode": "TRACKING_CODE_CREATED", "offers": null, "acceptedOfferID": "02b06948-adf1-4e80-9f33-a37d86d4388e", "acceptedOffer": null, "providerCode": "GELIVER", "providerServiceCode": "GELIVER_STANDART", "enableAutomation": false, "organizationShipmentID": 360, "providerBranchName": null, "providerInvoiceNo": null, "providerReceiptNo": null, "providerSerialNo": null, "hasError": false, "lastErrorMessage": null, "lastErrorCode": null, "cancelDate": "0001-01-01T00:00:00Z", "isReturned": false, "isReturn": false, "isTrackingOnly": false, "isRecipientSmsActivated": true, "packageAcceptedAt": null, "tenantId": null }, "description": "Yeni gönderi ücretlendirilmesi", "isRefund": false, "isCustomAccountCharge": false, "isPayed": true, "payedVia": "BALANCE", "transactionType": "CREATE_SHIPMENT", "invoiceID": "4c2918cd-9838-4s58-a7eb-2d1f2aa62fa9", "cancelDescription": "", "isCanceled": false, "oldBalance": "2.59", "newBalance": "2.59", "invoiceOldDebt": "0", "invoiceNewDebt": "0" } } ``` #### Diğer alanların detaylı açıklamaları Gönderi oluşturma ve istek kısımlarında verilmiştir. Aşağıdaki bilgiler bu yanıta özel olarak eklenmiştir. idstring Yeni oluşturulan transaction’un id’si. amountstring Gönderi ücreti. currencystring Gönderi ücretinin döviz cinsi. amountLocalstring Yerel ülkedeki gönderi ücreti. currencyLocalstring Yerel ülkedeki döviz cinsi. offerIDstring Kabul edilen teklifin id’si. shipment.idstring Gönderinin benzersiz ID'si. shipment.createdAtstring Gönderi oluşturulma zamanı. shipment.updatedAtstring Gönderi güncelleme zamanı. shipment.barcodestring Geliver tarafından üretilen barkod/sipariş kodu. Bu kod kargo şubesine iletilen etiket numarasıdır. Dinamik veya PDF etikette de yer alır. shipment.labelFileTypestring Etiket dosyasının türü. PDF veya ZPL olabilir. shipment.labelURLstring Etiket dosyasının adresi (URL). shipment.trackingNumberstring Kargo firması tarafından üretilen takip numarası. Bazı kargo firmaları bu kodu şubeye teslimde üretir. Takip için periyodik istek veya Webhook kullanılabilir. shipment.trackingUrlstring Kargo takip adresi. Müşterilerinize verebilirsiniz. Takip için periyodik istek veya Webhook kullanılabilir. shipment.statusCodestring Gönderi durumu. Alabileceği değerler: CREATED, GOT_OFFERS, OFFER_ACCEPTED, TRACKING_CODE_CREATED, SHIPPED, DELIVERED. shipment.isTrackingOnlyboolean Sadece takip edilen bir gönderi olup olmadığı. ### Hata Kodları | Hata Kodu | Açıklama | | --- | --- | | E1085 | Hatalı istek. | | E1055 | Bu işlemi yapmaya yetkiniz yok. | | E1064 | Teklif bulunamadı. | | E1051 | Gönderi bulunamadı. | | E1065 | Bu gönderi için daha önce bir teklif kabul edilmiş. | | E1066 | Organizasyonun yeterli bakiyesi yok. | | E1067 | Ürün bilgisi alınamadı. | | E1068 | Gönderici adresi (senderAddressID) bulunamadı. Adresin var olduğunu addresses endpoint'i ile kontrol edin. | | E1071 | Gönderi barkodu oluşturulamadı. | | E1072 | Kargo etiketi oluşturulamadı. | | E1073 | Gönderi güncellenemedi. | | E1086 | İşlem oluşturulamadı. | Tüm hata kodları için Hata Kodları sayfasına bakabilirsiniz. --- # Gönderi paketlerini güncelleme URL: https://docs.geliver.io/docs/shipments_and_transaction/update_package_shipment Geliver sistemimizde oluşan gönderilerinizin paket boyutunu güncellemek için Gönderi paketlerini güncelleme isteğimizi kullanabilirsiniz. Uyarı Gönderi paketlerini güncelleme isteğini, yalnızca CREATED veya GOT_OFFERS durumundaki (henüz etiketi satın alınmamış) gönderilerinizde kullanabilirsiniz. ## Gönderi paketlerini güncelleme isteği length, height, width ve weight alanlarının dördünü birlikte göndermeniz gerekir — bu dördünden biri eksikse paket boyutu güncellenmez. Alternatif olarak, boyutları tek tek göndermek yerine bir parcelTemplateID gönderebilirsiniz. ```bash title="cURL" curl --location --request PATCH 'https://api.geliver.io/api/v1/shipments/:shipmentID' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {{bearerToken}}' \ --data '{ "height": 1, "width": 1, "length": 1, "distanceUnit": "cm", "weight": 1, "massUnit": "kg" }' ``` lengthfloatzorunlu Paket uzunluğu. height, width ve weight ile birlikte gönderilmelidir; bu dördü bir arada olmadan güncelleme uygulanmaz. heightfloatzorunlu Paket yüksekliği. length, width ve weight ile birlikte gönderilmelidir. widthfloatzorunlu Paket genişliği. length, height ve weight ile birlikte gönderilmelidir. weightfloatzorunlu Paket ağırlığı. length, height ve width ile birlikte gönderilmelidir. distanceUnitstring Uzunluk birimi. Boyut alanlarıyla birlikte göndermeniz önerilir. massUnitstring Kütle birimi. Ağırlık alanıyla birlikte göndermeniz önerilir. parcelTemplateIDstring Boyutları tek tek göndermek yerine kullanabileceğiniz kargo şablonu ID'si. Bu alan gönderildiğinde length/height/width/weight alanlarına gerek kalmaz. ## Gönderi paketlerini güncelleme isteğine gelen yanıt ```json title="200 OK" { "result": true, "additionalMessage": "Success", "data": { "id": "18307372-0986-4e47-b5df-1984603b95df", "createdAt": "2025-03-11T01:16:35.780477+03:00", "updatedAt": "2025-03-11T01:16:49.636543+03:00", "amount": "0", "currency": "TL", "amountLocal": "0", "amountVat": "0", "amountLocalVat": "0", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "0", "totalAmountLocal": "0", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0", "length": "1", "width": "1", "height": "1", "desi": "1", "oldDesi": "0", "distanceUnit": "", "weight": "1", "oldWeight": "0", "massUnit": "kg", "useWeightOfItems": false, "useDimensionsOfItems": false, "trackingStatus": null, "labelFileType": "PROVIDER_PDF", "hidePackageContentOnTag": false, "shipmentDate": null, "invoiceGenerated": false, "refundInvoiceID": null, "productPaymentOnDelivery": false, "orderID": "1277f33d-b00e-4ef3-abdf-2ba052ec5dd1", "order": { "id": "1277f33d-b00e-4ef3-abdf-2ba052ec5dd1", "createdAt": "2025-03-11T01:16:35.775758+03:00", "updatedAt": "2025-03-11T01:16:35.775758+03:00", "itemIDs": null, "buyerShippingCost": "0", "buyerShipmentMethod": "", "totalAmount": "0", "totalTax": "0", "sourceCode": "GLV", "orderNumber": "", "orderCode": "", "notes": "", "organizationID": null }, "senderAddressID": "18541a76-87e9-4b9b-a79a-e5082aee838f", "senderAddress": null, "recipientAddressID": "129c435c-d68e-4225-82dd-9cea976e244b", "recipientAddress": null, "createReturnLabel": false, "statusCode": "GOT_OFFERS", "offers": { "createdAt": "2025-03-11T01:16:49.612025+03:00", "updatedAt": "2025-03-11T01:16:49.637259+03:00", "length": "1", "width": "1", "height": "1", "weight": "1", "cheapest": { "id": "5d188325-e03f-434a-9d9a-6175c5078fd3", "createdAt": "2025-03-11T01:16:49.621165+03:00", "updatedAt": "2025-03-11T01:16:49.621165+03:00", "amount": "15", "currency": "TL", "amountLocal": "15", "amountVat": "3", "amountLocalVat": "3", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "18", "totalAmountLocal": "18", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0.75", "providerCode": "PTT", "providerServiceCode": "PTT_STANDART", "averageEstimatedTime": 88968000000000, "averageEstimatedTimeHumanReadible": "02 gün 00 saat", "durationTerms": "", "rating": 0, "isAccepted": false, "isGlobal": true, "isC2C": true, "integrationType": "C2C", "isMainOffer": false, "isProviderAccountOffer": false, "providerAccountOwnerType": "", "providerAccountName": null }, "fastest": { "id": "150c49c7-ed95-4df8-af57-6692dc4f08b7", "createdAt": "2025-03-11T01:16:49.627137+03:00", "updatedAt": "2025-03-11T01:16:49.627137+03:00", "amount": "60.5", "currency": "TL", "amountLocal": "60.5", "amountVat": "12.39", "amountLocalVat": "12.39", "amountTax": "1.43", "amountLocalTax": "142.18", "totalAmount": "74.31", "totalAmountLocal": "74.31", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "2.75", "providerCode": "HEPSIJET", "providerServiceCode": "HEPSIJET_STANDART", "averageEstimatedTimeHumanReadible": "01 gün 00 saat", "durationTerms": "", "rating": 0, "isAccepted": false, "isGlobal": true, "isC2C": true, "integrationType": "", "isMainOffer": false, "isProviderAccountOffer": false, "providerAccountOwnerType": "", "providerAccountName": null }, "list": [ { "id": "1d188325-e03f-434a-9d9a-6175c5078fd3", "createdAt": "2025-03-11T01:16:49.621165+03:00", "updatedAt": "2025-03-11T01:16:49.621165+03:00", "amount": "15", "currency": "TL", "amountLocal": "15", "amountVat": "3", "amountLocalVat": "3", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "18", "totalAmountLocal": "18", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0.75", "providerCode": "PTT", "providerServiceCode": "PTT_STANDART", "averageEstimatedTime": 88968000000000, "averageEstimatedTimeHumanReadible": "02 gün 00 saat", "durationTerms": "", "rating": 0, "isAccepted": false, "isGlobal": true, "isC2C": true, "integrationType": "C2C", "isMainOffer": false, "isProviderAccountOffer": false, "providerAccountOwnerType": "", "providerAccountName": null }, { "id": "1cc6e801-de39-4d5c-9ac3-85a5127ded3a", "createdAt": "2025-03-11T01:16:49.622703+03:00", "updatedAt": "2025-03-11T01:16:49.622703+03:00", "amount": "16.5", "currency": "TL", "amountLocal": "16.5", "amountVat": "3.38", "amountLocalVat": "3.38", "amountTax": "0.39", "amountLocalTax": "38.78", "totalAmount": "20.27", "totalAmountLocal": "20.27", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0.75", "providerCode": "SENDEO", "providerServiceCode": "SENDEO_STANDART", "averageEstimatedTime": 135438000000000, "averageEstimatedTimeHumanReadible": "02 gün 13 saat", "durationTerms": "", "rating": 0, "isAccepted": false, "isGlobal": true, "isC2C": true, "integrationType": "C2C", "isMainOffer": false, "isProviderAccountOffer": false, "providerAccountOwnerType": "", "providerAccountName": null }, { "id": "1e059d62-dd58-46f1-9835-53c83ddcc753", "createdAt": "2025-03-11T01:16:49.624317+03:00", "updatedAt": "2025-03-11T01:16:49.624317+03:00", "amount": "21.5", "currency": "TL", "amountLocal": "21.5", "amountVat": "4.41", "amountLocalVat": "4.41", "amountTax": "0.51", "amountLocalTax": "50.53", "totalAmount": "26.41", "totalAmountLocal": "26.41", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "1", "providerCode": "SURAT", "providerServiceCode": "SURAT_STANDART", "averageEstimatedTime": 96951000000000, "averageEstimatedTimeHumanReadible": "02 gün 02 saat", "durationTerms": "", "rating": 0, "isAccepted": false, "isGlobal": true, "isC2C": true, "integrationType": "C2C", "isMainOffer": false, "isProviderAccountOffer": false, "providerAccountOwnerType": "", "providerAccountName": null }, { "id": "123dde52-2b12-4720-8627-640252744a93", "createdAt": "2025-03-11T01:16:49.625673+03:00", "updatedAt": "2025-03-11T01:16:49.625673+03:00", "amount": "29", "currency": "TL", "amountLocal": "29", "amountVat": "5.94", "amountLocalVat": "5.94", "amountTax": "0.69", "amountLocalTax": "68.15", "totalAmount": "35.62", "totalAmountLocal": "35.62", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "1.5", "providerCode": "YURTICI", "providerServiceCode": "YURTICI_STANDART", "averageEstimatedTime": 135438000000000, "averageEstimatedTimeHumanReadible": "02 gün 13 saat", "durationTerms": "", "rating": 0, "isAccepted": false, "isGlobal": true, "isC2C": true, "integrationType": "C2C", "isMainOffer": false, "isProviderAccountOffer": false, "providerAccountOwnerType": "", "providerAccountName": null }, { "id": "150c49c7-ed95-4df8-af57-6692dc4f08b7", "createdAt": "2025-03-11T01:16:49.627137+03:00", "updatedAt": "2025-03-11T01:16:49.627137+03:00", "amount": "60.5", "currency": "TL", "amountLocal": "60.5", "amountVat": "12.39", "amountLocalVat": "12.39", "amountTax": "1.43", "amountLocalTax": "142.18", "totalAmount": "74.31", "totalAmountLocal": "74.31", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "2.75", "providerCode": "HEPSIJET", "providerServiceCode": "HEPSIJET_STANDART", "averageEstimatedTimeHumanReadible": "01 gün 00 saat", "durationTerms": "", "rating": 0, "isAccepted": false, "isGlobal": true, "isC2C": true, "integrationType": "", "isMainOffer": false, "isProviderAccountOffer": false, "providerAccountOwnerType": "", "providerAccountName": null }, { "id": "15a92e4f-7327-46e1-a27c-8458c1bbed10", "createdAt": "2025-03-11T01:16:49.632947+03:00", "updatedAt": "2025-03-11T01:16:49.632947+03:00", "amount": "1.25", "currency": "TL", "amountLocal": "1.25", "amountVat": "0.25", "amountLocalVat": "0.25", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "1.5", "totalAmountLocal": "1.5", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0", "providerCode": "PTT", "providerServiceCode": "PTT_STANDART", "providerAccountID": "73344ee2-2ae8-4f2c-84df-219541adcd24", "averageEstimatedTime": 88968000000000, "averageEstimatedTimeHumanReadible": "02 gün 00 saat", "durationTerms": "", "rating": 0, "isAccepted": false, "isGlobal": false, "isC2C": false, "integrationType": "DEFAULT", "isMainOffer": false, "isProviderAccountOffer": true, "providerAccountOwnerType": "THIRD_PARTY_ORGANIZATION", "providerAccountName": "FRD" }, { "id": "108ea1f0-c8da-4467-ad43-3e3cf698328b", "createdAt": "2025-03-11T01:16:49.635298+03:00", "updatedAt": "2025-03-11T01:16:49.635298+03:00", "amount": "1", "currency": "TL", "amountLocal": "1", "amountVat": "0", "amountLocalVat": "0", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "1", "totalAmountLocal": "0", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0", "providerCode": "MNG", "providerServiceCode": "MNG_STANDART", "providerAccountID": "sads-sds254a-434a-af0b-e2bd00f6fc8b", "averageEstimatedTime": 112434000000000, "averageEstimatedTimeHumanReadible": "02 gün 07 saat", "durationTerms": "", "rating": 0, "isAccepted": false, "isGlobal": false, "isC2C": false, "integrationType": "DEFAULT", "isMainOffer": false, "isProviderAccountOffer": true, "providerAccountOwnerType": "CURRENT_ORGANIZATION", "providerAccountName": "testkargo" } ], "percentageCompleted": 100, "totalOffersRequested": 7, "totalOffersCompleted": 7, "allowOfferFallback": false }, "acceptedOffer": null, "enableAutomation": false, "organizationShipmentID": 373, "providerBranchName": null, "providerInvoiceNo": null, "providerReceiptNo": null, "providerSerialNo": null, "hasError": false, "lastErrorMessage": null, "lastErrorCode": null, "cancelDate": "0001-01-01T00:00:00Z", "isReturned": false, "isReturn": false, "isTrackingOnly": false, "isRecipientSmsActivated": true, "packageAcceptedAt": null, "tenantId": null } } ``` --- # Gönderiyi iptal etme URL: https://docs.geliver.io/docs/shipments_and_transaction/cancel_shipment Gönderilerinizi iptal etmek için aşağıdaki isteği kullanabilirsiniz. ## Gönderiyi iptal etme isteği ```bash title="cURL" curl --location --request DELETE 'https://api.geliver.io/api/v1/shipments/shipmentID' \ --header 'Authorization: Bearer {{bearerToken}}' ``` #### SDK Kod Örnekleri ```javascript title="geliver (npm)" import { GeliverClient } from 'geliver'; const client = new GeliverClient('YOUR_API_TOKEN'); const result = await client.shipments.cancel('SHIPMENT_ID'); console.log('Gönderi iptal edildi:', result.id); ``` ```php title="geliver/geliver-php (Composer)" shipments->cancel('SHIPMENT_ID'); echo 'Gönderi iptal edildi: ' . $result->id . PHP_EOL; ``` ```python title="geliver (pip)" from geliver import GeliverClient client = GeliverClient('YOUR_API_TOKEN') result = client.cancel_shipment('SHIPMENT_ID') print('Gönderi iptal edildi:', result.id) ``` ```csharp title="Geliver (NuGet)" using Geliver; var client = new GeliverClient("YOUR_API_TOKEN"); var result = await client.Shipments.CancelAsync("SHIPMENT_ID"); Console.WriteLine($"Gönderi iptal edildi: {result.Id}"); ``` ```java title="geliver-java (Maven)" import com.geliver.GeliverClient; import com.geliver.models.Shipment; GeliverClient client = new GeliverClient("YOUR_API_TOKEN"); Shipment result = client.shipments().cancel("SHIPMENT_ID"); System.out.println("Gönderi iptal edildi: " + result.getId()); ``` ```go title="geliver-go (go get)" package main import ( "context" "fmt" g "github.com/GeliverApp/geliver-go/pkg/geliver" ) func main() { client := g.NewClient("YOUR_API_TOKEN") ctx := context.Background() result, err := client.CancelShipment(ctx, "SHIPMENT_ID") if err != nil { panic(err) } fmt.Println("Gönderi iptal edildi:", result.ID) } ``` ## Gönderi iptal isteğine gelen yanıt ```json title="200 OK" { "result": true, "additionalMessage": "Success", "data": { "id": "00000000-0000-0000-0000-000000000000", "createdAt": "0001-01-01T00:00:00Z", "updatedAt": "0001-01-01T00:00:00Z", "amount": "0", "currency": "", "amountLocal": "0", "amountVat": "0", "amountLocalVat": "0", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "0", "totalAmountLocal": "0", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0", "length": "0", "width": "0", "height": "0", "desi": "0", "oldDesi": "0", "distanceUnit": "", "weight": "0", "oldWeight": "0", "massUnit": "", "useWeightOfItems": false, "useDimensionsOfItems": false, "trackingStatus": null, "labelFileType": "", "hidePackageContentOnTag": false, "shipmentDate": null, "invoiceGenerated": false, "refundInvoiceID": null, "productPaymentOnDelivery": false, "orderID": null, "order": null, "senderAddress": null, "recipientAddress": null, "createReturnLabel": false, "statusCode": "", "offers": null, "acceptedOffer": null, "enableAutomation": false, "organizationShipmentID": 0, "providerBranchName": null, "providerInvoiceNo": null, "providerReceiptNo": null, "providerSerialNo": null, "hasError": false, "lastErrorMessage": null, "lastErrorCode": null, "cancelDate": "0001-01-01T00:00:00Z", "isReturned": false, "isReturn": false, "isTrackingOnly": false, "isRecipientSmsActivated": null, "packageAcceptedAt": null, "tenantId": null } } ``` --- # Gönderiyi çoğaltma URL: https://docs.geliver.io/docs/shipments_and_transaction/clone_shipment Mevcut bir gönderiyi baz alarak aynı bilgilerle yeni bir gönderi oluşturmak için aşağıdaki isteği kullanabilirsiniz. Bu istek, Gönderiyi iade etme isteğiyle aynı uç noktayı paylaşır; isReturn alanının gönderilmemesi veya false olması çoğaltma davranışını tetikler. ## Gönderiyi çoğaltma isteği Boş bir gövde ile gönderilen istek, orijinal gönderinin tek bir kopyasını oluşturur: ```bash title="cURL" curl --location --request POST 'https://api.geliver.io/api/v1/shipments/:shipmentID' \ --header 'Authorization: Bearer {{bearerToken}}' ``` Dilerseniz aşağıdaki alanları içeren bir gövde de gönderebilirsiniz: ```bash title="cURL" curl --location --request POST 'https://api.geliver.io/api/v1/shipments/:shipmentID' \ --header 'Authorization: Bearer {{bearerToken}}' \ --header 'Content-Type: application/json' \ --data '{ "count": 2, "willAccept": true, "providerServiceCode": "SURAT_STANDART" }' ``` countint Oluşturulacak kopya sayısı. Gönderilmezse 1 kabul edilir; 10'dan büyük değerler otomatik olarak 10'a düşürülür. willAcceptbool Oluşan tekliflerin otomatik kabul edilip edilmeyeceğini belirtir. Gönderilmezse false kabul edilir. providerServiceCodestring willAccept true iken kullanılacak kargo hizmeti kodu. Gönderilmezse orijinal gönderinin kabul edilmiş teklifindeki servis kodu kullanılır. Yanıt diğer gönderi oluşturma isteğiyle aynı olduğundan eklenmemiştir. --- # Gönderiyi iade etme URL: https://docs.geliver.io/docs/shipments_and_transaction/return_shipment Gönderileriniz için iade gönderisi oluşturmak amacıyla aşağıdaki isteği kullanabilirsiniz. Bu istek, Gönderiyi çoğaltma isteğiyle aynı uç noktayı paylaşır; isReturn alanı ikisini birbirinden ayırır. Ön koşullar İade gönderisi oluşturabilmek için orijinal gönderinin belirli bir duruma (teslimat sürecinde belirli bir aşamaya) ulaşmış olması gerekir; aksi halde istek hata döner. Zaten bir iade gönderisi olan bir gönderi tekrar iade edilemez. ## Gönderiyi iade etme isteği ```bash title="cURL" curl --location --request POST 'https://api.geliver.io/api/v1/shipments/shipmentID' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {{bearerToken}}' \ --data '{ "isReturn": true, "willAccept": true, "providerServiceCode": "SURAT_STANDART", "count": 2, "senderAddress": { "name": "Test Company Name", "phone": "+905051234567", "address1": "Celal Bayar Üniversitesi Teknokenti Daire 102", "countryCode": "TR", "cityCode": "45", "districtName": "Yunusemre" } }' ``` isReturnbool İade davranışını tetiklemek için true gönderilmelidir. Gönderilmezse veya false ise istek, gönderiyi çoğaltma isteği olarak işlenir (bkz. Gönderiyi çoğaltma). willAcceptbool Oluşan iade teklifinin otomatik kabul edilip edilmeyeceğini belirtir. Gönderilmezse false kabul edilir ve yalnızca iade gönderisi oluşturulur, herhangi bir teklif kabul edilmez. providerServiceCodestring İade için kullanılacak kargo hizmeti kodu. willAccept true iken gönderilmezse, orijinal gönderinin kabul edilmiş teklifindeki servis kodu kullanılır. countint İade edilecek gönderi/parsel sayısı. Gönderilmezse 1 kabul edilir; 10'dan büyük değerler otomatik olarak 10'a düşürülür. senderAddressobject Gönderilmezse orijinal gönderinin alıcı adresi kullanılır. Gönderilirse standart adres doğrulaması (ör. isim minimum uzunluğu, telefon formatı) bu alan için uygulanmaz. senderAddress.namestring Adres sahibinin adı veya şirket adı. senderAddress.phonestring Telefon numarası. senderAddress.address1string Adres satırı 1. senderAddress.countryCodestring Ülke kodu. senderAddress.cityCodestring Şehir plaka kodu. senderAddress.districtNamestring İlçe adı. senderAddress alanı hakkında Alan adı senderAddress olsa da, gönderdiğiniz adres iade gönderisinin alıcı adresi olarak kullanılır (iade edilen paketin ulaşacağı adres, genellikle sizin deponuz). Alanı yalnızca iade paketinin teslim edileceği adresi belirtmek için kullanın. Yanıt diğer gönderi oluşturma isteğiyle aynı olduğundan eklenmemiştir. --- # Kargo takip durum kodları URL: https://docs.geliver.io/docs/shipments_and_transaction/tracking_status_codes | trackingStatusCode | trackingSubStatusCode | Açıklama | | --- | --- | --- | | PRE_TRANSIT | information_received | Kargo sistemde oluşturuldu | | PRE_TRANSIT | pickup_scheduled | Gönderinin alımı planlandı. | | PRE_TRANSIT | pickup_out_for_collection | Kurye gönderiyi teslim almak üzere yola çıktı. | | PRE_TRANSIT | pickup_failed | Kurye gönderiyi teslim almaya çalıştı ancak başarılı olamadı. | | TRANSIT | package_accepted | Kargo, Gönderici şube tarafından teslim alındı. | | TRANSIT | package_departed | Kargo, aktarma merkezinden ayrıldı | | TRANSIT | package_processing | Kargo aktarma merkezinde | | TRANSIT | delivery_scheduled | Kargo alıcı şubede | | TRANSIT | out_for_delivery | Kargo dağıtımda | | TRANSIT | package_damaged | Paket hasarlı | | TRANSIT | package_forwarded_to_another_carrier | Kargo aracı firmaya verildi | | TRANSIT | delivery_rescheduled | Kargo dağıtım zamanı değişti (yanlış şube vs) | | DELIVERED | delivered | Kargo alıcıya teslim edildi | | FAILURE | package_lost | Paket kayboldu | | FAILURE | package_undeliverable | Kargo dağıtılamıyor | | RETURNED | return_to_sender | Kargo iade edildi | | CANCELED | package_canceled | Kargo iptal edildi. Statü detaylarında iptal sebebi yazmaktadır. | | UNKNOWN | other | Bilinmeyen durum | --- # Sağlayıcı Servis Kodları URL: https://docs.geliver.io/docs/shipments_and_transaction/provider_service_codes İsteklerimizde kargo firmalarıyla işlem yapabilmek için providerServiceCode'ları kullanmanız gerekmektedir. | Kod | Açıklama | | --- | --- | | SURAT_STANDART | Sürat Kargo standart gönderi. | | YURTICI_STANDART | Yurtiçi Kargo standart gönderi. | | PTT_STANDART | PTT Kargo standart gönderi. | | PTT_KAPIDA_ODEME | PTT Kargo kapıda ödeme gönderisi. | | DHL_STANDART | DHL Ecommerce standart gönderi. | | HEPSIJET_STANDART | hepsiJET Kargo standart gönderi. | | KOLAYGELSIN_STANDART | Kolay Gelsin Kargo standart gönderi. | | PAKETTAXI_STANDART | Paket Taxi Kurye standart gönderi. | | ARAS_STANDART | Aras Kargo standart gönderi. | | GELIVER_STANDART | Test gönderisi oluştururken kullanılır. | --- # Webhook oluşturma URL: https://docs.geliver.io/docs/webhooks/create_webhook Gönderilerinizin takip bilgilerini anlık olarak iletebildiğimiz webhook sistemimiz ile, siparişlerinizin taşıma bilgilerini anlık olarak işleyebilirsiniz. Webhook ile taşıma durumu her değiştiğinde sisteminizde belirlediğiniz endpoint'e istek ile bir json gövdesi iletilir. Buradaki verileri uygun şekilde işleyebilir ve taşıma durumunu her seferinde istek atarak sorgulama yükünden kurtulabilirsiniz. Geliştirme sürecinde sizlere webhook.site platformunu tavsiye ederiz. webhook.site linkiniz ile bir webhook oluşturun ve sonrasında test gönderinizin hareket durumlarını güncelleyin. Webhook sistemimiz sipariş durumunuzla ilgili bilgileri iletecektir. ## Webhook oluşturma isteği ```bash title="cURL" curl --location --globoff --request POST 'https://api.geliver.io/api/v1/webhook' \ --header 'Authorization: Bearer {{bearerToken}}' \ --header 'Content-Type: application/json' \ --data '{ "type": "TRACK_UPDATED", "url": "https://postman-echo.com/post" }' ``` #### SDK Kod Örnekleri ```javascript title="geliver (npm)" import { GeliverClient } from 'geliver'; const client = new GeliverClient('YOUR_API_TOKEN'); const webhook = await client.webhooks.create({ type: 'TRACK_UPDATED', url: 'https://yoursite.com/webhook' }); console.log('Webhook ID:', webhook.id); ``` ```php title="geliver/geliver-php (Composer)" webhooks->create([ 'type' => 'TRACK_UPDATED', 'url' => 'https://yoursite.com/webhook' ]); echo 'Webhook ID: ' . $webhook->id . PHP_EOL; ``` ```python title="geliver (pip)" from geliver import GeliverClient client = GeliverClient('YOUR_API_TOKEN') webhook = client.create_webhook( type='TRACK_UPDATED', url='https://yoursite.com/webhook' ) print('Webhook ID:', webhook.id) ``` ```csharp title="Geliver (NuGet)" using Geliver; var client = new GeliverClient("YOUR_API_TOKEN"); var webhook = await client.Webhooks.CreateAsync(new CreateWebhookRequest { Type = "TRACK_UPDATED", Url = "https://yoursite.com/webhook" }); Console.WriteLine($"Webhook ID: {webhook.Id}"); ``` ```java title="geliver-java (Maven)" import com.geliver.GeliverClient; import com.geliver.models.Webhook; GeliverClient client = new GeliverClient("YOUR_API_TOKEN"); Webhook webhook = client.webhooks().create("TRACK_UPDATED", "https://yoursite.com/webhook"); System.out.println("Webhook ID: " + webhook.getId()); ``` ```go title="geliver-go (go get)" package main import ( "context" "fmt" g "github.com/GeliverApp/geliver-go/pkg/geliver" ) func main() { client := g.NewClient("YOUR_API_TOKEN") ctx := context.Background() typ := "TRACK_UPDATED" result, err := client.CreateWebhook(ctx, "https://yoursite.com/webhook", &typ) if err != nil { panic(err) } fmt.Println("Webhook oluşturuldu:", result) } ``` #### İstek içerisindeki alanların açıklamaları typestringzorunlu Webhook Tipi. Geçerli değerler: TRACK_UPDATED (gönderinizin hareket durumu güncellendiğinde tetiklenir), TRANSACTION_CREATED (bir teklif kabul edilip işlem oluşturulduğunda tetiklenir), TRANSACTION_UPDATED. urlstringzorunlu Webhook gönderilecek endpoint ## Webhook oluşturma isteğine gelen yanıt ```json title="200 OK" { "result": true, "additionalMessage": "Success", "data": { "id": "10a26f76-e668-494b-bafa-372e5bf65128", "createdAt": "2025-03-07T17:17:16.156052172Z", "updatedAt": "2025-03-07T17:17:16.156052172Z", "organizationID": "5f718ef7-8ecc-419f-83b4-d45d178e8341", "type": "TRACK_UPDATED", "url": "https://webhooksitesi.com/post", "headerName": "", "headerValue": "", "isActive": true } } ``` --- # Webhookları listeleme URL: https://docs.geliver.io/docs/webhooks/list_webhooks Oluşturduğunuz webhookları listelemek için Webhookları listeleme isteğimizi kullanabilirsiniz. ## Webhookları listeleme isteği ```bash title="cURL" curl --location --globoff --request GET 'https://api.geliver.io/api/v1/webhook' \ --header 'Authorization: Bearer {{bearerToken}}' ``` #### SDK Kod Örnekleri ```javascript title="geliver (npm)" import { GeliverClient } from 'geliver'; const client = new GeliverClient('YOUR_API_TOKEN'); const webhooks = await client.webhooks.list(); webhooks.forEach(wh => console.log(wh.id, wh.type, wh.url)); ``` ```php title="geliver/geliver-php (Composer)" webhooks->list(); foreach ($webhooks as $wh) { echo $wh->id . ' - ' . $wh->type . ' - ' . $wh->url . PHP_EOL; } ``` ```python title="geliver (pip)" from geliver import GeliverClient client = GeliverClient('YOUR_API_TOKEN') webhooks = client.list_webhooks() for wh in webhooks: print(wh.id, wh.type, wh.url) ``` ```csharp title="Geliver (NuGet)" using Geliver; var client = new GeliverClient("YOUR_API_TOKEN"); var webhooks = await client.Webhooks.ListAsync(); foreach (var wh in webhooks) { Console.WriteLine($"{wh.Id} - {wh.Type} - {wh.Url}"); } ``` ```java title="geliver-java (Maven)" import com.geliver.GeliverClient; import com.geliver.models.Webhook; import java.util.List; GeliverClient client = new GeliverClient("YOUR_API_TOKEN"); List webhooks = client.webhooks().list(); for (Webhook wh : webhooks) { System.out.println(wh.getId() + " - " + wh.getType() + " - " + wh.getUrl()); } ``` ```go title="geliver-go (go get)" package main import ( "context" "fmt" g "github.com/GeliverApp/geliver-go/pkg/geliver" ) func main() { client := g.NewClient("YOUR_API_TOKEN") ctx := context.Background() result, err := client.ListWebhooks(ctx) if err != nil { panic(err) } fmt.Println("Webhooklar:", result) } ``` ## Webhookları listeleme isteğine gelen yanıt ```json title="200 OK" { "result": true, "additionalMessage": "Success", "data": [ { "id": "320a1e7f-2f1a-4c9a-a0a4-337dc5665e08", "createdAt": "2023-09-04T21:50:39.396252+03:00", "updatedAt": "2023-09-04T21:50:39.396252+03:00", "organizationID": "5f718ef7-asdsa-419f-83b4-d45d178e8341", "type": "TRACK_UPDATED", "url": "https://webhooksitesi.com", "headerName": "", "headerValue": "", "isActive": true }, { "id": "dfb68e0b-ad76-4d9b-be86-892672fdf73d", "createdAt": "2023-09-04T21:50:39.400112+03:00", "updatedAt": "2023-09-04T21:50:39.400112+03:00", "organizationID": "5f718ef7-asdsa-419f-83b4-d45d178e8341", "type": "TRANSACTION_CREATED", "url": "https://sdsds.com/webhook/geliver.php?token=asdasdsad", "headerName": "", "headerValue": "", "isActive": true }, { "id": "47402eb7-b1f2-41fd-812d-d5a1a124f7da", "createdAt": "2023-09-05T12:27:56.20988+03:00", "updatedAt": "2023-09-05T12:27:56.20988+03:00", "organizationID": "5f718ef7-asad-419f-83b4-d45d178e8341", "type": "TRACK_UPDATED", "url": "https://sdsd.online/experimental/test.php", "headerName": "", "headerValue": "", "isActive": true }, { "id": "f663f9c0-16a1-45ad-b362-a8b98fd5c132", "createdAt": "2024-08-16T14:29:51.949639+03:00", "updatedAt": "2024-08-16T14:29:51.949639+03:00", "organizationID": "5f718ef7-asds-419f-83b4-d45d178e8341", "type": "TRACK_UPDATED", "url": "https://webhoadsadok.site/39694748-asd-48d6-bc65-5f5918caddad", "headerName": "", "headerValue": "", "isActive": true } ] } ``` --- # Webhookları test etme URL: https://docs.geliver.io/docs/webhooks/test_webhook Oluşturduğunuz webhookları Webhookları test etme isteği ile tetikleyebilirsiniz. ## Webhookları test etme isteği ```bash title="cURL" curl --location --globoff --request PUT 'https://api.geliver.io/api/v1/webhook' \ --header 'Authorization: Bearer {{bearerToken}}' \ --header 'Content-Type: application/json' \ --data '{ "type": "TRACK_UPDATED", "url": "https://webhooksitesi.com" }' ``` ## Test esnasında iletilecek webhook içeriği ```json title="200 OK" { "event": "TRACK_UPDATED", "metadata": "", "data": { "id": "186af322-c9ad-407c-b798-64d464816cf4", "createdAt": "0001-01-01T00:00:00Z", "updatedAt": "0001-01-01T00:00:00Z", "amount": "0", "currency": "", "amountLocal": "0", "amountVat": "0", "amountLocalVat": "0", "amountTax": "0", "amountLocalTax": "0", "totalAmount": "0", "totalAmountLocal": "0", "amountOld": "0", "amountLocalOld": "0", "discountRate": "0", "bonusBalance": "0", "length": "0", "width": "0", "height": "0", "desi": "0", "oldDesi": "0", "distanceUnit": "", "weight": "0", "oldWeight": "0", "massUnit": "", "useWeightOfItems": false, "useDimensionsOfItems": false, "trackingStatus": { "id": "3b8ecf37-4e9d-4b73-aed5-13abcdc427e0", "createdAt": "2026-05-12T16:49:33.000194603Z", "updatedAt": "2026-05-12T16:49:33.000194653Z", "trackingStatusCode": "DELIVERED", "trackingSubStatusCode": "delivered", "statusDetails": "Teslim Edildi", "statusDate": null, "locationName": "Sarnıç Mikro", "locationLat": null, "locationLng": null, "hash": null }, "trackingNumber": "123123123", "trackingUrl": "http://xxx.com/123123123", "labelFileType": "", "hidePackageContentOnTag": false, "shipmentDate": null, "invoiceGenerated": false, "refundInvoiceID": null, "productPaymentOnDelivery": false, "orderID": null, "order": null, "senderAddress": null, "recipientAddress": null, "createReturnLabel": false, "statusCode": "", "offers": null, "acceptedOffer": null, "enableAutomation": false, "organizationShipmentID": 0, "providerBranchName": null, "providerInvoiceNo": null, "providerReceiptNo": null, "providerSerialNo": null, "hasError": false, "lastErrorMessage": null, "lastErrorCode": null, "cancelDate": "0001-01-01T00:00:00Z", "isReturned": false, "isReturn": false, "isTrackingOnly": false, "isRecipientSmsActivated": null, "packageAcceptedAt": null, "tenantId": null } } ``` --- # Webhookları silme URL: https://docs.geliver.io/docs/webhooks/delete_webhook Oluşturduğunuz webhookları, webhook silme isteğimiz ile silebilirsiniz. Bunun için webhookID'ye sahip olmalısınız. Bu bilgiyi, webhooklarınızı listeleyerek bulabilirsiniz. ## Webhookları silme isteği ```bash title="cURL" curl --location --globoff --request DELETE 'https://api.geliver.io/api/v1/webhook/webhookID' \ --header 'Authorization: Bearer {{bearerToken}}' ``` ## Webhookları silme isteğine gelen yanıt ```json title="200 OK" { "result": true, "additionalMessage": "Success", "data": { "id": "00000000-0000-0000-0000-000000000000", "createdAt": "0001-01-01T00:00:00Z", "updatedAt": "0001-01-01T00:00:00Z", "organizationID": null, "type": "", "url": "", "headerName": "", "headerValue": "", "isActive": false } } ``` --- # Kendi anlaşmanızı ekleme URL: https://docs.geliver.io/docs/providers/create_provider_account Geliver sistemimizde kendi kargo anlaşmalarınızı kullanabilirsiniz. Bunun için kargo firmalarının teknik destek sağlayan birimlerinden sağlayıcı servis bilgilerini edinmelisiniz. Bu işlemi Geliver paneli üzerinden de gerçekleştirebilirsiniz. Bu alanları eksiksiz gönderin version, username, password, parameters ve isC2C alanlarından biri eksik gönderilirse istek sunucu hatasıyla sonuçlanabilir (anlamlı bir doğrulama mesajı yerine beklenmedik bir hata alırsınız). parameters için gönderecek bir değeriniz yoksa en azından boş obje ({}) gönderin. ## Kendi anlaşmanızı ekleme isteği ```bash title="cURL" curl --location --globoff 'https://api.geliver.io/api/v1/provideraccounts' \ --header 'Authorization: Bearer {{bearerToken}}' \ --header 'Content-Type: application/json' \ --data '{ "username": "testKargo", "password": "sifreKargo", "name": "Kargo Hesabı", "providerCode": "SURAT", "version": 0, "isActive": false, "parameters": {}, "isC2C": false, "isPublic": false, "sharable": false, "isDynamicPrice": false }' ``` #### SDK Kod Örnekleri ```javascript title="geliver (npm)" import { GeliverClient } from 'geliver'; const client = new GeliverClient('YOUR_API_TOKEN'); const account = await client.providers.create({ username: 'testKargo', password: 'sifreKargo', name: 'Kargo Hesabı', providerCode: 'SURAT', version: 0, isActive: true, isC2C: false, isPublic: false, sharable: false, isDynamicPrice: false }); console.log('Provider Account ID:', account.id); ``` ```php title="geliver/geliver-php (Composer)" providers->create([ 'username' => 'testKargo', 'password' => 'sifreKargo', 'name' => 'Kargo Hesabı', 'providerCode' => 'SURAT', 'version' => 0, 'isActive' => true, 'isC2C' => false, 'isPublic' => false, 'sharable' => false, 'isDynamicPrice' => false ]); echo 'Provider Account ID: ' . $account->id . PHP_EOL; ``` ```python title="geliver (pip)" from geliver import GeliverClient client = GeliverClient('YOUR_API_TOKEN') account = client.create_provider_account( username='testKargo', password='sifreKargo', name='Kargo Hesabı', provider_code='SURAT', version=0, is_active=True, is_c2c=False, is_public=False, sharable=False, is_dynamic_price=False ) print('Provider Account ID:', account.id) ``` ```csharp title="Geliver (NuGet)" using Geliver; var client = new GeliverClient("YOUR_API_TOKEN"); var account = await client.Providers.CreateAsync(new CreateProviderAccountRequest { Username = "testKargo", Password = "sifreKargo", Name = "Kargo Hesabı", ProviderCode = "SURAT", Version = 0, IsActive = true, IsC2C = false, IsPublic = false, Sharable = false, IsDynamicPrice = false }); Console.WriteLine($"Provider Account ID: {account.Id}"); ``` ```java title="geliver-java (Maven)" import com.geliver.GeliverClient; import com.geliver.models.ProviderAccount; import com.geliver.requests.CreateProviderAccountRequest; GeliverClient client = new GeliverClient("YOUR_API_TOKEN"); CreateProviderAccountRequest request = new CreateProviderAccountRequest() .setUsername("testKargo") .setPassword("sifreKargo") .setName("Kargo Hesabı") .setProviderCode("SURAT") .setVersion(0) .setIsActive(true) .setIsC2C(false) .setIsPublic(false) .setSharable(false) .setIsDynamicPrice(false); ProviderAccount account = client.providers().create(request); System.out.println("Provider Account ID: " + account.getId()); ``` ```go title="geliver-go (go get)" package main import ( "context" "fmt" g "github.com/GeliverApp/geliver-go/pkg/geliver" ) func main() { client := g.NewClient("YOUR_API_TOKEN") ctx := context.Background() account, err := client.CreateProviderAccount(ctx, g.ProviderAccountRequest{ Username: "testKargo", Password: "sifreKargo", Name: "Kargo Hesabı", ProviderCode: "SURAT", Version: 0, IsActive: true, IsC2C: false, IsPublic: false, Sharable: false, IsDynamicPrice: false, }) if err != nil { panic(err) } fmt.Println("Provider Account ID:", account.ID) } ``` #### İstek içerisindeki alanların açıklamaları usernamestringzorunlu Kullanıcı adı passwordstringzorunlu Şifre namestring Hesap adı. Boş bırakılırsa username değeri kullanılır. providerCodestringzorunlu Sağlayıcı kodu versionnumberzorunlu Sürüm isActiveboolean Aktif durumu. Hesap oluşturma sırasında etkisi yoktur. parametersobjectzorunlu Sağlayıcıya özel parametreler. Göndereceğiniz bir değer yoksa boş obje ({}) olarak gönderin; alanı tamamen atlamak hataya yol açabilir. isC2Cbooleanzorunlu Bireyden bireye (C2C) bir anlaşma olup olmadığını belirtir. isPublicboolean Halka açık mı? sharableboolean Paylaşılabilir mi? isDynamicPriceboolean Dinamik fiyat mı? ## Kendi anlaşmanızı ekleme isteğine gelen yanıt ```json title="200 OK" { "result": true, "data": { "id": "1498ccac-f318-4f55-9546-53721d858c7f", "createdAt": "2025-03-07T17:15:37.553351057Z", "updatedAt": "2025-03-07T17:15:37.553351057Z", "providerCode": "SURAT", "username": "testKargo", "name": "Kargo Hesabı", "isActive": false, "parameters": {}, "version": 0, "isC2C": false, "integrationType": "", "labelFileType": "", "sharable": false, "isPublic": false, "isDynamicPrice": false, "priceUpdatedAt": "0001-01-01T00:00:00Z" } } ``` --- # Kendi anlaşmalarınızı listeleme URL: https://docs.geliver.io/docs/providers/list_provider_accounts Geliver üzerinde yer alan kargo anlaşmalarını listelemek için aşağıdaki isteği kullanabilirsiniz. ## Kendi anlaşmalarınızı listeleme isteği ```bash title="cURL" curl --location --globoff 'https://api.geliver.io/api/v1/provideraccounts' \ --header 'Authorization: Bearer {{bearerToken}}' ``` #### SDK Kod Örnekleri ```javascript title="geliver (npm)" import { GeliverClient } from 'geliver'; const client = new GeliverClient('YOUR_API_TOKEN'); const accounts = await client.providers.list(); accounts.forEach(acc => console.log(acc.id, acc.name, acc.providerCode)); ``` ```php title="geliver/geliver-php (Composer)" providers->list(); foreach ($accounts as $acc) { echo $acc->id . ' - ' . $acc->name . ' - ' . $acc->providerCode . PHP_EOL; } ``` ```python title="geliver (pip)" from geliver import GeliverClient client = GeliverClient('YOUR_API_TOKEN') accounts = client.list_provider_accounts() for acc in accounts: print(acc.id, acc.name, acc.provider_code) ``` ```csharp title="Geliver (NuGet)" using Geliver; var client = new GeliverClient("YOUR_API_TOKEN"); var accounts = await client.Providers.ListAsync(); foreach (var acc in accounts) { Console.WriteLine($"{acc.Id} - {acc.Name} - {acc.ProviderCode}"); } ``` ```java title="geliver-java (Maven)" import com.geliver.GeliverClient; import com.geliver.models.ProviderAccount; import java.util.List; GeliverClient client = new GeliverClient("YOUR_API_TOKEN"); List accounts = client.providers().list(); for (ProviderAccount acc : accounts) { System.out.println(acc.getId() + " - " + acc.getName() + " - " + acc.getProviderCode()); } ``` ```go title="geliver-go (go get)" package main import ( "context" "fmt" g "github.com/GeliverApp/geliver-go/pkg/geliver" ) func main() { client := g.NewClient("YOUR_API_TOKEN") ctx := context.Background() accounts, err := client.ListProviderAccounts(ctx) if err != nil { panic(err) } for _, acc := range accounts { fmt.Println(acc.ID, acc.Name, acc.ProviderCode) } } ``` ## Kendi anlaşmalarınızı ekleme isteğine gelen yanıt ```json title="200 OK" { "result": true, "additionalMessage": "Success", "data": [ { "id": "1498ccac-f318-4f55-9546-53721d858c7f", "createdAt": "2025-03-07T20:15:37.553351+03:00", "updatedAt": "2025-03-07T20:15:37.553351+03:00", "providerCode": "SURAT", "username": "testKargo", "name": "Kargo Hesabı", "isActive": false, "parameters": {}, "version": 0, "isC2C": false, "integrationType": "", "labelFileType": "PDF", "sharable": false, "isPublic": false, "isDynamicPrice": false, "priceUpdatedAt": "0001-01-01T02:30:17+02:30" }, { "id": "13344ee2-2ae8-4f2c-84df-219541adcd24", "createdAt": "2024-07-12T15:42:26.421156+03:00", "updatedAt": "2024-07-12T15:42:26.421156+03:00", "providerCode": "PTT", "username": "testKargo2", "name": "FRD", "isActive": false, "parameters": {}, "version": 0, "isC2C": false, "integrationType": "", "labelFileType": "PDF", "sharable": true, "isPublic": true, "isDynamicPrice": true, "priceUpdatedAt": "0001-01-01T02:30:17+02:30" } ] } ``` --- # Kendi anlaşmanızı silme URL: https://docs.geliver.io/docs/providers/delete_provider_account Geliver sistemimizde yer alan kargo anlaşmalarınızı silmek için aşağıdaki isteği kullanabilirsiniz. ## Kendi anlaşmanızı silme isteği ```js title="cURL" curl --location --globoff --request DELETE 'https://api.geliver.io/api/v1/provideraccounts/{{provideraccountID}}?isDeleteAccountConnection=true' \ --header 'Authorization: Bearer {{bearerToken}}' ``` ## Kendi anlaşmanızı silme isteğine gelen yanıt ```json title="200 OK" { "result": true, "data": { "id": "00000000-0000-0000-0000-000000000000", "createdAt": "0001-01-01T00:00:00Z", "updatedAt": "0001-01-01T00:00:00Z", "providerCode": null, "username": "", "name": "", "isActive": false, "parameters": null, "version": 0, "isC2C": false, "integrationType": "", "labelFileType": "", "sharable": false, "isPublic": false, "isDynamicPrice": false, "priceUpdatedAt": "0001-01-01T00:00:00Z" } }``` ``` --- # Hata Kodları URL: https://docs.geliver.io/docs/error_codes Geliver API, başarısız bir istekte result: false ile birlikte aşağıdaki hata kodlarından birini döner. Bu sayfa, tüm uçlarda karşılaşabileceğiniz hata kodlarının kapsamlı listesidir; ilgili istek sayfalarında da bağlama özel bir alt küme yer alır. ## Gönderi Oluşturma Hataları | Hata Kodu | 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ı. Adresin var olduğunu addresses endpoint'i ile kontrol edin. | | E1056 | Alıcı adresi oluşturulamadı. | | E1057 | Sipariş oluşturulamadı. | | E1058 | Gönderi kaydedilemedi. | ## Alıcı Bilgisi Doğrulama Hataları | Hata Kodu | Açıklama | | --- | --- | | E1129 | Alıcı adresi boş. | | E1130 | Alıcı şehri boş. | | E1131 | Alıcı ülkesi boş. | | E1132 | Alıcı ilçesi boş. | | E1133 | Alıcı ismi boş. | | E1134 | Alıcı telefon numarası boş. | | E1136 | Alıcı e-posta adresi boş. | ## Gönderi İşleme Hataları | Hata Kodu | Açıklama | | --- | --- | | E1085 | Hatalı istek. | | E1055 | Bu işlemi yapmaya yetkiniz yok. | | E1064 | Teklif bulunamadı. | | E1051 | Gönderi bulunamadı. | | E1065 | Bu gönderi için daha önce bir teklif kabul edilmiş. | | E1066 | Organizasyonun yeterli bakiyesi yok. | | E1067 | Ürün bilgisi alınamadı. | | E1068 | Gönderici adresi (senderAddressID) bulunamadı. Adresin var olduğunu addresses endpoint'i ile kontrol edin. | | E1071 | Gönderi barkodu oluşturulamadı. | | E1072 | Kargo etiketi oluşturulamadı. | | E1073 | Gönderi güncellenemedi. | | E1086 | İşlem oluşturulamadı. |