Vevopay API Dokümantasyonu V2

Payment Gateway Integration

📌 Önemli Bilgiler

API Base URL:

https://vevopay.io/api/vevo

Authentication: Tüm istekler için API anahtarı gereklidir. Header'da WebApiKey olarak gönderilmelidir.

Response Format: JSON

Encoding: UTF-8

Desteklenen İşlem Türleri (IslemTuru)

havale
papara
kredikarti
mefete
pep
payco
crypto
popy
parolapara
POST /CustomerDeposit

Müşteri hesabına para yatırma işlemi başlatır. İşlem sonucunda kullanıcıyı yönlendireceğiniz bir URL döner.

Header Parametreleri

Parametre Değer Açıklama
WebApiKey string Size verilen API anahtarı

Body Parametreleri

Parametre Tip Zorunlu Açıklama
amount decimal Evet Yatırılacak miktar (integer veya decimal gönderilebilir)
userId string Evet Müşteri kullanıcı ID'si
name string Evet Müşteri adı ve soyadı (Örn: Louie Anderson)
userName string Evet Müşteri kullanıcı adı
processId string Evet Sizin tarafınızdan oluşturulan benzersiz işlem ID'si
IslemTuru string Evet İşlem yöntemi (havale, papara, kredikarti, mefete, pep, payco, crypto vb.)
SuccessRedirectUrl string Hayır* Başarılı işlem sonrası yönlendirme (*Sadece kredikarti için)
ErrorRedirectUrl string Hayır* Başarısız işlem sonrası yönlendirme (*Sadece kredikarti için)
RedirectUrl string Hayır Genel yönlendirme URL'i
⚠️ Kredi Kartı Limitleri:
  • Minimum: 500 TL
  • Maksimum: 10,000 TL

Örnek İstek

{
  "amount": 500,
  "userId": "customer-123",
  "name": "Louie Anderson",
  "userName": "louie_a",
  "processId": "TRX-2024-001",
  "IslemTuru": "havale",
  "SuccessRedirectUrl": "https://example.com/success",
  "ErrorRedirectUrl": "https://example.com/error",
  "RedirectUrl": "https://example.com/redirect"
}

Başarılı Yanıt

{
  "status": "successful",
  "url": "https://vevopay.io/iFrame/HavaleOtoBack?trackingID=96baf381-f727-4bcd-b9bb-03422e1211af",
  "hashcode": "98344483d494a0ed8a69120b8cde3b24",
  "trackingId": "96baf381-f727-4bcd-b9bb-03422e1211af",
  "iban": "TR12 3456 7890 1234 5678 9012 34",
  "ibanname": "ABC ÖDEME HİZMETLERİ A.Ş."
}

Hatalı Yanıt

{
  "status": "failed",
  "hataMesaj": "Aynı tutarda bekleyen yatırım talebiniz bulunmaktadır",
  "hashcode": "98344483d494a0ed8a69120b8cde3b24",
  "trackingId": "96baf381-f727-4bcd-b9bb-03422e1211af"
}
POST /Customerwithdraw

Müşteri hesabından para çekme işlemi gerçekleştirir. İsim ve soyisim kontrolü yapılır, yanlış bilgi durumunda işlem reddedilir.

Header Parametreleri

Parametre Değer Açıklama
WebApiKey string Size verilen API anahtarı
Content-Type application/json İstek içerik tipi

Body Parametreleri

Parametre Tip Zorunlu Açıklama
userId string Evet Müşteri kullanıcı ID'si
name string Evet Müşteri adı soyadı (Kontrol edilir!)
username string Evet Müşteri kullanıcı adı
amount decimal Evet Çekilecek miktar (integer gönderilebilir)
IslemTuru string Evet Çekim yöntemi (havale, papara, crypto vb.)
processId string Evet Sizin tarafınızdan oluşturulan benzersiz işlem ID'si
iban string Evet Alıcı IBAN veya cüzdan adresi (yönteme göre değişir)
currency string Hayır* Para birimi (*Sadece crypto işlemleri için zorunlu)
currencyamount decimal Hayır Crypto işlemlerinde amount=0 ise kullanılır
⚠️ Önemli Notlar:
  • IBAN formatı kontrol edilir (TR ile başlamalı)
  • İsim-soyisim bilgisi yatırım ile aynı olmalıdır
  • Crypto işlemleri için currency parametresi zorunludur
  • Havale işlemleri için geçerli IBAN zorunludur

