Skip to main content
Void, mutabakat öncesinde tam tutarlı ödeme iptalidir. İade’den (refund) farkı: void işlemi banka tarafında muhasebe hareketi yaratmaz, ödeme hiç olmamış gibi kayıttan düşer. Müşterinin kart ekstresinde işlem görünmez.

Endpoint

POST /api/v1/payments/{transaction_id}/void

İstek

curl -X POST https://vpos.payven.com.tr/api/v1/payments/8e3f5c12-9a7b-4c8d-bc4e-2c963f66afa6/void \
  -H "Authorization: Bearer $PAYVEN_TOKEN" \
  -H "Idempotency-Key: order-1001-void" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "Stok kalmadı"
  }'
AlanTipZorunlulukAçıklama
reasonstringOpsiyonelİptal sebebi (raporlama için)
extra_propertiesobjectOpsiyonelKonnektör-spesifik özel alanlar
Request body tamamen opsiyoneldir — sadece header’lar yeterlidir.

Başarılı response

{
  "transaction_id": "8e3f5c12-9a7b-4c8d-bc4e-2c963f66afa6",
  "status":         "canceled",
  "extra_properties": {
    "processed_at":            "2026-05-03T16:00:01.234+00:00",
    "host_reference":          "VOID-REF-789",
    "provider_transaction_id": "VOID-9f3d2b8e"
  }
}
İşlem durumunun wire değeri canceled (önceki ad “voided” değiştirildi, eski isimlendirme tüm enum genelinde temizlendi). Asenkron void senaryosunda geçici olarak canceled_processing durumu görülebilir; final durum webhook (void.completed) ile gelir.

Void mu, refund mu?

KriterVoidRefund
TutarYalnız tam tutarTam veya kısmi
MutabakatÖncesinde — gün içiÖncesi veya sonrası
Banka komisyonuYansımazMutabakat sonrasında çoğunlukla yansır
Müşteri ekstresindeHareket görünmez”İade” satırı olarak görünür
SüreGenelde gün sonuna kadar (banka bağımlı)180 güne kadar
Pratik kural: Aynı gün içinde, tam tutar iade edilecekse → void. Diğer durumlarda → refund.
Pratikte tek endpoint yeterli: Hangi yöntemin uygun olduğunu Payven banka durumuna göre otomatik karar verir. /refund çağırdığınızda mutabakat öncesi ise void, sonrası ise refund satırı oluşur. Yine de “kesin void” istiyorsanız bu endpoint’i kullanın.

Pre-Auth iptali

Henüz capture edilmemiş bir Pre-Auth (ön provizyon) bu endpoint ile iptal edilebilir — rezervasyon serbest bırakılır:
curl -X POST https://vpos.payven.com.tr/api/v1/payments/8e3f5c12-.../void \
  -H "Authorization: Bearer $PAYVEN_TOKEN" \
  -H "Idempotency-Key: hotel-1001-void"
Detay: Pre-Auth ve Capture.

Hata response’ları

HTTPcodeAnlam
404payment_not_foundİşlem bulunamadı
422void_not_allowed_after_settlementMutabakat sonrası void yapılamaz — /refund kullanın
422payment_already_voidedİşlem zaten iptal edilmiş
422payment_not_voidableBu durumdaki işlem iptal edilemez (örn. başarısız, iade edilmiş)
422bank_declinedBanka iptal isteğini reddetti — yanıttaki provider_error_code’a bakın
Hata yanıtı RFC 9457 problem+json formatındadır. Detay: Hata Yönetimi.

Webhook olayları

OlayAçıklama
void.completedİptal başarıyla tamamlandı (data.status: "canceled")
void.failedİptal banka tarafından reddedildi
Detay: Webhook Olayları.