API reference

Taksitler

Taksit (installment) yalnızca kredi kartlarında kullanılabilir. Banka ve ön ödemeli kartlar her zaman tek çekimle tahsil edilir. Platform, belirli bir kartın üye işyerinizde hangi taksit sayılarıyla ödeme yapabileceğini ve maliyeti kimin üstlendiğini hesaplar; bu yüzden seçenekleri müşteriye göstermeden önce platforma sorun.

Her kart neden taksitle ödeme yapamaz

Türkiye'de taksit; Bonus, World, Axess, Maximum, Paraf ve Bankkart gibi kart programları üzerinden çalışır. Bir program tek bir sahip bankaya aittir; diğer bankalar da programa katılarak kredi kartlarına aynı programı taşıyabilir. Taksitli ödeme yalnızca aşağıdakilerin hepsi sağlandığında başarılı olur:

Sonuç karttan karta değişir; bu nedenle sabit bir liste sunmak yerine kartın BIN'i (ilk 6 ila 8 hanesi) ile önizleme istersiniz.

Seçenekleri önizleme

POST /v1/installment_plans/preview bir yayınlanabilir anahtar kabul eder; böylece müşteri kartın ilk hanelerini yazarken doğrudan ödeme sayfasından veya gizli anahtarla sunucunuzdan çağırabilirsiniz. Bu uç noktaya asla tam kart numarası göndermeyin.

{
  "bin": "435508",
  "amount": 100000,
  "currency": "try"
}
curl -X POST https://pay.example.com/v1/installment_plans/preview \
  -H "Authorization: Bearer pk_sandbox_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"bin": "435508", "amount": 100000, "currency": "try"}'

Kayıtlı bir kart için bin yerine "payment_method": "pm_…" gönderin.

{
  "object": "installment_preview",
  "card": {
    "brand": "visa",
    "card_type": "credit",
    "program": "axess",
    "programs": ["axess"],
    "issuer_bank_code": "0046",
    "domestic": true
  },
  "installment_surcharge_mode": "customer_pays",
  "plans": [
    {"count": 1, "amount": 100000, "surcharge": 0, "amount_charged": 100000, "per_installment": 100000, "first_installment": 100000},
    {"count": 3, "amount": 100000, "surcharge": 3500, "amount_charged": 103500, "per_installment": 34500, "first_installment": 34500},
    {"count": 6, "amount": 100000, "surcharge": 6900, "amount_charged": 106900, "per_installment": 35633, "first_installment": 35635}
  ]
}

plans yalnızca bu kartın sizinle gerçekten ödeyebileceği sayıları listeler; herhangi bir terminal kartı kabul edebiliyorsa 1 sayısı her zaman listelenir. Banka kartı veya yabancı kart genellikle yalnızca 1 sayısını alır.

Kim öder: installment_surcharge_mode

Her plandaki tutarlar minor birimlerle ifade edilen tam sayılardır:

Alan Anlamı
amount Ana tutar B; sizin belirlediğiniz fiyat.
surcharge Müşterinin ödediği taksit maliyeti S (siz üstlenirseniz 0).
amount_charged Karttan tahsil edilen tutar: A = B + S.
per_installment floor(A / count).
first_installment Yuvarlama kalanını taşıyan ilk taksit: A - (count - 1) × per_installment.

Müşteriye amount_charged değerini ve taksit başına tutarı gösterin.

Taksitle ödeme

Ödemeyi oluştururken veya onaylarken seçilen sayıyı gönderin. amount alanını ana tutar olarak bırakın; vade farkını platform ekler.

{
  "amount": 100000,
  "currency": "try",
  "confirm": true,
  "payment_method_data": {
    "type": "card",
    "card": {
      "number": "4355080000000013",
      "exp_month": 12,
      "exp_year": 2030,
      "cvc": "123",
      "holder_name": "Test Customer"
    },
    "billing_details": {
      "name": "Test Customer",
      "address": {"line1": "Bagdat Caddesi 1", "city": "Kadikoy", "country": "TR"}
    }
  },
  "payment_method_options": {"card": {"installments": {"count": 3}}},
  "return_url": "https://shop.example.com/pay/return"
}

Ödeme bu durumda installments: 3, amount: 100000 (ana tutar), surcharge: 3500 ve amount_charged: 103500 değerlerini gösterir. Satışa sonradan yapılan göndermeler ana tutarı kullanır: amount_received ve iadeler (POST /v1/refunds) ana tutar birimindedir. Ana tutarın tamamının iadesi, orantılı vade farkını da karta geri döndürür (amount_returned_to_card).

Hatalar

Hata Anlamı
402 installments_not_available (card_error, decline_code: installment_not_supported, param: payment_method_options[card][installments][count]) Hiçbir terminal bu kart için bu sayıyı çalıştırmıyor. Önizlemeyi çağırın ve listelenen sayılardan birini sunun.
402 no_eligible_terminal Hiçbir terminal bu kartı hiçbir şekilde kabul edemiyor; tahsilat yapılmadı.
İhraççıdan gelen decline_code: installment_not_supported ile 402 Kartı ihraç eden banka bu kart için taksiti reddetti. Tek çekim olarak veya başka bir kartla yeniden deneyin.

Sunduğunuz seçenekleri her zaman güncel bir önizlemeye dayandırın: terminaller, programlar ve fiyat listeniz değişebilir.