Sigorta Ödeme API Dokümantasyonu
Sigorta primleri için güvenli ödeme işlemleri ve entegrasyon rehberi
Genel Bakış
OdemeNet Sigorta Ödeme API, sigorta poliçesi ve prim ödemeleri için özel olarak tasarlanmış güvenli 3D doğrulama ile ödeme işlemleri gerçekleştirmenizi sağlar. Tüm API çağrıları JWT token ile yetkilendirilmelidir.
Önemli: Tüm ödeme işlemleri için geçerli bir JWT token gereklidir. Authorization header'ında Bearer token kullanın.
Sigorta Ödemesi: Bu endpoint, sigorta poliçesi ve prim ödemeleri için kullanılır. Ödeme durumu "Sigorta Ödemesi" olarak işaretlenir ve PaymentRequest DTO kullanılır.
Desteklenen Ödeme Türü:
- Sigorta Prim Ödemesi: 3D Secure doğrulama ile güvenli sigorta ödemesi
Sigorta Ödeme API
Endpoint Bilgileri
| Method | POST |
| URL | /api/Payment/PayInsurance |
| Authorization | Bearer {token} |
| Content-Type | application/json |
| DTO | PaymentRequest |
Temel Request Parametreleri
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
Amount |
decimal | Evet | Sigorta prim tutarı |
Currency |
string | Hayır | Para birimi (varsayılan: TRY) |
Installment |
int | Hayır | Taksit sayısı (varsayılan: 1) |
CardNo |
string | Evet | Kart numarası |
CardHolderName |
string | Evet | Kart sahibi adı |
ExpireMonth |
string | Evet | Son kullanma ayı (MM) |
ExpireYear |
string | Evet | Son kullanma yılı (YY) |
Cvv |
string | Evet | CVV kodu |
SuccessUrl |
string | Evet | Başarılı ödeme dönüş URL'i |
FailUrl |
string | Evet | Başarısız ödeme dönüş URL'i |
OrderNumber |
string | Evet | Poliçe/Sipariş numarası |
Customer |
object | Hayır | Müşteri bilgileri |
Products |
array | Hayır | Sigorta ürün listesi |
Request Örneği (Kasko Sigortası)
JSON
{
"Amount": 3500.00,
"Currency": "TRY",
"Installment": 3,
"CardNo": "4508034508034509",
"CardHolderName": "Ahmet Yılmaz",
"ExpireMonth": "12",
"ExpireYear": "25",
"Cvv": "123",
"SuccessUrl": "https://sigorta.com/success",
"FailUrl": "https://sigorta.com/fail",
"OrderNumber": "POL-2024-KASKO-001",
"Customer": {
"FullName": "Ahmet Yılmaz",
"Email": "ahmet@example.com",
"Phone": "+905551234567",
"Country": "Türkiye",
"City": "İstanbul",
"IdentityNumber": "12345678901"
},
"Products": [
{
"Id": "KASKO-001",
"Name": "Kasko Sigortası",
"Category": "Araç Sigortası",
"Description": "2024 Model Araç Kasko Sigortası",
"Amount": 3500.00
}
]
}
Başarılı Response
JSON
{
"Success": true,
"Message": "Sigorta ödeme işlemi başlatıldı",
"PaymentResult": "BASE64_ILE_SIFRELENMIS_HTML_RESPONSE",
"TransactionId": "123e4567-e89b-12d3-a456-426614174000",
"PaymentReferenceNumber": "ON-123456789",
"BankName": "Garanti BBVA",
"CardAlias": "****4509",
"Customer": {
"Id": "123e4567-e89b-12d3-a456-426614174001",
"FullName": "Ahmet Yılmaz",
"Email": "ahmet@example.com"
},
"Products": 1
}
Not:
PaymentResult alanı, banka servisi tarafından dönen HTML response'unun Base64 ile şifrelenmiş halidir. Bu şifreli veri, 3D Secure yönlendirme sayfası oluşturmak için kullanılır.
Hata Response
JSON
{
"Success": false,
"Message": "Geçersiz kart bilgileri",
"ErrorCode": "INVALID_CARD"
}
Hata Kodları ve Mesajları
| Hata Kodu | Mesaj | Açıklama |
|---|---|---|
INVALID_CARD |
Geçersiz kart bilgileri | Kart numarası, CVV veya son kullanma tarihi hatalı |
INSUFFICIENT_FUNDS |
Yetersiz bakiye | Kartta yeterli bakiye bulunmuyor |
BANK_ERROR |
Banka hatası | Banka tarafında teknik bir hata oluştu |
INVALID_AMOUNT |
Geçersiz tutar | Ödeme tutarı sıfırdan büyük olmalı |
AMOUNT_MISMATCH |
Tutar uyuşmazlığı | Gönderilen tutar ile ürün toplamı eşleşmiyor |
COMPANY_INACTIVE |
Firma aktif değil | Firma bulunamadı veya pasif durumda |
NO_ACTIVE_BANK |
Aktif banka yok | Firma için aktif banka bulunamadı |
AUTH_ERROR |
Yetkilendirme hatası | Geçersiz veya eksik JWT token |
Kod Örnekleri
C# HttpClient
var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", token);
var insurancePayment = new
{
Amount = 3500.00m,
Currency = "TRY",
Installment = 3,
CardNo = "4508034508034509",
CardHolderName = "Ahmet Yılmaz",
ExpireMonth = "12",
ExpireYear = "25",
Cvv = "123",
SuccessUrl = "https://sigorta.com/success",
FailUrl = "https://sigorta.com/fail",
OrderNumber = "POL-2024-KASKO-001",
Customer = new
{
FullName = "Ahmet Yılmaz",
Email = "ahmet@example.com",
Phone = "+905551234567",
Country = "Türkiye",
City = "İstanbul",
IdentityNumber = "12345678901"
},
Products = new[]
{
new
{
Id = "KASKO-001",
Name = "Kasko Sigortası",
Category = "Araç Sigortası",
Description = "2024 Model Araç Kasko Sigortası",
Amount = 3500.00m
}
}
};
var json = JsonSerializer.Serialize(insurancePayment);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync(
"https://api.odemenet.com/api/Payment/PayInsurance", content);
var result = await response.Content.ReadAsStringAsync();
JavaScript Fetch
const insurancePayment = {
Amount: 3500.00,
Currency: 'TRY',
Installment: 3,
CardNo: '4508034508034509',
CardHolderName: 'Ahmet Yılmaz',
ExpireMonth: '12',
ExpireYear: '25',
Cvv: '123',
SuccessUrl: 'https://sigorta.com/success',
FailUrl: 'https://sigorta.com/fail',
OrderNumber: 'POL-2024-KASKO-001',
Customer: {
FullName: 'Ahmet Yılmaz',
Email: 'ahmet@example.com',
Phone: '+905551234567',
Country: 'Türkiye',
City: 'İstanbul',
IdentityNumber: '12345678901'
},
Products: [
{
Id: 'KASKO-001',
Name: 'Kasko Sigortası',
Category: 'Araç Sigortası',
Description: '2024 Model Araç Kasko Sigortası',
Amount: 3500.00
}
]
};
fetch('https://api.odemenet.com/api/Payment/PayInsurance', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
body: JSON.stringify(insurancePayment)
})
.then(response => response.json())
.then(data => {
if (data.Success) {
// Base64 şifreli HTML'i decode et ve göster
const decodedHtml = atob(data.PaymentResult);
document.write(decodedHtml);
} else {
console.error('Payment error:', data.Message);
}
});
cURL
curl -X POST "https://api.odemenet.com/api/Payment/PayInsurance" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"Amount": 3500.00,
"Currency": "TRY",
"Installment": 3,
"CardNo": "4508034508034509",
"CardHolderName": "Ahmet Yılmaz",
"ExpireMonth": "12",
"ExpireYear": "25",
"Cvv": "123",
"SuccessUrl": "https://sigorta.com/success",
"FailUrl": "https://sigorta.com/fail",
"OrderNumber": "POL-2024-KASKO-001",
"Customer": {
"FullName": "Ahmet Yılmaz",
"Email": "ahmet@example.com",
"Phone": "+905551234567",
"Country": "Türkiye",
"City": "İstanbul",
"IdentityNumber": "12345678901"
},
"Products": [
{
"Id": "KASKO-001",
"Name": "Kasko Sigortası",
"Category": "Araç Sigortası",
"Description": "2024 Model Araç Kasko Sigortası",
"Amount": 3500.00
}
]
}'