Payment Gateway Integration
API Base URL:
Authentication: Tüm istekler için API anahtarı gereklidir. Header'da WebApiKey olarak gönderilmelidir.
Response Format: JSON
Encoding: UTF-8
Müşteri hesabına para yatırma işlemi başlatır. İşlem sonucunda kullanıcıyı yönlendireceğiniz bir URL döner.
| Parametre | Değer | Açıklama |
|---|---|---|
| WebApiKey | string | Size verilen API anahtarı |
| 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 |
{
"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"
}
{
"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.Ş."
}
{
"status": "failed",
"hataMesaj": "Aynı tutarda bekleyen yatırım talebiniz bulunmaktadır",
"hashcode": "98344483d494a0ed8a69120b8cde3b24",
"trackingId": "96baf381-f727-4bcd-b9bb-03422e1211af"
}
Müşteri hesabından para çekme işlemi gerçekleştirir. İsim ve soyisim kontrolü yapılır, yanlış bilgi durumunda işlem reddedilir.
| Parametre | Değer | Açıklama |
|---|---|---|
| WebApiKey | string | Size verilen API anahtarı |
| Content-Type | application/json | İstek içerik tipi |
| 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 |
{
"userId": "12.1223",
"name": "Louie Anderson",
"username": "tes653111",
"amount": 10000,
"IslemTuru": "havale",
"processId": "process-2024-001",
"iban": "TR12 3456 7890 1234 5678 9012 34"
}
{
"status": "successful"
}
Servisin sağlığını ve erişilebilirliğini kontrol eder. API anahtarı doğrulaması ve IP kontrolü yapılır.
| Parametre | Değer | Açıklama |
|---|---|---|
| WebApiKey | string | Size verilen API anahtarı (Zorunlu) |
GET /api/vevo/health Headers: WebApiKey: Your-API-Key
{
"status": "ok",
"service": "VevoPay API",
"ip": "192.168.1.1",
"timestamp": "2025-10-17T14:32:45.1234567Z",
"version": "1.0"
}
WebApiKey eksik (401 Unauthorized):
{
"status": "error",
"message": "WebApiKey header required"
}
Geçersiz API Key (401 Unauthorized):
{
"status": "error",
"message": "Invalid WebApiKey"
}
IP adresi kayıtlı değil (401 Unauthorized):
{
"status": "error",
"message": "IP address not registered: 203.0.113.42"
}
Firma pasif (403 Forbidden):
{
"status": "error",
"message": "Company inactive"
}
İşlem durumunu kontrol eder. TrackingId parametresi ile sorgulama yapılır.
| Parametre | Değer | Açıklama |
|---|---|---|
| WebApiKey | string | Size verilen API anahtarı |
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| trackingId | string (GUID) | Evet | İşlem takip numarası |
POST /api/vevo/checkstatus?trackingId=328bcca3-434e-4c01-99df-b973ee412377 Headers: WebApiKey: Your-API-Key
{
"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
}
}
İşlem durumu değiştiğinde veya tamamlandığında belirttiğiniz callback URL'e POST isteği gönderilir. JSON formatında gönderilir.
| 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) |
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
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";
}