PaymentOperationResult— yazma operasyonlarında (POST /payments,/refund,/void,/capture) dönerPaymentStatus— 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
statusalanıcompletedkalır; iade alt-Transaction’ı ayrı kayıt olarak yazılır (status: refunded). Kısmi mi tam mı iade olduğuTransaction.RefundedAmountveTransaction.Amountkarşılaştırmasından runtime’da hesaplanır. - Settlement (gün sonu mutabakat):
statusenum’undasettleddeğeri yoktur. Settlement durumu ayrıSettlementkaynağı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 sonradanGET /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):card—bin_number,last_four_digits,scheme(visa/mastercard/troy/amex),type(credit/debit/prepaid),program(bonus/maximum/axess/paraf/world),bank_code,bank_nameconnector—code,configuration_id— şu anextra_propertiesiçindethree_ds—protocol_version(1.0/2.1/2.2),cavv,eci,xid,result(Y/N/U/A)fraud—score(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
extra_properties veya ayrı endpoint’lerle elde edilebilir.