Görünüm
Gelen uçlar
Webhook'un ters yönü: siz bize haber verirsiniz.
POST
/webhooks/in/{slug}İmza ya da jetonAdresi ve doğrulama şemasını Veni belirler; slug size özeldir. Uç başına ayrı bir slug verilir, böylece biri sızarsa yalnız o uç kapatılır. Slug gizli bir şey değildir; asıl savunma imzadır.
Doğrulama
İki şemadan biri kullanılır; hangisi olduğu uç açılırken kararlaştırılır:
| Şema | Nasıl |
|---|---|
hmac_sha256 | Paylaşılan sırla hesaplanmış imza, anlaşılan başlıkta |
bearer | Sabit jeton, Authorization başlığında |
Bu ikisini de desteklemeyen bir sağlayıcı için uç açılmaz; sağlayıcıya özel şema yazılmaz.
Doğrulama önce, kayıt sonra yapılır: doğrulanmamış bir istek veritabanına satır yazmaz.
Tekillik
Aynı olayı iki kez göndermeniz zararsızdır. Tekillik (kaynak, olay kimliği) çiftiyle kurulur. Gövdenizde bir olay kimliği yoksa gövdenin SHA-256 özeti kullanılır — yani aynı gövde iki kez işlenmez.
Yanıt kodları
| Kod | Anlamı | Ne yapmalısınız |
|---|---|---|
200 | Alındı veya zaten almıştık | Denemeyi bırakın. Tekrar durumunda gövde duplicate: true taşır |
400 | Gövde JSON değil (invalid_json) ya da okunamadı (read_failed) | Gövdeyi düzeltin; tekrar denemek düzeltmez |
401 | İmza/jeton geçersiz | Yapılandırmanızı kontrol edin; tekrar denemek düzeltmez |
404 | Uç yok ya da kapalı | Adresi doğrulayın. ⚠️ Gövde okunmadan reddedilir |
413 | payload_too_large — gövde 1 MB'ı aştı | Gövdeyi küçültün ya da olayı parçalayın |
5xx | Bizim tarafımızdaki bir aksaklık | Yeniden deneyin; olay kaybolmaz |
⚠️ Gövde üst sınırı 1 MB ve okuma anında uygulanır: daha büyük bir gövde hiç ayrıştırılmaz.
Gövdenizdeki bir sorun 5xx değil, kaydedilmiş ve "işlenemedi" olarak işaretlenmiş bir olay üretir; düzeltilip yeniden kuyruğa alınabilir.
Alım ve işleme ayrıdır
İsteğinizi alır, doğrular, kaydeder ve hemen yanıt veririz. Asıl işleme 30 saniyelik bir döngüyle arkada yapılır. Yani 200 "aldım" demektir, "işledim" demek değildir.
İşleyiciler
Her uca bir işleyici atanır; olayın ne yapacağını o belirler.
| İşleyici | Ne yapar |
|---|---|
none | Yalnız kaydeder ve iç tüketicilere duyurur |
delivery_order_ingest | Pazaryeri ya da POS siparişini Veni'ye alır |
mealcard_settlement | Yemek kartı mutabakat kaydını reconciled ya da discrepancy yapar |
einvoice_status | e-Fatura / e-Arşiv kaydını issued ya da failed yapar |
Alan eşlemesi koda gömülmez: hangi alanın referans, hangisinin durum olduğu uç açılırken sizin dokümanınızdan okunup yapılandırmaya girer. Gövdenizin şeklini siz belirlersiniz.
İşleyiciler yalnız durum günceller; mutabakat hesabı ve fatura kesim akışı Veni tarafında yürür.
Kalıcı bir hata (eşleşme yok, eşleme eksik) terminaldir: tekrar denenmez, olay failed olur ve düzeltilip yeniden kuyruğa alınabilir.
Örnek gövdeler
json
// delivery_order_ingest
{
"external_order_id": "ORN-88213",
"store_code": "res_18",
"items": [{ "sku": "BURGER", "qty": 2 }],
"total": "348.50"
}json
// mealcard_settlement
{
"provider": "ornek_saglayici",
"settlement_id": "st_552",
"amount": "1240.00",
"period": "2026-08-01/2026-08-07"
}json
// einvoice_status
{
"invoice_id": "inv_301",
"status": "delivered",
"uuid": "3a1f…",
"at": "2026-08-12T08:00:00Z"
}Uç açmak
Gelen uçlar anlaşmaya bağlıdır. Adres ve sır oluşturma sırasında bir kez gösterilir. Başvuru: veni.com.tr/iletisim.