Webhooks

Bu makalede, uygulamanızı Labs ile entegre etmek için Webhook kurulumunun nasıl yapılacağı ve Webhook bildirimlerinin çalışma mantığı anlatılmıştır.

Webhook bildirimleri aracılığı ile Labs platformundaki etkinlerden anında haberdar olabilirsiniz. Örneğin yeni bir sipariş oluşturulduğunda, kendi uygulamanıza yeni oluşturulan siparişin bilgilerini saniyeler içerisinde gönderilmesini sağlayabilirsiniz.

Kurulum

Yeni bir webhook tanımlaması yapabilmek için öncelikle hesabınızın Webhook özelliğini aktif etmeniz gerekmektedir. Webhook API'yı aktif hale getirebilmek için, Labs hesabınızın sağ üstte yer alan menüsünden Webhooks Ayarları sayfasına ulaşabilirsiniz.

Ardından sayfanın sağ üst köşesinde bulunan buton yardımıyla Webhook servisini aktif ediniz.

Bir webhook bildirimi için, uygulamanızda Labs'ın istek gönderebileceği bir URL'e sahip olmanız gerekir. Her yeni bir webhook bildiriminde, Labs uygulaması, sizin uygulamanıza bir POST isteği gönderecektir.

Kimlik Doğrulama

Uygulamanıza gönderilen isteklerin doğrulanmasını isteyebilirsiniz. Bunun için Basic Authentication ve Bearer Token kimlik doğrulaması yöntemlerini kullanabilirsiniz. Eğer isterseniz, doğrulama olmadan istek gönderilmesini de sağlayabilirsiniz.

Bunun için Webhook Ayarları sayfasındaki Auth Header kısmından doğrulama yönteminizi seçiniz ve ardından uygulamanıza ait kimlik bilgilerini giriniz.

Webhook bildirimi almak istediğiniz scope'u seçerek sadece ihtiyacınız olan bildirimleri almayı tercih edebilirsiniz.

Tüm bu işlemleri tamamladığınızda, artık Labs platformundan webhook bildirimleri almaya hazırsınız demektir. Aşağıdaki bölümde, uygulamanıza bir webhook bildirimi yapıldığında gönderilen isteğin nasıl bir veri içerdiğini gözlemleyebilirsiniz.

Payload İçeriği

Uygulamanız Labs platformundan bir webhook isteği aldığında buna hangi olayın neden olduğunu görmek için type özelliğini kontrol edebilirsiniz. type parametresi size gönderilen payload'un türü hakkında bir bilgi verecektir (örneğin sipariş, ürün vb.).

Örnek webhook isteği

{
  "type": "order.created",
  "payload": {
    "id": "WAz8eIbvDR60rouK"
    // ...
  }
}

Yukarıdaki örnekte yeni bir sipariş alındığında gönderilen type'ı görebilirsiniz.


Etkinlik Türleri

Yeni Sipariş Bildirimleri

  • Name
    order.created
    Type
    Description

    Yeni bir sipariş oluşturulduğunda iletilir.

  • Name
    order.updated
    Type
    Description

    Sipariş güncellendiğinde iletilir.

