İçeriğe geç

Alışveriş Kredisi Başvuru Yönetimi

Müşteri adına kredi başvurusu oluşturur. Bu servisi çağırmadan önce Ön Kredi Değerlendirmesi servisinin çağrılması zorunludur.

Endpoint: /loans/v1/facilitate/application/{preApprovedReferenceId} Method: POST Content-Type: application/json

ParametreTipAçıklama
preApprovedReferenceIdstring (path)Ön Kredi Değerlendirmesi servisinden dönen referenceId değeri
{
"nationalIdentityNumber": "12345678901",
"gsmNumber": "5551234567",
"orderId": "ORDER-12345",
"orderDate": "2025-12-24T10:30:00",
"totalTerm": 6,
"timeToLive": 1735041000,
"callbackUrl": "https://yourdomain.com/callback",
"cart": {
"price": {
"itemsPrice": 20000.00,
"shippingPrice": 100.00,
"totalPrice": 20100.00
},
"items": [
{
"productName": "Ürün Adı",
"categoryCode": "Kategori Kodu",
"quantity": 1,
"price": 20000.00,
"totalPriceWithoutDiscounts": 20000.00,
"totalPrice": 20000.00,
"sellerExternalId": "SELLER-001",
"commissionRate": 1.00,
"withholdingTax": 0.10,
"marketplaceCost": 2.00
}
]
}
}
ParametreTipAçıklamaZorunlu
nationalIdentityNumberstringMüşterinin T.C. Kimlik NumarasıZorunlu
gsmNumberstringMüşterinin telefon numarası (5XXXXXXXXX formatında)Zorunlu
orderIdstringSipariş numarası (benzersiz olmalı)Zorunlu
orderDatestringSipariş tarihi (ISO 8601: YYYY-MM-DDTHH:mm:ss)Zorunlu
totalTermintegerSeçilen vade sayısıZorunlu
timeToLiveintegerBaşvurunun geçerlilik süresi (Unix timestamp)Zorunlu
callbackUrlstringBaşvuru sonucu için PaynKolay’ın geri dönüş yapacağı URLZorunlu
cartobjectSepet bilgileri (Ön Onay Sorgulama ile aynı formatta)Zorunlu
cart.items[].sellerExternalIdstringSatıcı IDİsteğe Bağlı
cart.items[].commissionRatenumberKomisyon oranı (%)İsteğe Bağlı*
cart.items[].commissionAmountnumberKomisyon tutarı (TL)İsteğe Bağlı*
cart.items[].withholdingTaxnumberStopaj vergisiİsteğe Bağlı
cart.items[].marketplaceCostnumberPazaryeri maliyetiİsteğe Bağlı

Not: commissionRate ve commissionAmount alanlarından yalnızca bir tanesi dolu gönderilmelidir.

{
"success": true,
"referenceId": "81acf2ef-448c-43f3-978e-52757b4c621b",
"referenceCode": "REF123456",
"bankApproved": true,
"bankResponseCode": "0",
"bankResponseMessage": "İşlem Başarılı",
"bankRedirectionUrl": "https://dpuat.aktifbank.com.tr/WebCreditApi/WebCredit?ecommerceref=3bb0f009-d15c-4eee-b2a1-cbc3cd959381",
"paymentPlan": {
"lendingAmount": 20100,
"interestRate": 4.19,
"term": 6,
"totalPaymentAmount": 24101.05,
"annualEffectiveInterestRate": 88.9781,
"monthlyPayments": [
{
"term": 1,
"amount": 4016.84,
"dueDate": "2026-01-24T10:30:00"
},
{
"term": 2,
"amount": 4016.84,
"dueDate": "2026-02-24T10:30:00"
}
]
}
}
ParametreTipAçıklama
successbooleanİşlemin başarılı olup olmadığını belirtir
referenceIdstringPaynKolay referans ID’si (başvuru sorgulamada kullanılır)
referenceCodestringPaynKolay referans kodu
bankApprovedbooleanBanka tarafından onaylanıp onaylanmadığını belirtir
bankResponseCodestringBanka cevap kodu
bankResponseMessagestringBanka cevap mesajı
bankRedirectionUrlstringBankanın yönlendirme URL’si. Müşteri bu URL’ye yönlendirilmelidir.
paymentPlanobjectÖdeme planı bilgileri
paymentPlan.lendingAmountnumberKredi tutarı (TL)
paymentPlan.interestRatenumberFaiz oranı (%)
paymentPlan.termintegerVade sayısı (ay)
paymentPlan.totalPaymentAmountnumberToplam ödeme miktarı (TL)
paymentPlan.annualEffectiveInterestRatenumberYıllık efektif faiz oranı (%)
paymentPlan.monthlyPaymentsarray[object]Aylık ödeme detayları
paymentPlan.monthlyPayments[].termintegerTaksit numarası
paymentPlan.monthlyPayments[].amountnumberAylık ödeme miktarı (TL)
paymentPlan.monthlyPayments[].dueDatestringÖdeme tarihi (ISO 8601)
  1. Yönlendirme: Başvuru başarılı olduğunda, bankRedirectionUrl değerini kullanarak müşteriyi bankanın sayfasına yönlendirmelisiniz.
  2. Callback: Banka işlemi tamamlandıktan sonra, PaynKolay callbackUrl adresinize POST isteği gönderecektir.
  3. referenceId: Bu değeri saklayın - başvuru durumunu sorgulamak için kullanılacaktır.

