İşlem Bildirimi

Craftgate, aşağıda belirtilen işlemlerin sonucunu ve işlem bilgilerini, sizin tanımlayacağınız bir URL e düzenli olarak iletir. Böylece Craftgate üzerinden gerçekleştirilen tüm ödeme/iptal/iade/para transferi/cüzdan işlemlerinizin sonuçlarını -ödeme akışı kesintiye uğrasa bile- dinleyebilir, akışlarınızı ödeme sonuçlarına göre planlayabilirsiniz.

  1. Ödeme İşlemi Sonucu: Ödeme işleminin sonucu, başarılı ya da başarısız olması farketmeksizin, sizin ödeme sırasında ilettiğiniz webhook adresine iletilir.
  2. 3D Ödeme İşlemi Sonucu: 3D Ödeme işleminin sonucu, başarılı ya da başarısız olması farketmeksizin, sizin 3D ödeme başlatma sırasında ilettiğiniz webhook adresine iletilir.
  3. 3D Secure Doğrulama İşlemi Sonucu: 3D Secure doğrulama işleminin sonucu, başarılı ya da başarısız olması farketmeksizin, sizin 3D ödeme başlatma sırasında ilettiğiniz webhook adresine iletilir.
  4. Ödeme Formu kullanımlarında Ödeme İşlemi Sonucu: Ödeme formu kullanılarak yapılan ödeme işleminin sonucu, başarılı ya da başarısız olması farketmeksizin, sizin 3D ödeme başlatma sırasında ilettiğiniz webhook adresine iletilir.
  5. Ödeme İade İşlemi Sonucu: Ödeme iade işleminin sonucu başarılı ise webhook adresine iletilir.
  6. Ödeme Kırılımı İade İşlemi Sonucu: Ödeme kırılımının iade işleminin sonucu başarılı ise webhook adresine iletilir.
  7. Para Transferi Tamamlama İşlemi Sonucu: Pazaryerlerindeki para transferi işleminin tamamlanması sonucunda iletilir.
  8. Cüzdan Oluşma işlemi sonucu: Cüzdan oluşması durumunda cüzdan bilgileri ile webhook adresine iletilir.
  9. Cüzdan Hareketi İşlemi Sonucu: Cüzdan hareketi gerçekleştirildiğinde işlem sonucu webhook adresine iletilir.

Önemli Not

  1. 3DS ödeme akışında, iletmiş olduğunuz callbackUrl adresine yapılacak olan istekler tarayıcı üzerinden gerçekleşmektedir. Son kullanıcının bu akışı durdurması veya kullanıcının internetinde yaşanabilecek sorunlardan dolayı callbackUrl adresine yapılan istekler yapılamayabilir. O nedenle webhook servislerimiz özellikle 3DS ödemelerin takibi ve kullanıcı davranışlarının tespiti için faydalı olabilmektedir.
  2. İşlem bildirimine zamanla yeni eventler eklenebilmektedir. Bu nedenle, işlemediğiniz bir event gelmesi durumunda uygulamanızı buna göre tasarlamalısınız.

Webhook Bildirimi Alınabilmesi için Adres Tanımı Yapılması

Webhook bildiriminin aktifleşleştirilmesi için Craftgate paneli Ayarlar->Üye İşyeri Ayarları->Genel Ayarlar altındaki Üye işyeri Webhook URL alanının doldurulması gerekmektedir. Webhook URL adresi olarak POST isteklerini kabul edip HTTP kodlarından 2xx dönen bir URL bilgisi girmeniz durumunda, Craftgate ödemeler sonrası ilgili veriyi gönderiyor olacaktır.

Webhook Ayarları

Webhook Adresine Çağrı Yapılması ve İletilen İstek

Webhook çağrısı, ödemeyle alakalı ilgili aksiyon tamamlandıktan 30 saniye sonra sizin belirttiğiniz webhookUrl adresine yapılmaya başlanır. 2xx cevabı alınmadığı durumda sırasıyla 10 sn, 30 sn, 3 dk, 10 dk, 30 dk bekletilerek tekrar tekrar deneme yapılır. 5 denemenin sonucunda hala başarılı olmamışsa iptal edilir. Tekrar deneme mekanizması nedeniyle, gelen mesajın karşılığı olan ödeme ile ilgili sisteminizdeki durumunun kontrol edilmesi önemlidir.

Ödeme, İptal, İade, 3D ödeme ve 3D secure doğrulama, Para transferi sonuçları belirtmiş olduğunuz webhook adresine JSON formatında POST http metodu ile iletilir.

İstek Parametreleri