Parametreler

  • Name
    type* zorunlu
    Type
    string
    Description

    Ürün barkodu

  • Name
    payload* zorunlu
    Type
    array
    Description

    Sipariş içeriği bilgisidir.

  • Name
    payload.id* zorunlu
    Type
    integer
    Description

    Labs sipariş id bilgisidir.

  • Name
    payload.packageId* opsiyonel* nullable
    Type
    string
    Description

    Platform paket id bilgisidir.

  • Name
    payload.managerId* opsiyonel* nullable
    Type
    integer
    Description

    Labs plasiyer kullanıcı id bilgisidir.

  • Name
    payload.currency* zorunlu
    Type
    string
    Description

    Sipariş Döviz tipi bilgisidir. Kullanılabilir Değerler : TRY, USD, EUR

  • Name
    payload.source* zorunlu
    Type
    string
    Description

    Platform bilgisidir. Kullanılabilir Değerler : WEB, WHOLESALE, TRENDYOL, HEPSIBURADA, AMAZON, N11, CICEKSEPETI, FLO, GETIR, PAZARAMA, TICIMAX,SHOPIFY, IKAS, TEKNOSA, PTTAVM, IDEFIX, ALISGIDIS

  • Name
    payload.orderStatus* zorunlu
    Type
    string
    Description

    Sipariş statü bilgisi. Kullanılabilir Değerler :

    • PENDING_APPROVE => Onay Bekliyor,
    • CREATED => Sipariş Oluşturuldu,
    • PENDING => Ödeme Bekliyor,
    • PACKED => Paketlendi,
    • PREPARING => Sipariş Hazırlanıyor,
    • IN_PROCUREMENT => Tedarik Sürecinde,
    • CANCELLED => İptal Edildi,
    • IN_RETURN => İade Sürecinde,
    • RETURNED => İade Edildi,
    • PARTIALLY_REFUND => Kısmi İade Yapıldı,
    • COMPLETED => Sipariş Teslim Edildi,
    • SHIPPED => Kargoya Verildi,
    • WAITING_FOR_PAYMENT => Ödeme Onayı Bekleniyor
  • Name
    payload.marketplaceId* opsiyonel
    Type
    string
    Description

    Platform sipariş id bilgisidir.

  • Name
    payload.marketplaceOrderNumber* opsiyonel
    Type
    string
    Description

    Platform sipariş numarası bilgisidir.

  • Name
    payload.managerNote* opsiyonel* nullable
    Type
    string
    Description

    Platform müşteri ya da plasiyer notu bilgisidir.

  • Name
    payload.createdAt* zorunlu
    Type
    date
    Description

    Labs sipariş oluşturulma tarihi bilgisidir.

  • Name
    payload.isTransfered* opsiyonel
    Type
    boolean
    Description

    ERP aktarılma bilgisidir.

  • Name
    payload.isCorporate* opsiyonel
    Type
    boolean
    Description

    Müşteri tipi bilgisidir. Bireysel ya da kurumsal olma durumudur. 1 gelmesi durumu kurumsal olma durumudur.

  • Name
    payload.shipmentAddress* opsiyonel* nullable
    Type
    array
    Description

    Platform kargo adres bilgisidir.

  • Name
    payload.shipmentAddress.addressName* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo adres adı bilgisidir.

  • Name
    payload.shipmentAddress.invoiceType* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo adres fatura tipi bilgisidir.

  • Name
    payload.shipmentAddress.identifier* opsiyonel* nullable
    Type
    array
    Description

    Platform kargo adres müşteri bilgisidir.

  • Name
    payload.shipmentAddress.identifier.customerName* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo adres müşteri adı bilgisidir.

  • Name
    payload.shipmentAddress.identifier.phoneNumber* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo adres müşteri telefon numarası bilgisidir.

  • Name
    payload.shipmentAddress.identifier.identity* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo adres müşteri kimlik numarası bilgisidir.

  • Name
    payload.shipmentAddress.addressDetail* opsiyonel* nullable
    Type
    array
    Description

    Platform kargo adres detay bilgisidir.

  • Name
    payload.shipmentAddress.addressDetail.countryCode* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo adres ülke kodu bilgisidir.

  • Name
    payload.shipmentAddress.addressDetail.city* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo adres il bilgisidir.

  • Name
    payload.shipmentAddress.addressDetail.district* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo adres ilçe bilgisidir.

  • Name
    payload.shipmentAddress.addressDetail.town* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo adres mahalle bilgisidir.

  • Name
    payload.shipmentAddress.addressDetail.state* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo adres durum bilgisidir.

  • Name
    payload.shipmentAddress.addressDetail.address* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo adres detay bilgisidir.

  • Name
    payload.shipmentAddress.addressDetail.postalCode* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo adres posta kodu bilgisidir.

  • Name
    payload.shipmentAddress.isDefault* nullable
    Type
    integer
    Description

    Platform kargo adres default bilgisidir.

  • Name
    payload.shipmentAddress.company* opsiyonel* nullable
    Type
    array
    Description

    Platform kargo adres şirket bilgisidir.

  • Name
    payload.shipmentAddress.company.companyName* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo adres şirket adı bilgisidir.

  • Name
    payload.shipmentAddress.company.taxNumber* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo adres şirket vergi numarası bilgisidir.

  • Name
    payload.shipmentAddress.company.taxOffice* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo adres şirket vergi dairesi bilgisidir.

  • Name
    payload.invoiceAddress* opsiyonel* nullable
    Type
    array
    Description

    Platform fatura adres bilgisidir.

  • Name
    payload.invoiceAddress.addressName* opsiyonel* nullable
    Type
    string
    Description

    Platform fatura adres adı bilgisidir.

  • Name
    payload.invoiceAddress.invoiceType* opsiyonel* nullable
    Type
    string
    Description

    Platform fatura adres fatura tipi bilgisidir.

  • Name
    payload.invoiceAddress.identifier* opsiyonel* nullable
    Type
    array
    Description

    Platform fatura adres müşteri bilgisidir.

  • Name
    payload.invoiceAddress.identifier.customerName* opsiyonel* nullable
    Type
    string
    Description

    Platform fatura adres müşteri adı bilgisidir.

  • Name
    payload.invoiceAddress.identifier.phoneNumber* opsiyonel* nullable
    Type
    string
    Description

    Platform fatura adres müşteri telefon numarası bilgisidir.

  • Name
    payload.invoiceAddress.identifier.identity* opsiyonel* nullable
    Type
    string
    Description

    Platform fatura adres müşteri kimlik numarası bilgisidir.

  • Name
    payload.invoiceAddress.addressDetail* opsiyonel* nullable
    Type
    array
    Description

    Platform fatura adres detay bilgisidir.

  • Name
    payload.invoiceAddress.addressDetail.countryCode* opsiyonel* nullable
    Type
    string
    Description

    Platform fatura adres ülke kodu bilgisidir.

  • Name
    payload.invoiceAddress.addressDetail.city* opsiyonel* nullable
    Type
    string
    Description

    Platform fatura adres il bilgisidir.

  • Name
    payload.invoiceAddress.addressDetail.district* opsiyonel* nullable
    Type
    string
    Description

    Platform fatura adres ilçe bilgisidir.

  • Name
    payload.invoiceAddress.addressDetail.town* opsiyonel* nullable
    Type
    string
    Description

    Platform fatura adres mahalle bilgisidir.

  • Name
    payload.invoiceAddress.addressDetail.state* opsiyonel* nullable
    Type
    string
    Description

    Platform fatura adres durum bilgisidir.

  • Name
    payload.invoiceAddress.addressDetail.address* opsiyonel* nullable
    Type
    string
    Description

    Platform fatura adres detay bilgisidir.

  • Name
    payload.invoiceAddress.addressDetail.postalCode* opsiyonel* nullable
    Type
    string
    Description

    Platform fatura adres posta kodu bilgisidir.

  • Name
    payload.invoiceAddress.isDefault* nullable
    Type
    integer
    Description

    Platform fatura adres default bilgisidir.

  • Name
    payload.invoiceAddress.company* opsiyonel* nullable
    Type
    array
    Description

    Platform fatura adres şirket bilgisidir.

  • Name
    payload.invoiceAddress.company.companyName* opsiyonel* nullable
    Type
    string
    Description

    Platform fatura adres şirket adı bilgisidir.

  • Name
    payload.invoiceAddress.company.taxNumber* opsiyonel* nullable
    Type
    string
    Description

    Platform fatura adres şirket vergi numarası bilgisidir.

  • Name
    payload.invoiceAddress.company.taxOffice* opsiyonel* nullable
    Type
    string
    Description

    Platform fatura adres şirket vergi dairesi bilgisidir.

  • Name
    payload.warehouseId* zorunlu
    Type
    integer
    Description

    Labs depo id bilgisidir.

  • Name
    payload.totalProductQty* zorunlu
    Type
    integer
    Description

    Sipariş toplam ürün bilgisidir.

  • Name
    payload.customer* zorunlu
    Type
    array
    Description

    Platform müşteri bilgisidir.

  • Name
    payload.customer.custumerName* zorunlu
    Type
    string
    Description

    Platform müşteri adı bilgisidir.

  • Name
    payload.customer.custumerEmail* zorunlu
    Type
    string
    Description

    Platform müşteri email bilgisidir.

  • Name
    payload.customer.custumerPhoneNumber* opsiyonel* nullable
    Type
    string
    Description

    Platform müşteri telefon numarası bilgisidir.

  • Name
    payload.customer.custumerIdentity* zorunlu
    Type
    string
    Description

    Platform müşteri kimlik numarası bilgisidir.

  • Name
    payload.payment* opsiyonel* nullable
    Type
    array
    Description

    Sipariş ödeme bilgisidir.

  • Name
    payload.payment.paymentId* opsiyonel* nullable
    Type
    integer
    Description

    Sipariş ödeme id bilgisidir.

  • Name
    payload.payment.paymentMethod* opsiyonel* nullable
    Type
    string
    Description

    Sipariş ödeme metodu bilgisidir.

  • Name
    payload.payment.paymentStatus* opsiyonel* nullable
    Type
    string
    Description

    Sipariş ödeme statu bilgisidir.

  • Name
    payload.shipment* opsiyonel* nullable
    Type
    array
    Description

    Platform kargo bilgisidir.

  • Name
    payload.shipment.dispatchStatus* opsiyonel* nullable
    Type
    boolean
    Description

    Platform kargo teslimat statü bilgisidir.

  • Name
    payload.shipment.dispatchDescription* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo teslimat açıklama bilgisidir.

  • Name
    payload.shipment.cargoCompany* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo firma bilgisidir. Kullanılabilir Değerler :

    • ARAS => Aras Kargo
    • HJ => Hepsi Jet
    • HX => Hepsi Jet
    • KG => Kolay Gelsin
    • MNG => Mng Kargo
    • TEX => Trendyol Express
    • TK => Trendyol Kurye
    • YK => Yurtiçi Kargo
    • PTS => PTS Kargo
    • UPS => UPS Kargo
    • SRT => Sürat Kargo
    • PTT => PTT Kargo
    • KARGONOMI => KARGONOMİ
    • IN-WRHOUSE => Depodan Teslim
    • STORE => Mağazadan Teslim
    • IN-STORE => Mağazadan Teslim
    • COURIER => Kurye
    • GETIR => Getir Kurye
  • Name
    payload.shipment.barcodeId* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo barkod bilgisidir.

  • Name
    payload.shipment.trackingId* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo takip no bilgisidir.

  • Name
    payload.shipment.trackingUrl* opsiyonel* nullable
    Type
    string
    Description

    Platform kargo takip url bilgisidir.

  • Name
    payload.shipment.shippingFee* opsiyonel* nullable
    Type
    float
    Description

    Platform kargo ücreti bilgisidir.

  • Name
    payload.lines* zorunlu
    Type
    array
    Description

    Sipariş ürün bilgisidir.

  • Name
    payload.lines.id* zorunlu
    Type
    integer
    Description

    Ürünün labs id bilgisidir.

  • Name
    payload.lines.barcodeId* nullable
    Type
    string
    Description

    Ürünün barkod bilgisidir.

  • Name
    payload.lines.status* zorunlu
    Type
    string
    Description

    Ürünün statü bilgisidir. Kullanılabilir Değerler :

    • COMPLETED => Tamamlandı
    • UNCOMPLETED => Tamamlanamadı
    • CANCELLED => İptal
    • IN_RETURN => İade Sürecinde
    • RETURNED => İade Edildi
  • Name
    payload.lines.qty* zorunlu
    Type
    float
    Description

    Ürünün adet bilgisidir.

  • Name
    payload.lines.requestedQty* nullable
    Type
    float
    Description

    Ürünün adet bilgisidir.

  • Name
    payload.lines.cancelledQty* nullable
    Type
    float
    Description

    Ürünün iptal edilen adet bilgisidir.

  • Name
    payload.lines.price* zorunlu
    Type
    string
    Description

    Ürünün birim fiyat bilgisidir.

  • Name
    payload.lines.currency* zorunlu
    Type
    string
    Description

    Siparişin döviz tipi bilgisidir.

  • Name
    payload.lines.modelId* nullable
    Type
    string
    Description

    Ürünün ana kod bilgisidir.

  • Name
    payload.lines.attributes* opsiyonel* nullable
    Type
    array
    Description

    Ürünün özellik bilgisidir.

  • Name
    payload.lines.attributes.attributeType* opsiyonel* nullable
    Type
    string
    Description

    Ürünün özellik tip bilgisidir.

  • Name
    payload.lines.attributes.attributeValue* opsiyonel* nullable
    Type
    string
    Description

    Ürünün özellik değer kodu bilgisidir.

  • Name
    payload.lines.attributes.attributeLabel* opsiyonel* nullable
    Type
    string
    Description

    Ürünün özellik değer bilgisidir.

  • Name
    payload.lines.lineDescription* opsiyonel* nullable
    Type
    string
    Description

    Ürünü tanımlayan başlık ya da açıklama bilgisidir.

  • Name
    payload.lines.thumbnail* opsiyonel* nullable
    Type
    string
    Description

    Ürünün görsel url bilgisidir.

