Etsy API · Webhook

Etsy webhook bildirimleri: olaylar, imza doğrulama ve yeniden deneme

Etsy, onaylı uygulamalara sipariş, ilan ve envanter olaylarını webhook ile bildirir; örneğin sipariş ödendiğinde order.paid gelir. Bildirim yalnız olay türünü, mağaza kimliğini ve güncel veriyi okuyacağınız adresi taşır. Her istek HMAC-SHA256 ile imzalanır ve imza doğrulanmadan işlenmemelidir. Abonelikler geliştirici portalındaki webhook ekranından kurulur.

Olaylar

AlanOlayNe zaman gelir
Siparişorder.paidSipariş ödendiğinde
Siparişorder.canceledSatıcı iptal başlattığında
Siparişorder.shippedSiparişe kargo bilgisi eklendiğinde
Siparişorder.deliveredSipariş teslim edildi olarak işaretlendiğinde
İlanlisting.created, listing.updated, listing.deletedİlan açıldığında, başlık, görsel, durum gibi alanlar değiştiğinde, silindiğinde
Envanterinventory.created, inventory.updated, inventory.deletedÜrün eklendiğinde; fiyat, SKU, durum ya da işlem profili değiştiğinde; silindiğinde
Envanterinventory.out_of_stockBir ürünün adedi 0'a indiğinde

Etsy yeni olayları GitHub'daki open-api deposunun duyuru alanında ilan eder. Stok senkronu yapan bir sistem için inventory.out_of_stock ve order.paid en işe yarayan iki olaydır.

Bildirim gövdesi

Tüm bildirimler event_type, resource_url ve shop_id alanlarını taşır. İlan olaylarında listing_id, envanter olaylarında listing_id ve product_id de bulunur. resource_url, güncel veriyi almak için çağıracağınız hazır adrestir: sipariş olayında receipt, ilan olayında ilan, envanter olayında ürün ucunu gösterir.

Bildirimin kendisi veri taşımaz. Bu yüzden her bildirimde resource_url çağrılır; bu da istek kotasından düşer.

İmza doğrulama

Her istekte üç başlık gelir: webhook-id, webhook-timestamp ve webhook-signature (Etsy: Webhooks).

  • İmzalanan metni kurun: webhook-id, nokta, webhook-timestamp, nokta ve ham gövde. Gövdeyi JSON olarak çözmeden önceki hâliyle kullanın.
  • Portaldaki imza anahtarının başındaki whsec_ önekini atıp kalanını Base64 ile çözün.
  • Bu anahtarla HMAC-SHA256 hesaplayıp sonucu Base64 ile kodlayın.
  • webhook-signature başlığındaki değerlerden biri sizin sonucunuzla eşleşmiyorsa isteği reddedin.
  • Tekrar saldırılarına karşı webhook-timestamp ile sunucu saatiniz arasındaki farkı ölçün; Etsy örneği 300 saniyeden eskiyi reddeder.

Yeniden deneme ve izleme

Uç adresiniz bildirimi kabul etmezse Etsy artan aralıklarla yeniden dener:

DenemeBekleme
1Hemen
25 saniye
35 dakika
430 dakika
52 saat
65 saat
7 ve 810'ar saat

Portalda teslim istatistikleri, her denemenin sonucu ve gelen gövdeler görünür. Başarısız mesajlar elle ya da belirli bir tarihten itibaren toplu olarak yeniden gönderilebilir. Test sekmesi, imza doğrulamanızı canlı veriye dokunmadan denemenizi sağlar.

Sık sorulanlar

Etsy webhook kimlere açık?

Etsy belgesine göre webhook hem ticari hem kişisel uygulamalarda kullanılabilir. Abonelik için geçerli bir OAuth token'ı ve Etsy'nin POST isteği gönderebileceği herkese açık bir adres gerekir.

Etsy webhook bildirimi sipariş ayrıntısını taşır mı?

Hayır. Bildirim olay türünü, shop_id'yi ve resource_url'yi taşır. Ayrıntı için resource_url çağrılır.

Aynı bildirim iki kez gelirse ne yapmalı?

webhook-id değeri yeniden denemelerde de aynı kalır. Bu değeri kaydedip daha önce işlenmiş bildirimi atlayın.

Adresim kapalıyken gelen bildirimler kaybolur mu?

Hemen kaybolmaz. Etsy sekiz denemeye kadar artan aralıklarla yeniden dener. Başarısız mesajları portaldan tek tek ya da bir tarihten itibaren toplu olarak yeniden gönderebilirsiniz.

Kaynaklar

İlgili Etsy API konuları

Son güncelleme: 27.10.2026 · Etsy API rehberinin tamamı

Etsy entegrasyonunu kod yazmadan kurun

Saystok bu API'lerle stok, sipariş ve fiyatı sizin yerinize eşitler. 30 gün ücretsiz.