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
        }
    ]
  }'