Rubikpara

Ödeme Akışı

PF Gateway API ile uçtan uca ödeme akışının adım adım açıklaması.

PF Gateway API ile iki farklı ödeme yöntemi desteklenmektedir. Aşağıdaki diyagramda akışları seçerek her adımı inceleyebilirsiniz.

Her API çağrısı için yeni bir imza oluşturmanız gerekir. Aynı Nonce/Signature çifti tekrar kullanılamaz. Detaylı bilgi: Kimlik Doğrulama


Canlı Playground

Aşağıda uçtan uca ödeme akışını gerçek API çağrıları ile çalıştırabilirsiniz. Kart bilgilerini girin, akış tipini seçin ve Tüm Akışı Başlat butonuna tıklayın. Her adımın isteği ve yanıtı anlık olarak görüntülenir.

Playground yalnızca test ortamında çalışır. Test kartlarını kullanın.

7 adım — 3DS doğrulamada duraklar

Kimlik Doğrulama

Kart Bilgileri

Ödeme & 3DS

Callback URL localhost içermemeli — banka public bir adrese yönlendirir.


Adım Adım Detaylı Açıklama

1. İmza Oluşturma

Her API isteğinden önce kimlik doğrulama değerlerini hazırlayın. Production kendi sunucunuzda HMAC-SHA256 ile oluşturun, test ortamında aşağıdaki endpoint'i kullanın:

İstek
POST /v1/Signatures/generate-test-signature
Content-Type: application/json

{
  "publicKey": "your-public-key",
  "merchantNumber": "000001",
  "conversationId": "conv-001"
}
Yanıt
{
  "publicKey": "your-public-key",
  "nonce": "1770629965755",
  "signature": "dZspDJX18zdC1MnX4d0mhIX0F3IitK0+DQb5ZyxqR3U=",
  "conversationId": "conv-001",
  "merchantId": "e7051f0d-..."
}

Yanıttaki publicKey, nonce, signature, conversationId değerlerini sonraki tüm adımlarda kullanacaksınız.

Kimlik Doğrulama Rehberi

İmza oluşturma algoritması, kod örnekleri ve detaylı açıklama

2. Kart Tokenizasyon

Müşterinin kart bilgilerini güvenli bir token'a dönüştürün. Auth bilgileri form field olarak gönderilir:

İstek
POST /v1/Tokens
Content-Type: multipart/form-data

CardNumber=4111111111111111
ExpireMonth=12
ExpireYear=2026
Cvv=123
PublicKey=your-public-key
Nonce=1770629965755
Signature=dZspDJX18zdC1MnX4d0mhIX0F3IitK0+DQb5ZyxqR3U=
ConversationId=conv-001
MerchantNumber=000001
Yanıt
{
  "cardToken": "w2maVeYtMJeQ8lMeB0RLbzZuHt+H5OWGywvTRphsu5k=",
  "signature": "RYYzgryrAzTXxVK7Kor2tDfDsrhn851Efrv94iuITDo=",
  "isSucceed": true,
  "conversationId": "conv-001"
}

Dönen cardToken değerini saklayın. 3D Secure oturum oluşturma ve ödeme adımlarında kullanılacak.

Kart Token Oluştur

Playground'da deneyin

3. Taksit Sorgulama (Opsiyonel)

Kartın desteklediği taksit seçeneklerini ve komisyon oranlarını sorgulayın. Auth bilgileri header olarak gönderilir:

İstek
GET /v1/Installment?BinNumber=411111&Amount=100.00
PublicKey: your-public-key
Nonce: unique-nonce
Signature: hmac-signature
ConversationId: conv-002
MerchantNumber: 000001

Taksit Sorgulama

Playground'da deneyin

4. 3D Secure Oturum Oluşturma

Kart token'ı kullanarak 3D Secure oturumu başlatın. Auth bilgileri header olarak gönderilir:

İstek
POST /v1/ThreeDS/getthreedsession
Content-Type: application/json
PublicKey: your-public-key
Nonce: unique-nonce
Signature: hmac-signature
ConversationId: conv-003
MerchantNumber: 000001

{
  "amount": 100.00,
  "pointAmount": 0,
  "cardToken": "w2maVeYtMJeQ8lMeB0RLbzZuHt+H5OWGywvTRphsu5k=",
  "currency": "TRY",
  "paymentType": "Auth",
  "installmentCount": 1,
  "languageCode": "tr"
}
Yanıt
{
  "threeDSessionId": "3ds_session_abc123",
  "isSucceed": true,
  "conversationId": "conv-003"
}

Dönen threeDSessionId değerini saklayın. 3D Secure başlatma, sonuç kontrol ve ödeme adımlarında kullanılacak.

3D Secure Oturum Oluştur

Playground'da deneyin

5. 3D Secure Başlatma

Kullanıcıyı banka doğrulama sayfasına yönlendirin. Auth bilgileri form field olarak gönderilir:

İstek
POST /v1/ThreeDS/init3ds
Content-Type: multipart/form-data

ThreeDSessionId=3ds_session_abc123
CallbackUrl=https://yoursite.com/3ds-callback
LanguageCode=tr
ClientIpAddress=192.168.1.1
CardHolderName=John Doe
PublicKey=your-public-key
Nonce=unique-nonce
Signature=hmac-signature
ConversationId=conv-004
MerchantNumber=000001

Yanıttan dönen htmlContent'i kullanıcının tarayıcısında render edin. Kullanıcı banka doğrulamasını tamamladığında CallbackUrl'e yönlendirilir.