Belirli bir kredi başvurusunun durumunu sorgular.

Endpoint: /loans/v1/facilitate/query/loan/{loanApplicationReferenceId} Method: GET

ParametreTipAçıklama
loanApplicationReferenceIdstring (path)Kredi Başvurusu işleminden dönen referenceId değeri
{
"loanApplication": {
"bankType": "AKTIFBANK",
"bankApplicationId": "BANK-APP-12345",
"referenceId": "81acf2ef-448c-43f3-978e-52757b4c621b",
"referenceCode": "REF123456",
"merchantNo": 4003,
"orderId": "ORDER-12345",
"nationalIdentityNumber": "12345678901",
"gsm": "5551234567",
"totalTerm": 6,
"type": "SHOPPING_LOAN",
"isApproved": true,
"timeToLive": 1735041000,
"bankRedirectionUrl": "https://...",
"applicationDate": "2025-12-24T10:30:00Z",
"orderDate": "2025-12-24T10:30:00Z",
"status": "APPROVED",
"merchantCallbackUrl": "https://yourdomain.com/callback",
"cart": {
"totalPrice": 20100,
"shippingPrice": 100,
"items": [
{
"categoryCode": "ELECTRONICS",
"name": "Ürün Adı",
"quantity": 1,
"price": 20000,
"priceWithoutDiscounts": 20000
}
]
},
"paymentPlan": {
"lendingAmount": 20100,
"interestRate": 4.19,
"term": 6,
"totalPaymentAmount": 24101.05,
"totalRefundAmount": 0,
"annualEffectiveInterestRate": 88.9781,
"monthlyEffectiveInterestRate": 7.4148,
"monthlyPayments": [
{
"term": 1,
"amount": 4016.84,
"dueDate": "2026-01-24T10:30:00Z",
"details": "1. Taksit"
}
]
}
}
}
DurumAçıklama
NEWYeni başvuru oluşturuldu
STARTEDBaşvuru işleme alındı
FAILEDBaşvuru başarısız oldu
APPROVEDBaşvuru onaylandı
REJECTEDBaşvuru reddedildi
CANCELLEDBaşvuru iptal edildi
REFUNDEDTam iade yapıldı
REFUNDED_PARTIALKısmi iade yapıldı
REFUNDED_ANOMALYİade anomalisi
TIMEOUTBaşvuru zaman aşımına uğradı

Onaylanan ve kullanılan kredinin iadesini sağlar.

Endpoint: /loans/v1/facilitate/refund/{loanApplicationReferenceId} Method: POST Content-Type: application/json

ParametreTipAçıklama
loanApplicationReferenceIdstring (path)Kredi Başvurusu işleminden dönen referenceId değeri
{
"refundAmount": 1000.00,
"sellerList": [
{
"trxAmount": 1000.00,
"refundedCommissionAmount": 10.00,
"sellerExternalId": "SELLER-001",
"withholdingTax": 2.00
}
]
}
ParametreTipAçıklamaZorunlu
refundAmountnumberİade edilecek tutar (minimum 0.01 TL)Zorunlu
sellerListarray[object]Satıcı bazlı iade bilgileri (pazaryeri için)İsteğe Bağlı
sellerList[].trxAmountnumberİşlem tutarıİsteğe Bağlı
sellerList[].refundedCommissionAmountnumberİade edilen komisyon tutarıİsteğe Bağlı
sellerList[].sellerExternalIdstringSatıcı IDİsteğe Bağlı
sellerList[].withholdingTaxnumberStopaj vergisiİsteğe Bağlı
{
"bankResponseCode": "0",
"bankResponseMessage": "İşlem Başarılı",
"bankReferenceId": "BANK-REF-789",
"referenceId": "REFUND-REF-456",
"success": true
}
ParametreTipAçıklama
bankResponseCodestringBanka cevap kodu (“0” = başarılı)
bankResponseMessagestringBanka cevap mesajı
bankReferenceIdstringBanka referans numarası
referenceIdstringPaynKolay referans numarası
successbooleanİşlemin başarılı olup olmadığını belirtir
  • Tam iade veya kısmi iade yapılabilir
  • İade tutarı, kredi tutarını aşamaz
  • İade işlemi sonrası başvuru durumu REFUNDED veya REFUNDED_PARTIAL olarak güncellenir