Parametre Adı Tipi Açıklama
eventTimestamp long İsteğin oluşturulduğu tarihin epoch değeri
eventType string İsteğin hangi işlem için gerçekleştiğini belirtir. Alabileceği değerler: API_AUTH, CHECKOUTFORM_AUTH, THREEDS_VERIFY, REFUND, REFUND_TX, PAYOUT_COMPLETED, AUTOPILOT, WALLET_CREATED, WALLET_TX_CREATED
status string İşleme ait durum bilgisidir. Alabileceği değerler: SUCCESS, FAILURE
payloadId string Ödemeye ait ID değeri veya Ödeme formuna ait token bilgisi
payload Object Gelen eventType bilgisine göre ilgili işleme ait ek detayları içerir. PAYOUT_COMPLETED, AUTOPILOT,WALLET_CREATED, WALLET_TX_CREATED eventleri için dolu gelir.

Webhook Adresine İletilen İsteğin Craftgate tarafından Gönderildiği Kontrolü

Webhook URL inize gelen isteklerin Craftgate sisteminden gönderildiğini bilgisinin teyit edilebilmesi için, HTTP header ları arasında gönderilen x-cg-signature-v1değerinin kontrol edilmesi gerekmektedir. x-cg-signature-v1 değeri, istek içerisinde gönderilen alanların String olarak birleştirilip HmacSHA256 algoritması ile Hash değeri alınarak hesaplanır.

Örnek olarak API entegrasyonu kullanılarak 2022-01-01T09:30:32 GMT+3 (epoch: 1641018632) tarihinde başarılı bir şekilde alınan 2150001 id li ödeme için eventType+eventTimestamp+status+payloadId bilgileri String olarak birleştirildiğinde API_AUTH1641018632SUCCESS2150001 sonucu oluşmaktadır.

Bu değeri Craftgate Üye işyeri paneli Ayarlar kısmında bulunan Üye İşyeri Webhook Key değeri ile Hashleyip Base64 encoded versiyonunu aldığınızda oluşan sonuç x-cg-signature-v1 değerine eşit olacaktır.

Webhook Örnek Veri

İşlem Tipi Örnek Veri
API_AUTH {"eventType": "API_AUTH","eventTime": "2023-04-13T14:15:32.123456","eventTimestamp": 1681384532,"status": "SUCCESS","payloadId": "271591"}
CHECKOUTFORM_AUTH {"eventType": "CHECKOUTFORM_AUTH","eventTime": "2023-04-13T13:58:17.123456","eventTimestamp": 1681383497,"status": "SUCCESS","payloadId": "14755c78-2e55-4171-ade2-7c9e7dc453ef"}
THREEDS_VERIFY {"eventType": "THREEDS_VERIFY","eventTime": "2023-04-13T14:13:12.123456","eventTimestamp": 1681384392,"status": "SUCCESS","payloadId": "271591"}
REFUND {"eventType": "REFUND","eventTime": "2023-04-14T11:27:17.123456","eventTimestamp": 1681460837,"status": "SUCCESS","payloadId": "24"}
REFUND_TX {"eventType": "REFUND_TX","eventTime": "2023-04-14T11:27:22.123456","eventTimestamp": 1681460842,"status": "SUCCESS","payloadId": "144"}
PAYOUT_COMPLETED {"eventType": "PAYOUT_COMPLETED","eventTime": "2023-04-14T10:41:07.123456","eventTimestamp": 1681458067,"status": "SUCCESS","payloadId": "50","payload": {"settlementFileId": 50,"settlementType": "SETTLEMENT"}}
AUTOPILOT {"eventType": "AUTOPILOT","eventTime": "2023-04-14T11:07:31.123456","eventTimestamp": 1681459651,"status": "SUCCESS","payloadId": "62-garanti-59","payload": {"posAlias": "62-garanti-59","posName": "garanti","nonThreeDsStatus": "PASSIVE","threeDsStatus": "ACTIVE","notificationsEnabled": false}}
WALLET_CREATED {"eventType": "WALLET_CREATED", "eventTime": "2023-04-26T16:16:47.123456", "eventTimestamp": 1682515007, "status": "SUCCESS", "payloadId": "34", "payload": { "currency": "TRY", "walletId": 34, "memberId": 39, "negativeAmountLimit": 0 } }
WALLET_TX_CREATED {"eventType": "WALLET_TX_CREATED", "eventTime": "2023-04-28T15:13:12.123456", "eventTimestamp": 1682683992, "status": "SUCCESS", "payloadId": "34", "payload": { "currency": "TRY", "walletTransactionType": "PAYMENT_REDEEM", "id": 158, "memberId": 39, "transactionId": 1, "walletId": 34, "amount": -10 } }