3D Secure Başlatma

Playground'da deneyin

6. 3D Secure Sonuç Kontrolü

Callback sonrası 3DS doğrulama sonucunu kontrol edin. Auth bilgileri header olarak gönderilir:

İstek
POST /v1/ThreeDS/getthreedsessionresult
Content-Type: application/json
PublicKey: your-public-key
Nonce: unique-nonce
Signature: hmac-signature
ConversationId: conv-005
MerchantNumber: 000001

{
  "threeDSessionId": "3ds_session_abc123",
  "languageCode": "tr"
}

Yanıttaki mdStatus değerini kontrol edin. mdStatus = 1 başarılı doğrulama anlamına gelir. Başarılıysa ödeme adımına geçin.

3D Secure Sonuç Sorgulama

Playground'da deneyin

7. Ödeme (Provizyon)

3DS doğrulaması başarılıysa threeDSessionId ile ödemeyi gerçekleştirin. Auth bilgileri header olarak gönderilir:

İstek
POST /v1/Payments/provision
Content-Type: application/json
PublicKey: your-public-key
Nonce: unique-nonce
Signature: hmac-signature
ConversationId: conv-006
MerchantNumber: 000001

{
  "amount": 100.00,
  "pointAmount": 0,
  "cardToken": "w2maVeYtMJeQ8lMeB0RLbzZuHt+H5OWGywvTRphsu5k=",
  "currency": "TRY",
  "paymentType": "Auth",
  "integrationMode": "Api",
  "installmentCount": 1,
  "threeDSessionId": "3ds_session_abc123",
  "languageCode": "tr",
  "cardHolderName": "John Doe"
}
Yanıt
{
  "isSucceed": true,
  "orderId": "ORD-123456",
  "provisionNumber": "PV-789",
  "description": "Islem basarili"
}

Ödeme (Provizyon)

Playground'da deneyin

3D Secure'suz ödeme sadece belirli üye iş yerleri için aktiftir. Bu yöntemi kullanabilmek için banka/PSP tarafından yetkilendirilmeniz gerekir.

1. İmza Oluşturma

3D Secure'lu akışla aynıdır. Her API isteğinden önce kimlik doğrulama değerlerini hazırlayın:

İstek
POST /v1/Signatures/generate-test-signature
Content-Type: application/json

{
  "publicKey": "your-public-key",
  "merchantNumber": "000001",
  "conversationId": "conv-001"
}
Yanıt
{
  "publicKey": "your-public-key",
  "nonce": "1770629965755",
  "signature": "dZspDJX18zdC1MnX4d0mhIX0F3IitK0+DQb5ZyxqR3U=",
  "conversationId": "conv-001",
  "merchantId": "e7051f0d-..."
}

Kimlik Doğrulama Rehberi

İmza oluşturma algoritması, kod örnekleri ve detaylı açıklama

2. Kart Tokenizasyon

3D Secure'lu akışla aynıdır. Kart bilgilerini token'a dönüştürün:

İstek
POST /v1/Tokens
Content-Type: multipart/form-data

CardNumber=4111111111111111
ExpireMonth=12
ExpireYear=2026
Cvv=123
PublicKey=your-public-key
Nonce=1770629965755
Signature=dZspDJX18zdC1MnX4d0mhIX0F3IitK0+DQb5ZyxqR3U=
ConversationId=conv-001
MerchantNumber=000001
Yanıt
{
  "cardToken": "w2maVeYtMJeQ8lMeB0RLbzZuHt+H5OWGywvTRphsu5k=",
  "signature": "RYYzgryrAzTXxVK7Kor2tDfDsrhn851Efrv94iuITDo=",
  "isSucceed": true,
  "conversationId": "conv-001"
}

Dönen cardToken değerini saklayın. Ödeme adımında kullanılacak.

Kart Token Oluştur

Playground'da deneyin

3. Taksit Sorgulama (Opsiyonel)

3D Secure'lu akışla aynıdır. Taksit seçeneklerini sorgulayabilirsiniz:

İstek
GET /v1/Installment?BinNumber=411111&Amount=100.00
PublicKey: your-public-key
Nonce: unique-nonce
Signature: hmac-signature
ConversationId: conv-002
MerchantNumber: 000001

Taksit Sorgulama

Playground'da deneyin

4. Ödeme (Provizyon) — Doğrudan

3D Secure adımları atlanır. cardToken ile doğrudan ödemeyi tamamlayın. threeDSessionId göndermenize gerek yoktur:

İstek
POST /v1/Payments/provision
Content-Type: application/json
PublicKey: your-public-key
Nonce: unique-nonce
Signature: hmac-signature
ConversationId: conv-003
MerchantNumber: 000001

{
  "amount": 100.00,
  "pointAmount": 0,
  "cardToken": "w2maVeYtMJeQ8lMeB0RLbzZuHt+H5OWGywvTRphsu5k=",
  "currency": "TRY",
  "paymentType": "Auth",
  "integrationMode": "Api",
  "installmentCount": 1,
  "languageCode": "tr",
  "cardHolderName": "John Doe"
}
Yanıt
{
  "isSucceed": true,
  "orderId": "ORD-123456",
  "provisionNumber": "PV-789",
  "description": "Islem basarili"
}

3D Secure'suz ödemede threeDSessionId alanı gönderilmez veya boş bırakılır. Diğer tüm alanlar aynıdır.

Ödeme (Provizyon)

Playground'da deneyin


Ödeme Sonrası İşlemler

On this page