{
  "type": "order.created",
  "payload": {
     "id": 1163207,
     "packageId": "1315156650",
     "managerId": null,
     "currency": "TRY",
     "source": "TRENDYOL",
     "orderStatus": "IN_RETURN",
     "marketplaceId": "1802105722",
     "managerNote": null,
     "createdAt": "13/01/2023 10:31:06",
     "isTransfered": 1,
     "isCorporate": false,
     "shipmentAddress": {
         "addressName": "Otomatik Oluşturulan",
         "invoiceType": "personal",
         "identifier": {
             "customerName": "Hatice Kıran",
             "phoneNumber": "",
             "identity": 11111111111
         },
         "addressDetail": {
             "countryCode": "TR",
             "city": "Niğde",
             "district": "Merkez",
             "town": "",
             "state": "",
             "address": "Kültür Mah 123 Sk. No 55",
             "postalCode": ""
         },
         "isDefault": 1,
         "company": {
             "companyName": "",
             "taxNumber": "",
             "taxOffice": ""
         }
     },
     "invoiceAddress": {
         "addressName": "Otomatik Oluşturulan",
         "invoiceType": "personal",
         "identifier": {
             "customerName": "Hatice Özişçi",
             "phoneNumber": "",
             "identity": "11111111111"
         },
         "addressDetail": {
             "countryCode": "TR",
             "city": "Niğde",
             "district": "Merkez",
             "town": "",
             "state": "",
             "address": "Kültür Mah 123 Sk. No 55",
             "postalCode": ""
         },
         "isDefault": 1,
         "company": {
             "companyName": "",
             "taxNumber": "",
             "taxOffice": ""
         }
     },
     "warehouseId": 1,
     "totalProductQty": 4,
     "customer": {
         "custumerName": "Hatice Kıran",
         "custumerEmail": "example@mail.com",
         "custumerPhoneNumber": "",
         "custumerIdentity": "11111111111"
     },
     "payment": {
         "paymentId": null,
         "paymentMethod": "MARKETPLACE",
         "paymentStatus": "SUCCESS"
     },
     "shipment": {
         "dispatchStatus": false,
         "dispatchDescription": "",
         "cargoCompany": "TEX",
         "barcodeId": "7260006545259384",
         "trackingId": "3035870476411",
         "trackingUrl": "https://kargotakip.mngkargo.com.tr/?takipNo=586349659300",
         "shippingFee": 0
     },
     "lines": [
         {
             "id": 5969779,
             "barcodeId": "8682417087434",
             "status": "RETURNED",
             "qty": "1.00",
             "requestedQty": "1.00",
             "cancelledQty": 0,
             "price": "282.1000",
             "currency": "TRY",
             "modelId": "15135",
             "attributes": [
                 {
                     "attributeType": "size",
                     "attributeValue": "M",
                     "attributeLabel": "M"
                 },
                 {
                     "attributeType": "color",
                     "attributeValue": "R02_002",
                     "attributeLabel": "GriMelanj"
                 }
             ],
             "lineDescription": "Erkek Dokuma Sporcu Eşofmant Altı 15135, M",
             "thumbnail": "https://static-labs.s3.eu-central-1.amazonaws.com/products/1/15135/small/8682417087434_1.JPG"
         },
         {
             "id": 5969783,
             "barcodeId": "8682417056102",
             "status": "COMPLETED",
             "qty": "1.00",
             "requestedQty": "1.00",
             "cancelledQty": 0,
             "price": "282.1000",
             "currency": "TRY",
             "modelId": "15135",
             "attributes": [
                 {
                     "attributeType": "size",
                     "attributeValue": "L",
                     "attributeLabel": "L"
                 },
                 {
                     "attributeType": "color",
                     "attributeValue": "R11_001",
                     "attributeLabel": "Siyah"
                 }
             ],
             "lineDescription": "Erkek Siyah Dokuma Sporcu Eşofmant Altı 15135, L",
             "thumbnail": "https://static-labs.s3.eu-central-1.amazonaws.com/products/1/15135/small/8682417056096_1.JPG"
         }
     ]
  }
}