Kredilerin raporlanmasını ve listelenmesini sağlar.

Endpoint: /loans/v1/facilitate/reporting Method: GET

ParametreTipAçıklamaZorunlu
startDatestringBaşlangıç tarihi (ISO 8601)Zorunlu
endDatestringBitiş tarihi (ISO 8601)Zorunlu
referenceIdstringBelirli bir başvuruyu filtrelemek içinİsteğe Bağlı
statusesarray[string]Durum filtresi (NEW, APPROVED, vb.)İsteğe Bağlı
pageNumberintegerSayfa numarasıZorunlu
pageSizeintegerSayfa başına kayıt sayısıZorunlu
GET /loans/v1/facilitate/reporting?startDate=2025-12-01T00:00:00Z&endDate=2025-12-31T23:59:59Z&pageNumber=0&pageSize=20&statuses=APPROVED,REJECTED

Sayfalanmış kredi başvuruları listesini döndürür. Her başvuru, Başvuru Sorgulama ile aynı formattadır.


API, hatalı istekler için uygun HTTP durum kodları ve hata mesajları döndürür.

KodAçıklama
200 OKİşlem başarılı
201 CreatedYeni bir kaynak oluşturuldu
400 Bad RequestHatalı istek (geçersiz parametreler)
401 UnauthorizedYetkilendirme hatası (geçersiz token)
403 ForbiddenErişim izni yok
404 Not FoundKaynak bulunamadı
500 Internal Server ErrorSunucu hatası

Hata mesajları genellikle JSON formatında döndürülür:

{
"success": false,
"bankResponseCode": "99",
"bankResponseMessage": "Hata mesajı açıklaması",
"errorCode": "VALIDATION_ERROR",
"errorMessage": "Detaylı hata açıklaması"
}
HataNedenÇözüm
401 UnauthorizedToken geçersiz veya süresi dolmuşYeni token alın
400 Bad RequestEksik veya hatalı parametreİstek parametrelerini kontrol edin
bankResponseCode != “0”Banka işlemi başarısızBanka hata mesajını kontrol edin
TIMEOUTİşlem zaman aşımına uğradıBaşvuruyu yeniden deneyin

Alışveriş kredisi entegrasyonunun tüm adımlarını sırasıyla takip edin:

POST /loans/authenticate
→ Token alın
POST /loans/v1/facilitate/query/banks
→ Banka listesini alın ve müşteriye gösterin
Müşteri banka seçer
POST /loans/v1/facilitate/sessions/{bankCode}
→ referenceId alın (bankSessionReferenceId)
POST /loans/v1/facilitate/simulation/{bankSessionReferenceId}
→ Taksit seçeneklerini müşteriye gösterin
Müşteriden TC ve GSM bilgisi alın
POST /loans/v1/facilitate/pre-approved/{bankSessionReferenceId}
→ referenceId alın (preApprovedReferenceId)
→ Ön onay durumunu kontrol edin
POST /loans/v1/facilitate/application/{preApprovedReferenceId}
→ referenceId alın (loanApplicationReferenceId)
→ Müşteriyi bankRedirectionUrl'e yönlendirin
Müşteri banka sayfasında işlemi tamamlar
→ PaynKolay callbackUrl'e sonucu gönderir
GET /loans/v1/facilitate/query/loan/{loanApplicationReferenceId}
→ Başvuru durumunu kontrol edin
POST /loans/v1/facilitate/refund/{loanApplicationReferenceId}
→ İade işlemini gerçekleştirin

  • Token’ları güvenli bir şekilde saklayın
  • HTTPS kullanın (zorunlu)
  • Müşteri bilgilerini şifreleyin
  • API anahtarlarını kaynak koduna yazmayın
  • Token’ları önbellekleyin (süresi dolana kadar)
  • Timeout değerlerini uygun ayarlayın
  • Hata durumlarında retry mekanizması kullanın
  • Açık hata mesajları gösterin
  • İşlem durumu hakkında bilgilendirin
  • Yükleme göstergeleri kullanın
  • Mobil uyumlu tasarım yapın
  • referenceId değerlerini saklayın
  • Başvuru durumlarını düzenli kontrol edin
  • Log kayıtları tutun
  • Callback URL’i düzgün yapılandırın