Ana içeriğe geç

10. API Entegrasyonu (Detaylı)

Widget kullanılmadan, tüm ödeme süreci merchant backend tarafından yönetilir. Bu yöntem, tam kontrol ve özelleştirme gerektiren entegrasyonlar için önerilir.

10.1 API Ödeme Akışı (Step-by-Step)​

1 – AccessToken Alınır

→ /auth/api/token/connect

2 – Taksit ve POS Bilgileri Getirilir

→ /b2c/paymentOptions

3 – Ödeme Başlatılır

→ /b2c/payment

4 – (Opsiyonel) 3D Süreci

  • Eğer use3D = true ise
    • redirectTo URL’e yönlendirme yapılır
    • Banka doğrulaması tamamlanır
    • Kullanıcı returnUrl adresine döner

10.2 PaymentOptions​

Endpoint: GET /b2c/paymentOptions

Header

AlanTipZorunluAçıklama
Proxy-Authorizationstring✔Bearer {AccessToken}

Not: API flow’da bazı implementasyonlarda AccessToken kullanılır (widget’tan farkı)

Query Parametreleri

AlanTipZorunluAçıklama
binNumberstring✔Kartın ilk 6-8 hanesi
amountdecimal✔İşlem tutarı
currencystring✔Para birimi

Response Model

Root Object

AlanTipAçıklama
idintKart program ID
namestringKart program adı
posTitlestringPOS açıklaması
isDefaultPosbooleanVarsayılan POS bilgisi
installmentsarrayTaksit seçenekleri

installments Object

AlanTipAçıklama
currencyIdstringPara birimi
amountdecimalToplam işlem tutarı
installmentintTaksit sayısı
installmentAmountdecimalTaksit başına düşen tutar
tokenstringInstallmentToken (kritik)
processAmountdecimalİşleme giren tutar
commRatedecimalKomisyon oranı
posIdintPOS ID
commApplyTypeIdintKomisyon tipi

Kritik Not

  • token alanı (InstallmentToken), ödeme sırasında zorunludur
  • Bu token olmadan /payment çağrısı başarısız olur

10.3 Payment​

Endpoint: POST /b2c/payment

Header

AlanTipZorunluAçıklama
Authorizationstring✔Bearer {AccessToken}

Request Body

card Object

AlanTipZorunluAçıklama
cardNumberstring✔Kart numarası
cardHolderNamestring✔Kart üzerindeki isim
cvvstring✔CVV
expMonthint✔Son kullanma ay
expYearint✔Son kullanma yıl

Root Alanlar

AlanTipZorunluAçıklama
cardobject✔Kart bilgileri
returnUrlstring✔3D sonrası yönlendirme URL
clientReferenceCodestring✔Merchant sipariş referansı
use3Dboolean✔3D Secure kullanımı
installmentTokenstring✔PaymentOptions’tan gelen token
customerIpAddressstring✔Kullanıcı IP adresi

Request Örneği

{
"card": {
"cardNumber": "4155650100416111",
"cardHolderName": "Test Test",
"cvv": "000",
"expMonth": 12,
"expYear": 2026
},
"returnUrl": "https://merchant.com",
"clientReferenceCode": "ORDER123",
"use3D": true,
"installmentToken": "INSTALLMENT_TOKEN",
"customerIpAddress": "78.190.57.187"
}

Response Model

AlanTipAçıklama
paymentTypestringRedirectUrl / DirectSale
redirectTostring3D yönlendirme URL
orderIdstringFinrota işlem ID
clientReferenceCodestringMerchant referansı
successbooleanİşlem sonucu
errorstringHata mesajı

10.4 3D Secure Akışı​

Senaryo

use3D = true gönderildiğinde:

Response

{
"paymentType": "RedirectUrl",
"redirectTo": "https://bank-3d-url",
"success": false
}

Akış

  1. Merchant backend → response alır
  2. Frontend → kullanıcıyı redirectTo adresine yönlendirir
  3. Kullanıcı → bankada OTP doğrular
  4. Banka → kullanıcıyı returnUrl adresine yönlendirir
  5. Merchant → sonucu işler (başarılı / başarısız)

Kritik Noktalar

  • redirectTo mutlaka frontend’de açılmalıdır
  • returnUrl endpoint’i idempotent olmalıdır
  • Aynı işlem için duplicate kontrol yapılmalıdır

10.5 3D’siz (Direct Sale) Akış​

Response

{
"paymentType": "DirectSale",
"success": true
}

Akış

  • Ödeme anında tamamlanır
  • Ek redirect yoktur
  • Sonuç response üzerinden alınır

10.6 Hata Senaryoları​

DurumAçıklama
401Token geçersiz
400Eksik / hatalı parametre
500Sistem hatası
success=falseBanka veya ödeme hatası

​

10.7 API vs Widget Farkı​

KonuAPIWidget
Kart verisiBackendFrontend
PCI yüküMerchantFinrota
UXMerchant yönetirHazır
TokenAccessTokenWidgetToken + AccessToken

14. API Ödeme Akışı (Step-by-Step)

1 – AccessToken Alınır

AccessToken Alınır

2 – Taksit ve POS Bilgileri Getirilir

Taksit ve POS Bilgileri Getirilir

3 – Ödeme Başlatılır

Ödeme Başlatılır

4 – (Opsiyonel) 3D Süreci

3D Süreci - 1 3D Süreci - 2

Ödeme İptal

Ödeme İptal

Ödeme İade

Ödeme İade