Hızlı Başlangıç
Bu rehber, hosted checkout formu ile sıfırdan tamamlanmış bir kart ödemesine götürür — en hızlı, en düşük uyumluluk yüklü yol. Sunucunuz bir payment intent oluşturur, alıcı Lunixi'nin formunda öder, siz sonucu doğrularsınız. Kart verisi sunucunuza hiç uğramaz.
Tüm tutarlar minor-unit (kuruş) cinsinden tam sayıdır: "amount": 10050 = ₺100,50.
API key'lerinizi alın
Merchant panelden şunları oluşturun:
- bir Ed25519 anahtar çifti — sunucunuzdan
POST /api/v1/auth/tokenile kısa ömürlü Bearer token (at_live_…) basmak için, ve - bir Ed25519 imza anahtarı — key id'si (
kid) ve özel anahtarı, para hareketi isteklerini imzalamak için kullanılır.
Payment intent oluşturmak bir para hareketi çağrısıdır; bu yüzden Step-Up auth (Bearer + imza) gerektirir. İmzalama prosedürü adım adım Kimlik Doğrulama sayfasında anlatılır.
Payment intent oluşturun
Backend'inizden ₺100,50'lik bir intent oluşturun. Minimal body yalnızca tutar, para birimi ve sipariş referansınızdır:
curl -X POST "https://api-gateway.lunixi.com/api/v1/payments/intents" \
-H "Authorization: Bearer at_live_5f3e2b1a..." \
-H "Content-Type: application/json" \
-H "X-Key-Id: key_01JZ8H2M4Q" \
-H "X-Date: 2026-07-06T12:00:00.000Z" \
-H "X-Nonce: 9f8d2c4e-1a3b-4c5d-8e7f-0a1b2c3d4e5f" \
-H "Digest: SHA-256=k6I5cUt...=" \
-H "X-Signature: MEUCIQDx...==" \
-H "Idempotency-Key: order-ORD-9988-attempt-1" \
-d '{
"amount": 10050,
"currency": "TRY",
"orderId": "ORD-9988",
"callbackUrl": "https://shop.example.com/payment/result"
}'Yanıt, tarayıcıya vereceğiniz form token'ını içerir:
{
"id": "pay_01JZ8K4W9X2R",
"token": "eyJhbGciOiJIUzI1NiIs...",
"allowedOrigin": "https://shop.example.com",
"expiresAt": "2026-07-06T12:15:00.000Z"
}Token tek amaçlıdır, kayıtlı origin'inize bağlıdır ve ~15 dakikada sona erer — her checkout denemesi için yeni bir intent oluşturun.
Intent create çok daha fazla alan kabul eder — alıcı ve sepet detayları, taksit, force3D, istek bazlı settings override'ları (3D modu, Alıcı Koruması, ödeme yöntemi daraltma). Tam referans için Checkout Formu sayfasına bakın.
Hosted checkout formunu açın
Alıcının tarayıcısında Lunixi checkout SDK'sını yükleyin ve formu intent token'ı ile mount edin. SDK; kart formunu render eder, fraud bootstrap'ini çalıştırır, taksit seçeneklerini çözer ve 2D/3D çekimi yürütür — hepsi Lunixi'nin güvenli alanları içinde.
<div id="lunixi-checkout-form"></div>
<script src="https://cdn.lunixi.com/lunixi-checkout.min.js"></script>
<script>
const checkout = Lunixi.checkout.create({
type: 'payment',
target: 'lunixi-checkout-form',
options: {
token: 'eyJhbGciOiJIUzI1NiIs...', // POST /payments/intents yanıtındaki token
},
});
checkout.mount('#lunixi-checkout-form');
</script>3D Secure gerekiyorsa alıcı banka doğrulamasına yönlendirilir ve geri döner; nihai sonuç ayrıca callbackUrl'inize HMAC-imzalı bir form POST olarak iletilir.
Sonucu doğrulayın
Yalnızca tarayıcı yönlendirmesine asla güvenmeyin — sunucu tarafında iki yolla doğrulayın:
1. Webhook'lar (önerilen). Lunixi sonucu endpoint'inize iletir:
{
"type": "payment.captured",
"data": {
"intentId": "9c6f2b1a-4e8d-4a3f-b5e6-2d7c1a9b8e30",
"orderId": "ORD-9988",
"currency": "TRY",
"status": "CAPTURED",
"capturedAmountMinor": "10050"
}
}(kısaltılmış — tam teslimat zarfı ve imza header'ları Webhook'lar sayfasında)
Başarısız çekim payment.failed, terk edilen checkout payment.expired olarak gelir. Teslimat ve imza doğrulamasını Webhook'lar sayfasında kurun.
2. Ödemeyi sorgulayın. Güncel durumu istediğiniz an çekin:
curl "https://api-gateway.lunixi.com/api/v1/payments/9c6f2b1a-4e8d-4a3f-b5e6-2d7c1a9b8e30" \
-H "Authorization: Bearer at_live_5f3e2b1a..."{
"status": "success",
"code": "PAYMENT_FOUND",
"data": {
"id": "9c6f2b1a-4e8d-4a3f-b5e6-2d7c1a9b8e30",
"orderId": "ORD-9988",
"status": "CAPTURED",
"amount": 10050,
"currency": "TRY",
"installment": 1,
"createdAt": 1783772591000
}
}Status CAPTURED olduğunda (veya sonradan capture ediyorsanız AUTHORIZED olduğunda) siparişi gönderin.
Sonraki adımlar
- Checkout Formu — tüm intent alanları,
force3D, settings override'ları, Alıcı Koruması - Kart — 3D Secure — doğrulama akışının detayı
- Taksit & BIN — gösterilen fiyata bağlanan taksit quote'ları
- İade ve Ön Provizyon, Capture & İptal — ödeme sonrası işlemler
- Webhook'lar — güvenilir, imzalı event teslimatı
- Linkle Ödeme — sitenizde ödeme formu olmadan, paylaşılabilir bir linkle ödeme alın