Skip to main content
Transfer objesi bir transferin mevcut durumunu, kaynak ve hedef hesap bilgilerini, tutarı ve banka tarafından dönen detayları taşır. Tüm ödeme alanları kuruş cinsindendir; tarihler ISO 8601 + UTC formatındadır.

Yanıt örneği

HTTP/1.1 200 OK
Content-Type: application/json
{
  "id":                       "8e3f5c12-9a7b-4c8d-bc4e-2c963f66afa6",
  "merchant_id":              "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "external_id":              "EXT-2026-001",
  "request_id":               "9f1c8e76-2a3b-4f12-9c8d-12cb24a8a8a8",
  "description":              "Mayıs maaş ödemesi",
  "receipt_no":               "TRF-20260503-0001",

  "receiver_account_id":      "11111111-2222-3333-4444-555555555555",
  "request_sender_account_id":"66666666-7777-8888-9999-aaaaaaaaaaaa",
  "success_sender_account_id":"66666666-7777-8888-9999-aaaaaaaaaaaa",

  "amount":                   1500000,
  "currency":                 "TRY",
  "fee_amount":               350,

  "request_transfer_type":    "fast",
  "success_transfer_type":    "fast",

  "scheduled_date":           "2026-05-03T12:00:00.000+00:00",
  "validate_date":            "2026-05-03T12:34:55.000+00:00",
  "sent_date":                "2026-05-03T12:34:58.000+00:00",
  "processed_date":           "2026-05-03T12:35:00.000+00:00",

  "status":                   "completed",
  "retry_count":              0
}

Alan referansı

Kimlik alanları

AlanTipAçıklama
idUUIDPayven tarafından atanan benzersiz transfer kimliği. Sorgulama / aksiyon endpoint’lerinde URL parametresi olarak kullanılır.
merchant_idUUIDTransferin merchant kimliği
external_idstringSizin sisteminizdeki transfer kimliği (istek body’sinden gelir, echo edilir)
request_idUUIDİstek korelasyon kimliği — destek talebinde paylaşın
descriptionstring | nullTransfer açıklaması (banka ekstresine yansıyabilir)
receipt_nostring | nullBanka makbuz numarası (yalnız delivered/completed durumda dolar)

Hesap alanları

AlanTipAçıklama
receiver_account_idUUIDAlıcı hesabın Payven kimliği
request_sender_account_idUUIDİstek anında talep edilen kaynak hesap
success_sender_account_idUUID | nullBanka tarafında işlem yapılan gerçek kaynak hesap (akıllı yönlendirme sonrası farklı olabilir)

Tutar alanları

AlanTipAçıklama
amountlong (kuruş)Transfer tutarı — kuruş cinsinden 64-bit tam sayı (1.500.000 = 15.000,00 TL)
currencyenumŞu an yalnız "TRY"
fee_amountlong (kuruş)Banka komisyonu — delivered/completed durumda dolar
Tutar formatı detayı: Tutarlar ve Para Birimleri.

Transfer tipi

AlanTipAçıklama
request_transfer_typeenumİstek anında belirlenen tip (eft, fast, remittance, credit_card)
success_transfer_typeenum | nullBanka tarafında gerçekleşen tip — istekten farklı olabilir (örn. fast yerine eft kullanıldı)
Detay: Transfer Tipleri.

Zaman damgaları

AlanTipAçıklama
scheduled_datedatetimeTransferin işleme alınması gereken zaman (zamanlanmış transfer için ileri tarih, anlık için oluşturulma anı)
validate_datedatetime | nullTransferin onaylandığı zaman
sent_datedatetime | nullTransferin bankaya gönderildiği zaman
processed_datedatetime | nullBanka yanıtının alındığı zaman

Durum alanları

AlanTipAçıklama
statusenumTransferin mevcut durumu — bkz. Status değerleri
retry_countintBanka tarafında kaç kez yeniden denendiği

Status değerleri

statusAnlamSonraki adım
pendingTransfer oluşturuldu, onay bekliyor (4-eyes principle)POST /transfers/bulk/approve veya /reject
approvedOnaylandı, banka gönderimine hazırPOST /transfers/bulk/send
rejectedİç onayda reddedildi— (yeni transfer oluşturmak gerekir)
processingBankaya gönderildi, yanıt bekleniyorAsenkron — webhook veya GET ile takip
deliveredBanka kabul etti, hesap geçişi asenkron (FAST modeli)Banka kesinleştirince completed
completedBanka senkron onayladı veya delivered’dan ilerlediİade/geri dönüş yapılabilir
failedBanka reddetti veya teknik hata
refundedTransfer iade edildi (alıcı tarafından geri çekildi)

Yaşam döngüsü diyagramı

Transfer tipleri

TipAçıklama
fastFAST sistemi — anlık havale (7×24, ≤ 200.000 TL). Banka kabul ederse delivered, sonra completed.
eftEFT — günlük/iş saati zamanlamalı, geleneksel havale. Yüksek tutarlar için.
remittanceBanka içi havale (sender ve receiver aynı bankada) — anlık.
credit_cardKarta para gönderme (P2C) — kart numarasıyla transfer.
İstek tarafında transfer_type belirtirsiniz; banka müsaitse o tip kullanılır, değilse Payven uygun alternatife düşürür ve success_transfer_type farklı dönebilir.

Hata response’ları

İstek reddi veya iş kuralı ihlali durumunda Payven RFC 9457 problem+json yanıtı döner. Tipik hatalar:
{
  "type":          "https://docs.payven.com.tr/errors/insufficient_balance",
  "title":         "Kaynak hesapta yeterli bakiye yok",
  "status":        422,
  "code":          "insufficient_balance",
  "detail":        "Talep edilen tutar (1.500.000 kuruş) hesap bakiyesini aşıyor.",
  "instance":      "/api/v1/transfers/bulk/send",
  "correlation_id": "9f1c8e76-..."
}
failed durumda olan bir transferin sebebi sonradan GET /api/v1/transfers/{id} ile sorgulanabilir; banka detayları response body’sindeki error_code ve provider_error_code alanlarında taşınır. Tam hata kodu listesi: Hata Kodları.