HSRCPAY Dökümantasyon

Payments Akışı

Payment oluşturma, confirm, durum takibi ve operasyonel öneriler.

Payment oluşturmak tahsilat başlatmaz; parayı çekmek için confirm gerekir. SDK örnekleri REST modelini yansıtır; ayrıntılı lifecycle için Ödeme Yaşam Döngüsü ve Confirm sayfasına bakın.

Ödeme oluşturma

const payment = await hsrcpay.payments.create({
  amount: 15900,
  currency: "TRY",
  autoCapture: true,
  secureMode: true,
  metadata: { cartId: "CART-1042" },
});
// payment.status genelde CREATED

Confirm

const result = await hsrcpay.payments.confirm(payment.id, {
  paymentMethod: { id: "pm_xxx" },
  payerIdentity: {
    ipAddress: clientIp,
    userAgent: request.headers.get("user-agent") ?? "",
  },
});

if (result.payment.status === "REQUIRES_ACTION" && result.confirmResult.paymentNextAction?.url) {
  redirect(result.confirmResult.paymentNextAction.url);
}

Confirm yanıtında hem güncel payment hem confirmResult (orchestrator özeti) gelir; sipariş kararını yalnızca payment.status ile vermeyin, webhook ile mutabakat yapın.

Durumlar (API)

StatusKısa anlam
CREATEDKayıt açıldı, confirm bekliyor
REQUIRES_PAYMENT_METHODYöntem yok veya son deneme başarısız
REQUIRES_ACTION3DS / yönlendirme
AUTHORIZEDAuth-only başarı
SUCCEEDEDTahsilat tamamlandı
CANCELED / REFUNDED / EXPIREDTerminal veya iade

Decline detayı çoğunlukla charge kaydında (DECLINED); payment tarafında tekrar confirm planlanabilir.

Uygulama tarafı state haritası

Kendi sipariş state’inizi API enum’una 1

kilitlemeyin; arada pending, awaiting_3ds, paid gibi domain katmanı kullanın.

Hatalar

  • 4xx: payload, yetki veya iş kuralı
  • 409: idempotency çakışması (yazma işlemlerinde)
  • 5xx: geçici; aynı idempotency key ile sınırlı retry, ardından payment GET

Bu sayfada