Bu döküman, Pay2out ödeme sistemiyle entegrasyon yapmak isteyen geliştiriciler için hazırlanmıştır. Ödeme başlatma, ödeme sonuçlarını alma ve callback işlemlerini kapsar.
Pay2out API'sine erişmek için bir hesaba ihtiyacınız vardır. Hesabınız yoksa, kaydolun ve API bilgilerinizi alın.
Pay2out platformunun tüm özelliklerinden yararlanmak için bir hesaba sahip olmanız gerekir. Hesap kurulumu ve yönetimi hakkında bilmeniz gereken her şey burada.
Hesap oluşturmak için şu adımları izleyin:
Pay2out panelinde "Ayarlar > API" menüsünden API anahtarlarınızı görüntüleyebilir ve yönetebilirsiniz. Her bir anahtar için izinleri ve erişim kapsamını ayarlayabilirsiniz.
Pay2out, işletmenizin ihtiyaçlarına uygun çeşitli ödeme çözümleri sunar. Platformun sunduğu temel özellikler:
Tekil ürünler veya hizmetler için özel ödeme bağlantıları oluşturabilir ve bunları müşterilerinizle e-posta, SMS veya sosyal medya üzerinden paylaşabilirsiniz.
Abonelik modelli işletmeler için otomatik tekrarlayan ödeme planları oluşturabilirsiniz.
TRY, USD, EUR ve diğer popüler para birimlerinde ödeme kabul edebilirsiniz.
Pay2out ödeme sayfalarını ve formlarını markanıza uygun şekilde özelleştirebilirsiniz.
Ödeme sayfalarının renk şemasını, yazı tiplerini ve logonuzu markanızla uyumlu olacak şekilde ayarlayabilirsiniz.
Ödemeler sırasında müşterilerinizden toplamak istediğiniz özel alanlar ekleyebilirsiniz.
Pay2out çeşitli ödeme yöntemlerini ve gateway'leri destekler.
Ödeme işlemi başlatmak için aşağıdaki API endpoint'ine POST isteği göndermeniz gerekmektedir:
POST https://api.pay2out.com/api/payment/create
Pay2out ödeme işlemlerinde en yüksek güvenlik standartlarını sağlar.
API anahtarlarınızı güvende tutmak için alınması gereken önlemler:
Callback istekleri, özel bir imza ile güvenli hale getirilir. Gelen isteğin geçerli olduğunu doğrulamak için HTTP header'ındaki X-Signature değerini kontrol etmelisiniz.
Dijital ürün satışlarınız için Pay2out'un dijital teslimat özelliklerini kullanabilirsiniz.
Dijital ürünleri satmak için aşağıdaki adımları izleyin:
Pay2out'un email entegrasyonları ve pazarlama özellikleri ile müşterilerinizle iletişimde kalın.
Pay2out şu durumlarda otomatik email gönderir:
Pay2out panelinde "Ayarlar > Bildirimler" bölümünden email şablonlarını markanıza uygun şekilde özelleştirebilirsiniz.
Pay2Out, geliştiricilerin kendi uygulamalarına ödeme işlevselliği entegre etmelerini sağlayan kapsamlı bir API seti sunar. Bu bölümde tüm API'lerin detaylı açıklamalarını bulabilirsiniz.
Ödeme işlemi başlatmak için aşağıdaki API endpoint'ine POST isteği göndermeniz gerekmektedir:
POST https://www.pay2out.com/api/payment/create
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
| signature_secret | string | Evet | Mağaza için oluşturulan imza anahtarı |
| amount | decimal | Evet | Ödeme tutarı (örn: 10.50) |
| currency | string | Evet | Para birimi (TRY, USD, EUR) |
| description | string | Hayır | Ödemenin açıklaması |
| has_installment | boolean | Hayır | Taksit seçeneği olup olmadığı (varsayılan: false) |
| customer_name | string | Evet | Müşteri adı |
| customer_email | string | Evet | Müşteri e-posta adresi |
| customer_phone | string | Evet | Müşteri telefon numarası |
| customer_address | string | Hayır | Müşteri adresi |
| customer_city | string | Hayır | Müşteri şehri |
| customer_district | string | Hayır | Müşteri ilçesi |
| customer_postal_code | string | Hayır | Müşteri posta kodu |
| reference | string | Hayır | Mağaza tarafından oluşturulan benzersiz referans kodu |
| order_number | string | Hayır | Sipariş numarası (belirtilmezse otomatik oluşturulur) |
| expires_at | string | Hayır | Ödeme geçerlilik süresi (ISO 8601 formatında) |
| items | array | Hayır | Sipariş ürünleri listesi (ürün senkronizasyonu için) |
| items.*.product_id | string | Evet* | Harici sistemdeki ürün ID'si (items varsa zorunlu) |
| items.*.product_name | string | Evet* | Ürün adı |
| items.*.product_price | decimal | Evet* | Ürün birim fiyatı |
| items.*.product_image | url | Hayır | Ürün resmi URL'i (otomatik indirilir) |
| items.*.product_category | string | Hayır | Kategori adı (yoksa otomatik oluşturulur) |
| items.*.quantity | integer | Evet* | Ürün adedi (min: 1) |
curl -X POST https://www.pay2out.com/api/payment/create \
-H "Content-Type: application/json" \
-d '{
"signature_secret": "YOUR_SIGNATURE_SECRET",
"amount": 150,
"currency": "TRY",
"description": "Sipariş ödemesi",
"has_installment": true,
"customer_name": "Ali Veli",
"customer_email": "[email protected]",
"customer_phone": "5551234567",
"customer_address": "Atatürk Mah. Cumhuriyet Cad. No:123 D:5",
"customer_city": "İstanbul",
"customer_district": "Kadıköy",
"customer_postal_code": "34752",
"reference": "OD-123456789",
"order_number": "INV-123456785",
"expires_at": "2025-05-01T15:00:00Z",
"items": [
{
"product_id": "SKU-001",
"product_name": "Wireless Kulaklık",
"product_price": 75.00,
"product_image": "https://example.com/images/kulaklik.jpg",
"product_category": "Elektronik",
"quantity": 1
},
{
"product_id": "SKU-002",
"product_name": "Telefon Kılıfı",
"product_price": 25.00,
"product_image": "https://example.com/images/kilif.jpg",
"product_category": "Aksesuar",
"quantity": 3
}
]
}'
{
"success": true,
"message": "Ödeme işlemi başlatıldı",
"data": {
"payment_uuid": "85aa3555-5ccc-4599-ad2a-ed6cda5f6608",
"order_number": "INV-123456785",
"amount": "10.00",
"currency": "TRY",
"status": "pending",
"payment_url": "https://pay.payhesap.com/order/85aa3555-5ccc-4599-ad2a-ed6cda5f6608",
"expires_at": "2025-05-01T15:00:00Z",
"customer_info": {
"name": "Ali Veli",
"email": "[email protected]",
"phone": "5551234567",
"address": "Atatürk Mah. Cumhuriyet Cad. No:123 D:5",
"city": "İstanbul",
"district": "Kadıköy",
"postal_code": "34752"
}
}
}
{
"success": false,
"message": "Geçersiz imza anahtarı",
"error_code": "INVALID_SIGNATURE"
}
Ödeme durumunu sorgulamak için aşağıdaki API endpoint'ini kullanabilirsiniz:
GET https://www.pay2out.com/api/payment/{payment_uuid}/status
Önemli Güvenlik Bilgisi: Ödeme durumu sorgulama API'si, mağaza kimlik doğrulaması gerektirmektedir. İstek header'ında X-Signature-Secret anahtarını göndermeniz zorunludur. Bu anahtarla yalnızca kendi mağazanıza ait ödemeler hakkında bilgi alabilirsiniz.
| Header | Zorunlu | Açıklama |
|---|---|---|
| Content-Type | Evet | application/json |
| X-Signature-Secret | Evet | Mağaza imza anahtarı |
curl -X GET https://www.pay2out.com/api/payment/85aa3555-5ccc-4599-ad2a-ed6cda5f6608/status \
-H "Content-Type: application/json" \
-H "X-Signature-Secret: YOUR_SIGNATURE_SECRET"
{
"success": true,
"data": {
"payment_uuid": "85aa3555-5ccc-4599-ad2a-ed6cda5f6608",
"order_number": "INV-123456785",
"reference": "OD-123456789",
"status": "completed",
"amount": "10.00",
"currency": "TRY",
"customer": {
"name": "Ali Veli",
"email": "[email protected]",
"phone": "5551234567",
"address": "Atatürk Mah. Cumhuriyet Cad. No:123 D:5",
"city": "İstanbul",
"district": "Kadıköy",
"postal_code": "34752"
},
"created_at": "2025-04-27T16:54:54+03:00",
"updated_at": "2025-04-27T16:55:08+03:00"
}
}
| Hata Kodu | HTTP Kodu | Açıklama |
|---|---|---|
| MISSING_SIGNATURE | 401 | İmza anahtarı eksik |
| INVALID_SIGNATURE | 401 | Geçersiz imza anahtarı |
| PAYMENT_NOT_FOUND | 404 | Ödeme kaydı bulunamadı veya bu mağazaya ait değil |
{
"success": false,
"message": "Geçersiz imza anahtarı",
"error_code": "INVALID_SIGNATURE"
}
Ödeme işlemi tamamlandığında (başarılı veya başarısız), mağaza tarafından belirtilen callback_url adresine aşağıdaki formatta bir POST isteği gönderilir:
{
"payment_uuid": "85aa3555-5ccc-4599-ad2a-ed6cda5f6608",
"order_number": "INV-123456785",
"reference": "OD-123456789",
"status": "completed",
"amount": "10.00",
"currency": "TRY",
"customer": {
"name": "Ali",
"surname": "Veli",
"email": "[email protected]",
"phone": "5551234567"
},
"transaction_id": "TR123456789",
"installment": 1,
"gateway": "esnekpos",
"timestamp": 1745762108
}
| Alan | Tür | Açıklama |
|---|---|---|
| payment_uuid | string | Ödeme işleminin benzersiz kimliği |
| order_number | string | Sipariş numarası |
| reference | string | Mağaza tarafından sağlanan referans kodu |
| status | string | Ödeme durumu (completed, failed, pending, refunded, cancelled) |
| amount | string | Ödeme tutarı |
| currency | string | Para birimi |
| customer | object | Müşteri bilgileri |
| transaction_id | string | Banka/ödeme kuruluşu tarafından verilen işlem ID'si |
| installment | integer | Taksit sayısı (tek çekim için 1) |
| gateway | string | Kullanılan ödeme altyapısı |
| timestamp | integer | İşlem zaman damgası (UNIX timestamp) |
Callback istekleri, özel bir imza ile güvenli hale getirilir. Gelen isteğin geçerli olduğunu doğrulamak için HTTP header'ındaki X-Signature değerini kontrol etmelisiniz.
PHP örneği:
$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_SIGNATURE'] ?? '';
$secretKey = 'your_signature_secret_key';
$calculatedSignature = hash_hmac('sha256', $payload, $secretKey);
if (hash_equals($calculatedSignature, $signature)) {
// İmza doğru, işleme devam et
$data = json_decode($payload, true);
// Ödeme verilerini işle
} else {
// İmza geçersiz, isteği reddet
http_response_code(403);
echo json_encode(['error' => 'Invalid signature']);
}
API yanıtlarında aşağıdaki hata kodları ile karşılaşabilirsiniz:
| Kod | Açıklama |
|---|---|
| INVALID_SIGNATURE | Geçersiz imza anahtarı |
| INVALID_AMOUNT | Geçersiz ödeme tutarı |
| INVALID_CURRENCY | Desteklenmeyen para birimi |
| INVALID_CUSTOMER | Eksik veya hatalı müşteri bilgileri |
| PAYMENT_EXPIRED | Ödeme süresi dolmuş |
| PAYMENT_NOT_FOUND | Ödeme kaydı bulunamadı |
| GATEWAY_ERROR | Ödeme altyapısı hatası |
| CARD_DECLINED | Kart reddedildi |
| 3D_SECURE_FAILED | 3D Secure doğrulaması başarısız |