Versiyon 1.0.0
Güvenli ve kolay entegre edilebilir ödeme bağlantısı çözümü.
Kolay implementasyon ve hızlı entegrasyon imkanı
End-to-end şifrelenmiş güvenli ödeme altyapısı
Gerçek zamanlı işlem bildirimleri
/api/get-token
API erişimi için token almak üzere kullanılır.
app_key
- Merchant panel üzerinden alınan app_keyapp_secret
- Merchant panel üzerinden alınan app_secret/api/whitelabel-b2c-wallet-transfer
İşletme cüzdanından müşteri cüzdanına para transferi yapmak için kullanılır.
customer_number
- Müşteri numarası (customer_email veya customer_phone_number olmadığında zorunlu)customer_name
- Müşterinin tam adı (zorunlu)lock_minute
- İşlem kilidi süresi (zorunlu)amount
- Transfer tutarı (zorunlu)currency
- Para birimi kodu (örn: TRY) (zorunlu)reference_id
- Benzersiz referans numarası (zorunlu)desc
- İşlem açıklaması (opsiyonel)/api/whitelabel-c2b-wallet-transfer-otp
Müşteriden işletmeye transfer işlemi için OTP kodu gönderimi yapar.
customer_email
- Müşteri e-posta adresi (zorunlu)customer_name
- Müşterinin tam adı (zorunlu)amount
- Transfer tutarı (zorunlu)currency
- Para birimi kodu (örn: TRY) (zorunlu)reference_id
- Benzersiz referans numarası (zorunlu)desc
- İşlem açıklaması (opsiyonel)/api/whitelabel-c2b-wallet-transfer
OTP doğrulaması ile müşteriden işletmeye transfer işlemini tamamlar.
reference_id
- OTP gönderimi sırasında kullanılan referans numarası (zorunlu)otp_code
- SMS ile gönderilen doğrulama kodu (zorunlu)/api/payment-link/create
Yeni bir ödeme bağlantısı oluşturmak için kullanılır.
reference_id
- Benzersiz referans numarasıamount
- İşlem tutarı (opsiyonel)success_callback_url
- Başarılı işlem yönlendirme URL'ifail_callback_url
- Başarısız işlem yönlendirme URL'iwebhook_callback_url
- Webhook bildirim URL'idesc
- İşlem açıklaması (opsiyonel)/api/get-dekont
İşlem dekontunu PDF veya HTML formatında almak için kullanılır.
tracking_id
- İşlem takip numarasıtype
- İşlem tipi (c-to-b, b-to-c, c-to-b-link, c-to-c, deposit, withdraw)Accept: application/pdf
- PDF formatında dekontAccept: text/html
- HTML formatında dekontAPI'yi kullanmaya başlamadan önce merchant hesabınıza ait app_key ve app_secret bilgilerini kullanarak bir Bearer token almanız gerekmektedir.
POST /api/get-token
Parametre | Tip | Zorunlu | Açıklama |
---|---|---|---|
app_key |
string | Evet | Merchant panel üzerinden alınan app_key |
app_secret |
string | Evet | Merchant panel üzerinden alınan app_secret |
{ "status": true, "message": "Token başarıyla oluşturuldu", "data": { "token": "1|abcdef123456...", "token_type": "Bearer" } }
401 - Geçersiz Kimlik
{ "status": false, "message": "Geçersiz kimlik bilgileri" }
422 - Validasyon Hatası
{ "status": false, "message": "Validasyon hatası", "errors": { "app_key": ["App key zorunludur"], "app_secret": ["App secret zorunludur"] } }
Aldığınız token'ı tüm API isteklerinizde Authorization header'ında yukarıdaki formatta göndermeniz gerekmektedir. Tokenlar süresiz geçerlidir ancak güvenlik nedeniyle düzenli olarak yenilemeniz önerilir.
Bu API, müşteri cüzdanından işletme cüzdanına para transferi yapılmasını sağlar. İşlem iki adımda gerçekleşir: İlk olarak müşteri bilgileri doğrulanır ve OTP (SMS) kodu gönderilir, ardından OTP doğrulaması ile transfer tamamlanır. Her iki adım için ayrı endpoint kullanılır.
/api/whitelabel-c2b-wallet-transfer-otp
Authorization: Bearer Token gerekli
Content-Type: application/json
Parametre | Tip | Zorunlu | Açıklama |
---|---|---|---|
customer_email |
string | Evet | Müşteri e-posta adresi |
customer_name |
string | Evet | Müşterinin tam adı (ad soyad) |
amount |
numeric | Evet | Transfer tutarı |
currency |
string | Evet | Para birimi kodu (örn: TRY) |
reference_id |
string | Evet | Benzersiz referans numarası |
desc |
string | Hayır | İşlem açıklaması |
curl -X POST 'https://api.example.com/api/whitelabel-c2b-wallet-transfer-otp' \ -H 'Authorization: Bearer your-token-here' \ -H 'Content-Type: application/json' \ -d '{ "customer_email": "[email protected]", "customer_name": "Ahmet Yılmaz", "amount": 100.00, "currency": "TRY", "reference_id": "TRX123456", "desc": "Market alışverişi ödemesi" }'
{ "statusCode": 200, "message": "Doğrulama kodu gönderildi", "requires_otp": true, "data": { "tracking_id": "abc123def456" } }
/api/whitelabel-c2b-wallet-transfer
Authorization: Bearer Token gerekli
Content-Type: application/json
Parametre | Tip | Zorunlu | Açıklama |
---|---|---|---|
reference_id |
string | Evet | İlk adımda kullanılan referans numarası |
otp_code |
string | Evet | SMS ile gönderilen doğrulama kodu |
curl -X POST 'https://api.example.com/api/whitelabel-c2b-wallet-transfer' \ -H 'Authorization: Bearer your-token-here' \ -H 'Content-Type: application/json' \ -d '{ "reference_id": "TRX123456", "otp_code": "123456" }'
{ "statusCode": 200, "message": "Transfer başarıyla tamamlandı", "data": { "tracking_id": "abc123def456", "amount": 100.00, "currency": "TRY" } }
{ "statusCode": 401, "message": "Geçersiz token" }
{ "statusCode": 404, "message": "Müşteri bulunamadı" }
{ "statusCode": 409, "message": "İşlem zaten devam ediyor" }
{ "statusCode": 400, "message": "Bakiye yetersizdir." }
{ "statusCode": 400, "message": "Geçersiz doğrulama kodu. Kalan deneme hakkı: 2" }
{ "statusCode": 400, "message": "Doğrulama süresi dolmuş" }
• Transfer işlemi iki adımda tamamlanır: OTP gönderimi ve doğrulama.
• OTP kodunun geçerlilik süresi 5 dakikadır.
• Yanlış OTP kodu için maksimum 3 deneme hakkı vardır.
• Her işlem için benzersiz bir reference_id kullanılmalıdır.
• Transfer öncesi müşteri bakiyesi kontrol edilir.
• Müşteri adı-soyadı bilgileri sistemdeki kayıtlarla eşleşmelidir.
• İşlemler anlık gerçekleşir ve geri alınamaz.
• Doğrulama kodları SMS ile müşterinin kayıtlı telefon numarasına gönderilir.
• Aynı reference_id ile tekrar işlem yapılamaz.
Bu endpoint, işletmenizin cüzdanından müşteri cüzdanına para transferi yapmanızı sağlar. Transfer işlemi anlık olarak gerçekleşir ve müşteriye otomatik bildirim gönderilir. Müşteri numarası, e-posta adresi veya telefon numarası ile transfer yapabilirsiniz. İşlem sırasında müşteri bilgileri ve adı-soyadı doğrulaması yapılır.
/api/whitelabel-b2c-wallet-transfer
Authorization: Bearer Token gerekli
Content-Type: application/json
Parametre | Tip | Zorunlu | Açıklama |
---|---|---|---|
customer_number |
string | Evet | Müşteri numarası |
customer_name |
string | Evet | Müşterinin tam adı (ad soyad) |
lock_minute |
numeric | Evet | Yeni transfer yapılabilmesi için kilit süresi (dakika) |
amount |
numeric | Evet | Transfer tutarı |
currency |
string | Evet | Para birimi kodu (örn: TRY) |
reference_id |
string | Evet | Benzersiz referans numarası |
desc |
string | Hayır | İşlem açıklaması |
curl -X POST 'https://panel.{{ config('app.lower_name') }}/api/whitelabel-b2c-wallet-transfer' \ -H 'Authorization: Bearer your-token-here' \ -H 'Content-Type: application/json' \ -d '{ "customer_number": "123456789", "customer_name": "Ahmet Yılmaz", "lock_minute": 5, "amount": 100.00, "currency": "TRY", "reference_id": "TRX123456", "desc": "Ödeme iadesi" }'
{ "statusCode": 200, "message": "Transfer başarıyla tamamlandı", "data": { "tracking_id": "abcdef123456", "amount": 100.00, "currency": "TRY" } }
{ "statusCode": 401, "message": "Geçersiz token" }
{ "statusCode": 422, "message": "Geçersiz form verileri", "errors": { "customer_name": ["The customer name field is required"] } }
{ "statusCode": 404, "message": "Müşteri bulunamadı" }
{ "statusCode": 404, "message": "Müşteri bilgileri uyuşmuyor" }
{ "statusCode": 409, "message": "Müşteri işlem yapmaya kilitli" }
{ "statusCode": 400, "message": "Bakiye yetersiz" }
• İşlem için yeterli bakiye kontrolü yapılır.
• Her işlem için benzersiz bir reference_id kullanılmalıdır.
• İşlemler anlık gerçekleşir ve geri alınamaz.
• Müşteri adı-soyadı tam ve doğru girilmelidir.
• İşlem kilidi süresi boyunca aynı müşteriye yeni transfer yapılamaz.
Merchant sistemi, API'ye gerekli parametrelerle birlikte bir POST isteği göndererek yeni bir ödeme bağlantısı oluşturur.
Gerekli Parametreler:
Başarılı yanıtta alınan payment_url'e müşteri yönlendirilir. Bu URL, ödeme işlemi için benzersiz bir hash değeri içerir.
https://panel.{{ config('app.lower_name') }}/payment-link/form/hash
Müşteri, ödeme sayfasında telefon numarasını girer. Sistem bu numarayı doğrular ve kayıtlı müşteri olup olmadığını kontrol eder.
Önemli Notlar:
Doğrulanmış telefon numarasına tek kullanımlık şifre (OTP) gönderilir. Müşterinin bu kodu girmesi beklenir.
Doğrulama Süreci:
OTP doğrulaması başarılı olduktan sonra, ödeme tutarı belirlenir veya onaylanır ve işlem gerçekleştirilir.
İşlem Adımları:
İşlemin sonucu webhook ile merchant sisteme bildirilir ve müşteri ilgili callback URL'e yönlendirilir.
Sonuç Akışı:
Ödeme bağlantısı oluşturma endpointi, müşterilerinize özel ödeme sayfaları oluşturmanıza olanak tanır. Bu endpoint ile sabit tutarlı veya değişken tutarlı ödeme bağlantıları oluşturabilirsiniz. Oluşturulan bağlantı üzerinden müşterileriniz güvenli bir şekilde ödeme işlemlerini gerçekleştirebilir.
/api/payment-link/create
Content-Type: application/json
Parametre | Tip | Zorunlu | Açıklama |
---|---|---|---|
reference_id |
string | Evet | Her işlem için benzersiz olmalıdır |
amount |
numeric | Hayır | Sabit tutarlı işlemlerde kullanılır |
success_callback_url |
string (url) | Evet | Başarılı işlem sonrası yönlendirme URL'i |
fail_callback_url |
string (url) | Evet | Başarısız işlem sonrası yönlendirme URL'i |
webhook_callback_url |
string (url) | Evet | İşlem durumu bildirim URL'i |
desc |
string | Hayır | İşlem açıklaması |
curl -X POST 'https://panel.{{ config('app.lower_name') }}/api/payment-link/create' \ -H 'Authorization: Bearer your-token-here' \ -H 'Content-Type: application/json' \ -d '{ "reference_id": "ORDER123", "amount": 100.00, "success_callback_url": "https://your-site.com/success", "fail_callback_url": "https://your-site.com/fail", "webhook_callback_url": "https://your-site.com/webhook", "desc": "Test ödemesi" }'
{ "statusCode": 200, "message": "Ödeme başlatıldı", "data": { "reference_id": "ORDER123", "tracking_id": "abcdef123456", "payment_url": "https://panel.{{ config('app.lower_name') }}/payment-link/form/hash" } }
• Oluşturulan ödeme bağlantısının geçerlilik süresi 25 dakikadır.
• Amount parametresi gönderilmezse, müşteri ödeme tutarını OTP Onayından sonra kendisi girebilir.
• Reference_id değeri her işlem için benzersiz olmalıdır. Aynı reference_id ile yeni bir istek yapıldığında hata alırsınız.
• Webhook bildirimleri için belirtilen URL, POST isteklerini kabul etmeli ve HTTPS protokolünü desteklemelidir.
• Callback URL'leriniz mutlaka HTTPS protokolü kullanmalıdır.
• Her işlem için benzersiz bir reference_id kullanın ve bu değeri kendi sisteminizdeki işlemlerle eşleştirin.
• İşlem sonucunu mutlaka webhook bildirimi üzerinden doğrulayın.
• payment_url'i son kullanıcıya iletmeden önce geçerliliğini kontrol edin.
Bu endpoint ile gerçekleştirilen işlemlere ait dekont bilgilerini PDF veya HTML formatında alabilirsiniz. İşlem tipine ve takip numarasına göre dekont detaylarına erişim sağlanır.
/api/get-dekont
Content-Type: application/json
Accept: application/pdf veya text/html
Parametre | Tip | Zorunlu | Açıklama |
---|---|---|---|
tracking_id |
string | Evet | İşlem takip numarası |
type |
string | Evet | İşlem tipi (c-to-b, b-to-c, c-to-b-link) |
Müşteriden İşletmeye Transfer
İşletmeden Müşteriye Transfer
Ödeme Bağlantısı ile Transfer
Müşteriden Müşteriye Transfer
--}} {{--Para Yatırma İşlemi
--}} {{--Para Çekme İşlemi
--}} {{--curl -X GET 'https://panel.{{ config('app.lower_name') }}/api/get-dekont?tracking_id=123456&type=c-to-b' \ -H 'Authorization: Bearer your-token-here' \ -H 'Accept: application/pdf'
curl -X GET 'https://panel.{{ config('app.lower_name') }}/api/get-dekont?tracking_id=123456&type=c-to-b' \ -H 'Authorization: Bearer your-token-here' \ -H 'Accept: text/html'
Ödeme başarılı olduğunda otomatik olarak siparişi onaylayabilir, stok güncellemesi yapabilir ve müşteriye bilgilendirme e-postası gönderebilirsiniz.
Başarılı ödemeden sonra satın alınan dijital ürün veya hizmetleri otomatik olarak aktif hale getirebilirsiniz.
Webhook entegrasyonu için izlemeniz gereken adımlar:
Sistemimiz, aşağıdaki formatta bir JSON verisi gönderecektir. Bu veriyi işleyerek gerekli aksiyonları alabilirsiniz.
{ "hash": "sha256(tracking_id + reference_id + merchant_key)", "tracking_id": "benzersiz-takip-id", "reference_id": "siparis-referans-no", "amount": 100.00, "transaction_status": "COMPLETED", "transaction_status_message": "Tamamlandı", "operation_time": "2024-01-06T10:30:00Z", "from_user": { "name": "Ad Soyad", "customer_number": "musteri-no", "phone": "telefon-no" }, "status_code": 200, "status_message": "İşlem başarılı" }
Gelen webhook bildiriminin geçerliliğini doğrulamak için hash değerini kontrol etmelisiniz:
hash = SHA256(tracking_id + reference_id + merchant_key)
Webhook bildirimlerinin güvenliğini sağlamak için aşağıdaki kontrolleri mutlaka yapmalısınız:
Webhook bildirimini aldığınızda aşağıdaki formatta bir yanıt döndürmelisiniz:
{ "status": true }
{"status": true}
yanıtı dönmelisinizDurum | Açıklama |
---|---|
PENDING | İşlem beklemede |
COMPLETED | İşlem tamamlandı |
REJECTED | İşlem reddedildi |
API'den dönen hata kodları ve çözüm önerileri aşağıda listelenmiştir. Her hata durumu için önerilen çözümleri uygulayarak işlemlerinizi başarıyla gerçekleştirebilirsiniz.
Kod | Mesaj | Açıklama | Çözüm Önerisi |
---|---|---|---|
401 | Token bulunamadı | Authorization header'ında token bilgisi eksik | Authorization header'ında Bearer token gönderin |
401 | Geçersiz token | Gönderilen token geçersiz veya tanınmıyor | get-token endpointi ile yeni bir token alın |
401 | Geçersiz kimlik bilgileri | app_key veya app_secret hatalı | Merchant panelinizden app_key ve app_secret bilgilerinizi kontrol edin |
422 | Validasyon hatası | İstek parametreleri eksik veya hatalı format | Tüm zorunlu alanları doğru formatta gönderdiğinizden emin olun |
409 | İşlem zaten devam ediyor | Aynı referans ID için işlem devam ediyor | İşlemin tamamlanmasını bekleyin veya farklı bir reference_id kullanın |
400 | Bu referans numarasını kullanamazsınız | Referans ID daha önce kullanılmış ve işlem tamamlanmış | Her işlem için benzersiz bir reference_id oluşturun |
404 | Ödeme bağlantısı bulunamadı | Belirtilen hash değeri ile ödeme bağlantısı yok | Hash değerini kontrol edin veya yeni bir ödeme bağlantısı oluşturun |
400 | Ödeme bağlantısı zaten kullanılmıştır | Bu ödeme bağlantısı daha önce kullanılmış | Yeni bir ödeme bağlantısı oluşturun |
400 | Ödeme bağlantısının süresi dolmuştur | Bağlantı 25 dakikadan eski | Yeni bir ödeme bağlantısı oluşturun |
400 | Ödeme bağlantısının deneme hakkı dolmuştur | Maksimum deneme sayısına ulaşıldı | Yeni bir ödeme bağlantısı oluşturun |
500 | İşlem sırasında bir hata oluştu | Sunucu taraflı beklenmeyen bir hata | Tekrar deneyin veya destek ekibiyle iletişime geçin |
500 hata kodunda işlemin durumunu /status endpointi üzerinden kontrol etmenizi öneririz. İşlem başarılı olmuş olabilir ancak yanıt alınamadan bağlantı kopmuş olabilir.