Örnek İstek

{
  "userId": "12.1223",
  "name": "Louie Anderson",
  "username": "tes653111",
  "amount": 10000,
  "IslemTuru": "havale",
  "processId": "process-2024-001",
  "iban": "TR12 3456 7890 1234 5678 9012 34"
}

Örnek Yanıt

{
  "status": "successful"
}
POST /checkstatus?trackingId={trackingId}

İşlem durumunu kontrol eder. TrackingId parametresi ile sorgulama yapılır.

Header Parametreleri

Parametre Değer Açıklama
WebApiKey string Size verilen API anahtarı

Query Parametreleri

Parametre Tip Zorunlu Açıklama
trackingId string (GUID) Evet İşlem takip numarası

Örnek İstek

POST /api/vevo/checkstatus?trackingId=328bcca3-434e-4c01-99df-b973ee412377
Headers:
  WebApiKey: Your-API-Key

Örnek Yanıt

{
  "success": true,
  "data": {
    "TrackingID": "328bcca3-434e-4c01-99df-b973ee412377",
    "ProcessID": "test!3proc322722223ses2s-1s22ss32323222225452",
    "StatusLabel": "unsuccessful",
    "IslemSekli": "Deposit",
    "Yontem": "havale",
    "EklenmeZamani": "2025-04-22 12:24:59,540",
    "OdemeZamani": null
  }
}
ℹ️ Durum Değerleri:
  • pending: İşlem beklemede
  • successful: İşlem başarılı
  • unsuccessful: İşlem başarısız

🔔 Callback Bildirimleri

İşlem durumu değiştiğinde veya tamamlandığında belirttiğiniz callback URL'e POST isteği gönderilir. Form-urlencoded formatında gönderilir.

⚠️ ÖNEMLİ: Callback alındığında mutlaka HTTP 200 OK yanıtı dönmelisiniz. Aksi takdirde sistem callback'i başarısız kabul eder.

Callback Parametreleri

Parametre Tip Açıklama
transactionId string İşlem kimlik numarası
amount string İşlem tutarı
userId string Kullanıcı ID'si
name string Kullanıcı adı soyadı
userName string Kullanıcı adı
processId string Sizin gönderdiğiniz işlem ID'si
status string 'pending', 'successful' veya 'unsuccessful'
type string 'Deposit' veya 'withdrawal'
Dekont string Dekont bilgisi (varsa)
durumMesaj string Durum açıklama mesajı
IslemTuru string İşlem yöntemi
hashcode string MD5 hash kodu (FirmaID-ApiKey-amount-processId)

Callback Örneği

POST /your-callback-url
Content-Type: application/x-www-form-urlencoded

transactionId=TRX123456&amount=500&userId=customer-123&name=Louie+Anderson&userName=louie_a&processId=TRX-2024-001&status=successful&type=deposit&Dekont=&durumMesaj=İşlem+başarılı&IslemTuru=havale&hashcode=98344483d494a0ed8a69120b8cde3b24

Hash Kodu Doğrulama

Gelen callback'in güvenliğini sağlamak için hashcode doğrulaması yapmanız önerilir:

// PHP Örneği
$firma_id = "YOUR_FIRMA_ID";
$api_key = "YOUR_API_KEY";
$amount = $_POST['amount'];
$process_id = $_POST['processId'];

// G2W firmalar için ondalık format kullanılır
$formatted_amount = number_format($amount, 2, '.', '');
$hash_string = $firma_id . $api_key . $formatted_amount . $process_id;

// Normal firmalar için integer format kullanılır
// $hash_string = $firma_id . $api_key . intval($amount) . $process_id;

$expected_hash = md5($hash_string);

if ($expected_hash === $_POST['hashcode']) {
    // Callback geçerli, işlemi tamamla
    http_response_code(200);
    echo "OK"; // Başarılı yanıt - MUTLAKA 200 OK dönün!
} else {
    // Hash uyuşmazlığı
    http_response_code(400);
    echo "Invalid hash";
}
⚠️ Önemli Callback Kuralları:
  • MUTLAKA HTTP 200 OK yanıtı dönün - Aksi takdirde callback tekrar gönderilir
  • Aynı callback birden fazla kez gelebilir, idempotent olmalı
  • Hashcode kontrolü mutlaka yapılmalıdır
  • G2W firmaları için amount ondalık format kullanır
  • Callback işlemi 10 saniye içinde tamamlanmalı