Skip to main content
POST
/
api
/
v1
/
checkout
/
sessions
/
{session_id}
/
pay
Hosted checkout oturumunda ödeme yap
curl --request POST \
  --url https://vpos-sandbox.payven.com.tr/api/v1/checkout/sessions/{session_id}/pay \
  --header 'Content-Type: application/json' \
  --data '
{
  "amount": {
    "amount": 15000,
    "currency": "TRY"
  },
  "installment": 1,
  "card": {
    "holder_name": "<string>",
    "number": "<string>",
    "expire_month": "<string>",
    "expire_year": "<string>",
    "cvv": "<string>"
  },
  "callback_url": "https://example.com/3ds/return",
  "external_id": "ORDER-1001",
  "basket_id": "BASKET-2026-001",
  "description": "<string>",
  "buyer": {
    "id": "cust-001",
    "name": "Ahmet",
    "surname": "Yılmaz",
    "email": "musteri@example.com",
    "phone": "+905551112233",
    "ip_address": "85.105.10.10",
    "identity_number": "12345678901"
  },
  "billing_address": {
    "contact_name": "Ahmet Yılmaz",
    "city": "İstanbul",
    "country": "TR",
    "address": "Maslak Mh. ...",
    "postal_code": "34485"
  },
  "shipping_address": {
    "contact_name": "Ahmet Yılmaz",
    "city": "İstanbul",
    "country": "TR",
    "address": "Maslak Mh. ...",
    "postal_code": "34485"
  },
  "basket_items": [
    {
      "name": "Kablosuz kulaklık",
      "price": 7500,
      "quantity": 2,
      "id": "SKU-001"
    }
  ],
  "cancel_url": "https://example.com/checkout/cancel",
  "return_url": "<string>",
  "operation_type": "sale",
  "extra_properties": {}
}
'
{
  "transaction_id": "8e3f5c12-9a7b-4c8d-bc4e-2c963f66afa6",
  "status": "completed",
  "is_success": true,
  "message": "İşlem başarıyla tamamlandı",
  "error_code": "bank_declined",
  "provider_error_code": "51",
  "extra_properties": {}
}

Headers

Idempotency-Key
string

Path Parameters

session_id
string
required

Body

application/json

3D Secure ödeme başlatma isteği. CreatePaymentRequest ile aynı alanlara ek olarak callback/return/cancel URL'leri taşır.

amount
object
required

İşlem tutarı (kuruş + currency).

installment
integer<int32>
required

Taksit sayısı. 1 = peşin.

Example:

1

card
object
required

Kart bilgileri.

callback_url
string | null
required

Zorunlu. 3DS doğrulaması sonrası bankanın kullanıcıyı geri yönlendireceği HTTPS URL'iniz. Buradan gelen transaction_id ile /payments/3d/complete çağrılır.

Example:

"https://example.com/3ds/return"

external_id
string | null

Sizin sipariş kimliğiniz.

Example:

"ORDER-1001"

basket_id
string | null

Sepet kimliği.

Example:

"BASKET-2026-001"

description
string | null
buyer
object

Müşteri bilgileri — fraud sinyalleri ve banka risk skoru için.

billing_address
object

Adres bilgisi (fatura veya teslimat).

shipping_address
object

Adres bilgisi (fatura veya teslimat).

basket_items
object[] | null
cancel_url
string | null

Müşteri 3DS akışını iptal ederse yönlendirileceği URL.

Example:

"https://example.com/checkout/cancel"

return_url
string | null

Sonuç sayfasına yönlendirme için (success/fail unified). callback_url farklı sebeple kullanılır.

operation_type
enum<string>

sale (varsayılan) veya pre_auth.

Available options:
Sale,
PreAuth,
PostAuth,
Void,
Refund,
Recurring
Example:

"sale"

extra_properties
object

Konnektör-spesifik özel alanlar.

Response

OK

Yazma operasyonlarından (POST /payments, /refund, /void, /capture) dönen sonuç.

transaction_id
string<uuid>
required

Payven tarafından atanan benzersiz işlem kimliği. Sorgulama / aksiyon endpoint'lerinde URL parametresi olarak kullanılır.

Example:

"8e3f5c12-9a7b-4c8d-bc4e-2c963f66afa6"

status
string | null

İşlemin mevcut durumu: pending, pending_3ds, authorized, completed, failed, voided, refunded, partially_refunded.

Example:

"completed"

is_success
boolean

Operasyon başarılı mı? Geçiş döneminde tutuluyor — yeni kodlarda HTTP status kodunu konuşturun (2xx başarı, 4xx/5xx hata).

Example:

true

message
string | null

İnsan-okur durum mesajı.

Example:

"İşlem başarıyla tamamlandı"

error_code
string | null

Yalnızca başarısız işlemlerde dolar — Payven canonical hata kodu.

Example:

"bank_declined"

provider_error_code
string | null

Yalnızca başarısız işlemlerde dolar — bankanın orijinal yanıt kodu.

Example:

"51"

extra_properties
object

Banka-spesifik ek alanlar: auth_code, host_reference, provider_transaction_id, processed_at vb.