Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.payven.com.tr/llms.txt

Use this file to discover all available pages before exploring further.

Non-3D ödeme, en basit ödeme akışıdır. Tek bir API isteğiyle ödeme tamamlanır — kart bilgileri Payven’e iletilir, Payven banka onayını alır ve sonucu döner.
Risk: Non-3D işlemlerde kart sahibi doğrulaması yapılmadığı için chargeback (ters ibraz) sorumluluğu sizdedir. Tüketici ödemelerinde 3D Secure önerilir. Non-3D, kapalı devre B2B ortamları veya düşük risk segmentleri için uygundur.

Endpoint

POST /api/v1/payments

Akış

İstek

curl -X POST https://vpos.payven.com.tr/api/v1/payments \
  -H "X-API-Key: $PAYVEN_KEY" \
  -H "X-API-Secret: $PAYVEN_SECRET" \
  -H "X-Merchant-Id: $PAYVEN_MERCHANT" \
  -H "Idempotency-Key: order-1001-payment" \
  -H "Content-Type: application/json" \
  -d '{
    "externalId": "ORDER-1001",
    "amount": 15000,
    "currency": "TRY",
    "installment": 1,
    "use3D": false,
    "card": {
      "holderName": "Test Kullanici",
      "number": "4546711234567894",
      "expireMonth": "12",
      "expireYear": "2030",
      "cvv": "000"
    },
    "buyer": {
      "id": "cust-001",
      "email": "musteri@example.com",
      "ip": "85.105.10.10"
    },
    "metadata": {
      "campaignId": "summer-2026"
    }
  }'

İstek alanları

AlanTipZorunluAçıklama
externalIdstringSipariş kimliğiniz
amountintTutar (kuruş)
currencyenumTRY, USD, EUR, GBP
installmentintTaksit sayısı (1 = peşin)
use3Dboolfalse
card.holderNamestringKart üzerindeki isim
card.numberstringKart numarası (boşluksuz)
card.expireMonthstringİki hane (0112)
card.expireYearstringDört hane
card.cvvstring3-4 hane
buyer.idstring⚠️Müşteri kimliğiniz (fraud için faydalı)
buyer.emailstring⚠️Müşteri e-postası
buyer.ipstring⚠️Müşterinin IP adresi
metadataobjectSizin tanımladığınız anahtar-değer çiftleri

Başarılı yanıt

{
  "isSuccess": true,
  "code": "200",
  "message": "Başarılı.",
  "data": {
    "id": "8e3f5c12-...",
    "externalId": "ORDER-1001",
    "status": "Success",
    "amount": 15000,
    "currency": "TRY",
    "installment": 1,
    "use3D": false,
    "card": {
      "binNumber": "454671",
      "lastFourDigits": "7894",
      "scheme": "Visa",
      "type": "Credit",
      "program": "Bonus",
      "bankCode": "GARANTI",
      "bankName": "Garanti BBVA"
    },
    "connector": {
      "code": "GarantiVPOS",
      "responseCode": "00",
      "responseMessage": "Onaylandı",
      "hostReference": "PAYVEN-REF-789",
      "authCode": "123456"
    },
    "createdAt": "2026-05-03T12:34:56Z",
    "completedAt": "2026-05-03T12:34:58Z"
  }
}
status: "Success" → ödeme başarıyla tamamlandı.

Başarısız yanıt

Banka tarafından reddedilen bir ödeme:
{
  "isSuccess": false,
  "code": "BANK_DECLINED",
  "message": "Banka işlemi reddetti.",
  "data": {
    "id": "8e3f5c12-...",
    "externalId": "ORDER-1001",
    "status": "Failed",
    "connector": {
      "code": "GarantiVPOS",
      "responseCode": "51",
      "responseMessage": "Yetersiz bakiye"
    }
  }
}
connector.responseCode ve responseMessage alanları banka tarafından dönen orijinal yanıttır. Tam liste için: Banka Yanıt Kodları.

Sonraki adımlar

3D Secure'a geçin

Tüketici işlemlerinde chargeback riskini azaltın.

İade işlemi

Tam veya kısmi iade nasıl yapılır?

Webhook entegre edin

Asenkron sonuçları gerçek zamanlı alın.

Akıllı yönlendirme

Birden fazla bankaya nasıl yönlendirilir?