-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from InsurUp/webhook-docs
Add webhook api integration docs
- Loading branch information
Showing
35 changed files
with
1,848 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,3 +18,5 @@ | |
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* | ||
|
||
.idea/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,199 @@ | ||
# Webhook API Entegrasyonu | ||
|
||
Webhook'lar, bir olay meydana geldiğinde veya gelirken belirtilen URL'e istek atmak için kullanılır. InsurUp'da iki çeşit event vardır. | ||
|
||
- **Async**: event'ler bir olay gerçekleştiğinde atılır ve belirtilen API'ın sonucunu yapılan işleme etki etmez. | ||
- **Sync**: event'ler bir olay gerçekleşmeden önce atılır ve belirtilen API'ın sonucuna göre yapılan işleme etki edebilir. Ödeme validasyonu güzel bir örnektir. | ||
|
||
Webhook event'leri, belirli bir URL'ye HTTP POST isteği göndererek tetiklenir. Bu istek, bir JSON nesnesi içerir. JSON nesnesi, event'e ait detayları içerir. | ||
|
||
## Header'lar | ||
|
||
- **`x-webhook-event`**: Tetiklenen event'in ismidir. | ||
- **`x-webhook-id`**: Acente panelindeki oluşturulan webhook'un tekil numarasıdır. | ||
- **`x-webhook-delivery`**: Tekil gönderim numarasıdır. | ||
- **`x-webhook-signature`**: Bu header eğer `secret` alanı doluysa gönderilir. Belirtilen `secret` ile payload SHA-256 ile şifrelenir. | ||
|
||
## Event'ler | ||
|
||
### `proposal_premium.received` *async* | ||
|
||
Bir teklif primi InsurUp'a iletildiği zaman tetiklenir. | ||
|
||
**Örnek Payload** | ||
|
||
```json | ||
{ | ||
"proposalId": "673afd15f11de64fe1f2bjdb", | ||
"productId": 40235, | ||
"premiums": [ | ||
{ | ||
"installmentNumber": 1, | ||
"netPremium": 1243, | ||
"grossPremium": 1243, | ||
"commission": 0, | ||
"exchangeRate": 1, | ||
"paymentType": "All", | ||
"currency": "TurkishLira", | ||
"insuranceCompanyProposalNumber": "142534209" | ||
}, | ||
{ | ||
"installmentNumber": 2, | ||
"netPremium": 1243, | ||
"grossPremium": 1243, | ||
"commission": 0, | ||
"exchangeRate": 1, | ||
"paymentType": "All", | ||
"currency": "TurkishLira", | ||
"insuranceCompanyProposalNumber": "142534209" | ||
}, | ||
{ | ||
"installmentNumber": 3, | ||
"netPremium": 1243, | ||
"grossPremium": 1243, | ||
"commission": 0, | ||
"exchangeRate": 1, | ||
"paymentType": "All", | ||
"currency": "TurkishLira", | ||
"insuranceCompanyProposalNumber": "142534209" | ||
} | ||
], | ||
"insuredCustomer": { | ||
"name": "Müşteri ismi", | ||
"phoneNumber": { | ||
"number": "5334180719", | ||
"countryCode": 90 | ||
}, | ||
"email": { | ||
"value": "customer@insurup.com" | ||
}, | ||
"city": { | ||
"value": "34", | ||
"text": "İSTANBUL" | ||
}, | ||
"district": { | ||
"value": "1823", | ||
"text": "KÜÇÜKÇEKMECE" | ||
} | ||
} | ||
} | ||
``` | ||
|
||
### `proposal_premium.purchasing` *sync* | ||
|
||
Bir teklif primini satın alınmadan önce tetiklenir. Bu event'i satın alma validasyonu olarak kullanabilirsiniz. | ||
|
||
**Örnek Payload** | ||
|
||
```json | ||
{ | ||
"proposalId": "673afd15f11de64fe1f2bjdb", | ||
"productId": 40235, | ||
"installmentNumber": 1, | ||
"paymentType": "CreditCard" | ||
} | ||
``` | ||
|
||
### `proposal_premium.purchase_failed` *async* | ||
|
||
Bir teklif primini satın alma isteği **başarısız** olunca tetiklenir. | ||
|
||
**Örnek Payload** | ||
|
||
```json | ||
{ | ||
"proposalId": "673afd15f11de64fe1f2bjdb", | ||
"productId": 40235, | ||
"installmentNumber": 1, | ||
"paymentType": "CreditCard", | ||
"failureReason": "X sigorta şirketi bilinmeyen bir nedenden dolayı poliçeleştirme isteğini reddetti" | ||
} | ||
``` | ||
|
||
### `proposal_premium.purchased` *async* | ||
|
||
Bir teklif primini satın alma isteği **başarılı** olunca tetiklenir. | ||
|
||
**Örnek Payload** | ||
|
||
```json | ||
{ | ||
"proposalId": "673afd15f11de64fe1f2bjdb", | ||
"policyId": "673b4cb4524a0a5187ddbeae", | ||
"productId": 40235, | ||
"installmentNumber": 1, | ||
"paymentType": "CreditCard", | ||
"policyStartDate": "2024-11-20", | ||
"policyEndDate": "2025-11-20" | ||
} | ||
``` | ||
|
||
## Signature Validasyonu | ||
|
||
Webhook'larınızın güvenliğini sağlamak için, gelen isteklerin gerçekten sizin tarafınızdan gönderildiğini doğrulamak amacıyla imza doğrulaması yapmanız önemlidir. Aşağıda, imza doğrulaması için çeşitli dillerde örnek kodlar bulunmaktadır. | ||
|
||
### Python | ||
|
||
```python | ||
import hmac | ||
import hashlib | ||
|
||
def validate_signature(secret, payload, signature): | ||
computed_signature = hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest() | ||
return hmac.compare_digest(computed_signature, signature) | ||
``` | ||
|
||
### Javascript | ||
|
||
```javascript | ||
const crypto = require('crypto'); | ||
|
||
function validateSignature(secret, payload, signature) { | ||
const computedSignature = crypto | ||
.createHmac('sha256', secret) | ||
.update(payload, 'utf8') | ||
.digest('hex'); | ||
return crypto.timingSafeEqual(Buffer.from(computedSignature, 'hex'), Buffer.from(signature, 'hex')); | ||
} | ||
``` | ||
|
||
### C# | ||
|
||
```csharp | ||
bool ValidateSignature(string secret, string payload, string signature) | ||
{ | ||
using var hmac = new HMACSHA256(Encoding.UTF8.GetBytes(secret)) | ||
|
||
var computedHash = hmac.ComputeHash(Encoding.UTF8.GetBytes(payload)); | ||
var computedSignature = BitConverter.ToString(computedHash).Replace("-", "").ToLower(); | ||
|
||
return computedSignature == signature.ToLower(); | ||
} | ||
``` | ||
|
||
### PHP | ||
|
||
```php | ||
function validate_signature($secret, $payload, $signature) { | ||
$computed_signature = hash_hmac('sha256', $payload, $secret); | ||
return hash_equals($computed_signature, $signature); | ||
``` | ||
|
||
### Java | ||
|
||
```java | ||
import javax.crypto.Mac; | ||
import javax.crypto.spec.SecretKeySpec; | ||
import java.util.Base64; | ||
|
||
public class SignatureValidator { | ||
public static boolean validateSignature(String secret, String payload, String signature) throws Exception { | ||
Mac sha256_HMAC = Mac.getInstance("HmacSHA256"); | ||
SecretKeySpec secret_key = new SecretKeySpec(secret.getBytes(), "HmacSHA256"); | ||
sha256_HMAC.init(secret_key); | ||
|
||
String computedSignature = Base64.getEncoder().encodeToString(sha256_HMAC.doFinal(payload.getBytes())); | ||
return computedSignature.equals(signature); | ||
} | ||
} | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
--- | ||
title: Başlangıç | ||
sidebar_position: 1 | ||
--- | ||
|
||
# InsurUp'a Hoş Geldiniz! 🚀 | ||
|
||
InsurUp, sigorta acenteleri ve brokerları için geliştirilmiş yenilikçi bir CRM çözümüdür. Kolay kullanımı, güçlü özellikleri ve esnek altyapısıyla, sigorta işlemlerinizi hızlı ve verimli bir şekilde yönetmenize olanak tanır. İster küçük bir acente olun, ister büyük bir broker ağı yönetin; InsurUp, sigorta süreçlerinizi daha kolay ve etkili hale getirir. | ||
|
||
## 🌟 InsurUp Nedir? | ||
|
||
InsurUp, sigorta acentelerinin ve brokerlarının iş süreçlerini kolaylaştırmak için özel olarak tasarlanmış bulut tabanlı bir CRM platformudur. Platform, sigorta acentelerinin teklif hazırlama, poliçe yönetimi, müşteri ilişkileri ve veri analizi gibi temel işlemlerini tek bir çatı altında toplar. Esnek ve kullanıcı dostu arayüzü sayesinde, herhangi bir teknik bilgi gerektirmeden kullanıcıların ihtiyaçlarına göre özelleştirilebilir ve kolayca adapte edilebilir. | ||
|
||
Bulut tabanlı yapısı, kullanıcıların diledikleri yerden sisteme erişmelerine olanak tanırken, güçlü entegrasyon özellikleriyle sigorta şirketleriyle hızlı ve güvenli bağlantılar kurmalarını sağlar. Self servis modülleriyle kullanıcılar kendi başlarına acente kurulumlarını tamamlayabilir, teklifleri hızla hazırlayabilir ve müşteri bilgilerini tek bir ekranda görüntüleyebilir. Tüm bu özellikler, InsurUp'ı modern sigorta operasyonlarının merkezi haline getirir. | ||
|
||
InsurUp hakkında daha fazla bilgi için [InsurUp web sitemizi](https://www.insurup.com) sayfamızı ziyaret edin. | ||
|
||
## 🎯 Nasıl Başlayabilirsiniz? | ||
|
||
Yeni bir kullanıcı olarak başlamak çok kolay! Adım adım kullanıcı rehberlerimizden faydalanarak hızlıca sistemi keşfedebilirsiniz. Başlamak için aşağıdaki adımları takip edin: | ||
|
||
1. **[Giriş Yapın](./kullanici-rehberleri/giris-sayfasi)**: İlk adım olarak platforma giriş yapın ve hesabınızı aktif hale getirin. | ||
2. **[Acentenizi Kurun](./kullanici-rehberleri/acente-bilgileri-ve-kurulum-adimlari)**: Acente bilgilerinizi girerek kurulum işlemini tamamlayın. | ||
3. **[Kullanıcılarınızı Ekleyin](./kullanici-rehberleri/kullanicilar)**: Acenteniz için yeni kullanıcılar davet edin ve yetkilendirmeleri yapın. | ||
4. **[Tekliflerinizi ve Poliçelerinizi Yönetin](./kullanici-rehberleri/teklifler)**: Hızlıca teklif hazırlayın ve poliçe süreçlerinizi yönetin. | ||
|
||
## 📚 Kullanıcı Rehberleri | ||
|
||
Platformdaki tüm modüller hakkında detaylı bilgi almak için [Kullanıcı Rehberleri](./kullanici-rehberleri) sayfamıza göz atabilirsiniz. Burada sistemdeki her özellik için adım adım açıklamalar bulacaksınız. Rehberlerimiz, sıkça karşılaşılan sorunlara ve merak edilen özelliklere dair pratik çözümler sunar. | ||
|
||
## 📞 Yardıma mı ihtiyacınız var? | ||
|
||
Herhangi bir konuda desteğe ihtiyaç duyarsanız, [Kullanıcı Rehberleri](./kullanici-rehberleri) sayfasından yardım alabilir veya [Destek Ekibi](mailto:destek@insurup.com) ile iletişime geçebilirsiniz. | ||
|
||
--- | ||
|
||
InsurUp ile sigorta operasyonlarınızı daha verimli hale getirin, işinizi büyütün ve müşteri memnuniyetini artırın. Şimdi başlayın ve InsurUp'ın avantajlarını keşfedin! 🎉 |
44 changes: 44 additions & 0 deletions
44
...ocs/version-0.1.26/kullanici-rehberleri/acente-bilgileri-ve-kurulum-adimlari.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
--- | ||
title: "Acente Bilgileri ve Kurulum Adımları" | ||
sidebar_position: 2 | ||
--- | ||
|
||
# Acente Bilgileri ve Kurulum Adımları | ||
|
||
## Acente Bilgileri Ekranı | ||
|
||
Bu ekranda acente adına, vergi numarasına ve levha kayıt numarasına dair bilgiler talep edilmektedir. | ||
|
||
- **Acente Adı**: Acentenin resmi adını girmeniz gereken zorunlu bir alandır. | ||
- **Vergi Numarası**: Acentenin vergi numarasını girmelisiniz. Bu alan da zorunludur. | ||
- **Levha Kayıt No**: Acentenin levha kayıt numarasını bu alana girebilirsiniz. Bu alan zorunlu değildir ancak girilmesi önerilir. | ||
|
||
Gerekli alanlar doldurulduktan sonra **"İleri"** butonuna tıklayarak bir sonraki adıma geçebilirsiniz. | ||
|
||
## Acente Temsilcisi Ekranı | ||
|
||
Bu adımda acente için InsurUp uygulamasına ilk giriş yapacak olan admin kullanıcı bilgileri girilmelidir. | ||
|
||
- **Ad**: Acente temsilcisinin adı zorunlu olarak girilmelidir. | ||
- **Soyadı**: Temsilcinin soyadı da zorunludur. | ||
- **E-posta**: Temsilcinin kullanacağı e-posta adresini bu alana girmelisiniz. E-posta adresi, giriş işlemlerinde kullanılacaktır. | ||
- **Parola**: Temsilci, bu alanda kendi belirleyeceği parolayı oluşturmalıdır. Parola daha sonra girişlerde kullanılacaktır. | ||
|
||
Bu bilgilerin tamamı girildikten sonra yine **"İleri"** butonuna tıklayarak son adıma geçebilirsiniz. | ||
|
||
## Sigorta Şirketi Bağlantısı Ekranı | ||
|
||
Son adımda, acentenizle çalıştığınız sigorta şirketleriyle ilgili bağlantıların kurulması sağlanmaktadır. | ||
|
||
### Sigorta Şirketi Eklemek | ||
|
||
Bu adım zorunlu değildir, dilerseniz **"+"** butonuna tıklayarak sigorta şirketi bilgilerini ekleyebilirsiniz. Bu işlem için iki seçenek bulunur: | ||
|
||
- **Web Servis**: Sigorta şirketleriyle olan bağlantıları web servisi aracılığıyla ekleyebilirsiniz. | ||
- **Robot**: Sigorta şirketi bağlantılarını robot ile entegre edebilirsiniz. | ||
|
||
Bağlantı kurulduktan veya bu adım atlandıktan sonra **"Tamamla"** butonuna tıklayarak InsurUp kurulum işlemini tamamlayabilirsiniz. | ||
|
||
:::note | ||
Bu işlemi uygulamaya giriş yaptıktan sonra da yapabilirsiniz. | ||
::: |
23 changes: 23 additions & 0 deletions
23
versioned_docs/version-0.1.26/kullanici-rehberleri/giris-sayfasi.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
--- | ||
title: "Giriş Sayfası" | ||
sidebar_position: 1 | ||
--- | ||
|
||
# Giriş Sayfası | ||
|
||
Bu ekran, InsurUp CRM'e erişim sağlamak isteyen kullanıcıların e-posta adresi ve şifre bilgileri ile sisteme giriş yapabilecekleri alandır. InsurUp'ı kullanan tüm acente ve broker kullanıcıları, kendilerine tanımlanan e-mail adreslerini ve şifrelerini kullanarak sisteme giriş yapabilirler. | ||
|
||
## Giriş Yapma | ||
|
||
- **E-mail Adresi**: Bu alana, daha önce sistem tarafından tanımlanmış e-posta adresinizi girin. | ||
- **Şifre**: Sisteme giriş yaparken kullanacağınız şifreyi bu alana yazın. | ||
|
||
Giriş bilgilerinizi girdikten sonra **"Giriş Yap"** butonuna basarak sisteme giriş yapabilirsiniz. | ||
|
||
## Şifremi Unuttum | ||
|
||
Bu ekran, şifrenizi hatırlamadığınız durumlarda yeni bir şifre talep edebileceğiniz bölümdür. | ||
|
||
- **E-posta Adresi**: Sisteme kayıtlı olan e-posta adresinizi bu alana girin. | ||
|
||
E-posta adresinizi girdikten sonra **"Gönder"** butonuna tıklayın. Bu işlem sonrası, şifrenizi sıfırlayabilmeniz için size bir bağlantı gönderilecektir. Gönderilen e-postadaki bağlantıya tıklayarak yeni bir şifre belirleyebilirsiniz. |
Oops, something went wrong.