Skip to main content
Payment objesi, bir ödemenin mevcut durumu ve banka tarafından dönen detayları tek bir yapıda taşır. İki varyantı vardır:
  • PaymentOperationResult — yazma operasyonlarında (POST /payments, /refund, /void, /capture) döner
  • PaymentStatus — sorgulama operasyonunda (GET /payments/{id}) döner; PaymentOperationResult üzerine ek alanlar koyar

PaymentOperationResult

Yazma endpoint’lerinden dönen temel yapı:
İşlem başarılı mı bilgisini HTTP durum kodundan okuyun (2xx → başarılı). Hata durumunda yanıt application/problem+json formatında döner (aşağıda).

extra_properties içeriği

Tüm konnektörler aşağıdaki anahtarları doldurmaya çalışır (banka desteklemiyorsa boş string olur): Konnektöre özgü ek alanlar (HalkBank tax_certificate_no, NestPay xid, vb.) aynı sözlükte döner. Hangi alanların doldurulduğunu test ortamında görerek doğrulamanız önerilir.

PaymentStatus

GET /api/v1/payments/{transaction_id} ile sorgulamada PaymentOperationResult üzerine ek alanlar koyar. Başarısız ödemenin sorgusunda da yanıt 200 OK döner (kaynak vardır, yalnızca status: "failed"); banka tarafından gelen hata detayı error_code ve provider_error_code alanlarıyla birlikte taşınır.

Status değerleri

status alanı TransactionStatus enum’unun snake_case wire formatıdır. Tam liste:
Hesaplanan (calculated) durumlar — wire’da status alanında görünmez:
  • Kısmi iade (partially refunded): Üst Transaction status alanı completed kalır; iade alt-Transaction’ı ayrı kayıt olarak yazılır (status: refunded). Kısmi mi tam mı iade olduğu Transaction.RefundedAmount ve Transaction.Amount karşılaştırmasından runtime’da hesaplanır.
  • Settlement (gün sonu mutabakat): status enum’unda settled değeri yoktur. Settlement durumu ayrı Settlement kaynağında izlenir — bkz. Settlement Kayıtları.

Hata response’ları

İşlem reddi, iş kuralı ihlali ve banka reddi dahil tüm hata durumları RFC 9457 problem+json formatında, uygun HTTP durum koduyla döner. Banka kodları için: Banka Yanıt Kodları. Failed bir ödemeyi sonradan GET /api/v1/payments/{id} ile sorgularsanız 200 OK döner; error_code ve provider_error_code response body’sinde yer alır.

Yol haritası — zenginleştirilmiş alanlar

Aşağıdaki sub-objeler ileride yanıta eklenecektir (kontrat genişlemesi, breaking change değil):
  • cardbin_number, last_four_digits, scheme (visa/mastercard/troy/amex), type (credit/debit/prepaid), program (bonus/maximum/axess/paraf/world), bank_code, bank_name
  • connectorcode, configuration_id — şu an extra_properties içinde
  • three_dsprotocol_version (1.0/2.1/2.2), cavv, eci, xid, result (Y/N/U/A)
  • fraudscore (0-100), decision (allow/review/block), rules_triggered[]
  • metadata — sizin tanımladığınız anahtar-değer çiftleri (max 50 anahtar)
  • captured_amount, refunded_amount, completed_at, settlement_date
Geçişin tarihi Changelog üzerinden duyurulacaktır. Şu an bu alanların ekvivalanları extra_properties veya ayrı endpoint’lerle elde edilebilir.