Dil

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
parolapara
papel
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
WebApiKeystringSize verilen API anahtarı

Body Parametreleri

Parametre Tip Zorunlu Açıklama
amountdecimalEvetYatırılacak miktar (integer veya decimal gönderilebilir)
userIdstringEvetMüşteri kullanıcı ID'si
namestringEvetMüşteri adı ve soyadı (Örn: Louie Anderson)
userNamestringEvetMüşteri kullanıcı adı
processIdstringEvetSizin tarafınızdan oluşturulan benzersiz işlem ID'si
IslemTurustringEvetİşlem yöntemi (havale, papara, kredikarti, mefete, pep, payco, crypto vb.)
SuccessRedirectUrlstringHayır*Başarılı işlem sonrası yönlendirme (*Sadece kredikarti için)
ErrorRedirectUrlstringHayır*Başarısız işlem sonrası yönlendirme (*Sadece kredikarti için)
RedirectUrlstringHayırGenel 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
WebApiKeystringSize verilen API anahtarı
Content-Typeapplication/jsonİstek içerik tipi

Body Parametreleri

Parametre Tip Zorunlu Açıklama
userIdstringEvetMüşteri kullanıcı ID'si
namestringEvetMüşteri adı soyadı (Kontrol edilir!)
usernamestringEvetMüşteri kullanıcı adı
amountdecimalEvetÇekilecek miktar (integer gönderilebilir)
IslemTurustringEvetÇekim yöntemi (havale, papara, crypto vb.)
processIdstringEvetSizin tarafınızdan oluşturulan benzersiz işlem ID'si
ibanstringEvetAlıcı IBAN veya cüzdan adresi (yönteme göre değişir)
currencystringHayır*Para birimi (*Sadece crypto işlemleri için zorunlu)
currencyamountdecimalHayırCrypto 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
WebApiKeystringSize verilen API anahtarı

Query Parametreleri

Parametre Tip Zorunlu Açıklama
trackingIdstring (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
transactionIdstringİşlem kimlik numarası
amountstringİşlem tutarı
userIdstringKullanıcı ID'si
namestringKullanıcı adı soyadı
userNamestringKullanıcı adı
processIdstringSizin gönderdiğiniz işlem ID'si
statusstring'pending', 'successful' veya 'unsuccessful'
typestring'Deposit' veya 'withdrawal'
DekontstringDekont bilgisi (varsa)
durumMesajstringDurum açıklama mesajı
IslemTurustringİşlem yöntemi
hashcodestringMD5 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ı