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-AuthorizationstringBearer {AccessToken}

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

Query Parametreleri

AlanTipZorunluAçıklama
binNumberstringKartın ilk 6-8 hanesi
amountdecimalİşlem tutarı
currencystringPara 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
AuthorizationstringBearer {AccessToken}

Request Body

card Object

AlanTipZorunluAçıklama
cardNumberstringKart numarası
cardHolderNamestringKart üzerindeki isim
cvvstringCVV
expMonthintSon kullanma ay
expYearintSon kullanma yıl

Root Alanlar

AlanTipZorunluAçıklama
cardobjectKart bilgileri
returnUrlstring3D sonrası yönlendirme URL
clientReferenceCodestringMerchant sipariş referansı
use3Dboolean3D Secure kullanımı
installmentTokenstringPaymentOptions’tan gelen token
customerIpAddressstringKullanı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