📋 Ödeme Emri Oluşturma
Endpoint
POST /paymentOrder
Açıklama
Belirli bir tarihte gerçekleştirilmek üzere ödeme emri oluşturur. Bu işlem, kayıtlı kart sahibi için gelecekte tek seferlik bir ödeme planlar. Ödeme emri, belirlenen tarihte otomatik olarak işleme alınır.
Headers
http
Authorization: Bearer {token}
Content-Type: application/jsonRequest: PaymentOrderRequest
json
{
"reference": "ORDER-2026-001",
"amount": 150.50,
"currencyCode": "TRY",
"paymentSystemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"explanation": "Abonelik ücreti - Şubat 2026",
"ownerDescription": {
"fullName": "Ahmet Yılmaz",
"email": "ahmet.yilmaz@example.com",
"phone": "+905551234567",
"cardId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"paymentChannel": "web",
"paymentTime": "2026-02-28T09:00:00Z"
}Parametreler
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| reference | string | ✅ | Sipariş referans kodu (max 150 karakter) |
| amount | number | ✅ | Ödeme tutarı (ondalıklı sayı) |
| currencyCode | string | ✅ | Para birimi kodu (örn: TRY, USD, EUR) |
| paymentSystemId | uuid | ❌ | Kullanılacak ödeme sistemi ID'si |
| explanation | string | ❌ | Ödeme açıklaması (max 400 karakter) |
| ownerDescription | object | ✅ | Kart sahibi bilgileri |
| paymentChannel | string | ❌ | Ödeme kanalı (max 50 karakter) |
| paymentTime | datetime | ✅ | Ödemenin gerçekleştirileceği tarih ve saat (ISO 8601) |
OwnerDescription Parametreleri
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
| fullName | string | ✅ | Kart sahibinin tam adı (max 100 karakter) |
| string | ❌ | E-posta adresi | |
| phone | string | ✅ | Telefon numarası (E.164 formatında) |
| cardId | uuid | ✅ | Kayıtlı kart ID'si |
Response
Başarılı İstek (200 OK)
json
{
"success": true,
"error": null,
"shouldBeOwnerConfirmation": false,
"ownerId": "OWN-123456",
"orderStatus": "active"
}Response Parametreleri
| Parametre | Tip | Açıklama |
|---|---|---|
| success | boolean | İşlem başarı durumu |
| error | object | Hata bilgisi (varsa) |
| shouldBeOwnerConfirmation | boolean | Kart sahibi onayı gerekli mi? |
| ownerId | string | Kart sahibi ID'si |
| orderStatus | string | Ödeme emri durumu |
OrderStatus Değerleri
| Değer | Açıklama |
|---|---|
| active | Aktif - ödeme zamanı geldiğinde işlenecek |
| disabled | Devre dışı |
| complete | Tamamlandı |
| waitForOwnerConfirmation | Kart sahibi onayı bekleniyor |
| waitForCardSave | Kart kaydı bekleniyor |
Hata Kodları
| HTTP Kodu | Açıklama |
|---|---|
| 200 | İşlem başarılı |
| 400 | Geçersiz istek (parametre hataları) |
| 401 | Yetkisiz erişim |
| 403 | Erişim reddedildi |
Örnek Kullanım
cURL
bash
curl -X POST https://pgw.klogs.dev/paymentOrder \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"reference": "ORDER-2026-001",
"amount": 150.50,
"currencyCode": "TRY",
"explanation": "Abonelik ücreti - Şubat 2026",
"ownerDescription": {
"fullName": "Ahmet Yılmaz",
"email": "ahmet.yilmaz@example.com",
"phone": "+905551234567",
"cardId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
"paymentChannel": "web",
"paymentTime": "2026-02-28T09:00:00Z"
}'JavaScript
javascript
const response = await fetch('https://pgw.klogs.dev/paymentOrder', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
reference: 'ORDER-2026-001',
amount: 150.50,
currencyCode: 'TRY',
explanation: 'Abonelik ücreti - Şubat 2026',
ownerDescription: {
fullName: 'Ahmet Yılmaz',
email: 'ahmet.yilmaz@example.com',
phone: '+905551234567',
cardId: '3fa85f64-5717-4562-b3fc-2c963f66afa6'
},
paymentChannel: 'web',
paymentTime: '2026-02-28T09:00:00Z'
})
});
const data = await response.json();
console.log(data);C#
csharp
using System.Net.Http;
using System.Text;
using System.Text.Json;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");
var request = new {
reference = "ORDER-2026-001",
amount = 150.50,
currencyCode = "TRY",
explanation = "Abonelik ücreti - Şubat 2026",
ownerDescription = new {
fullName = "Ahmet Yılmaz",
email = "ahmet.yilmaz@example.com",
phone = "+905551234567",
cardId = "3fa85f64-5717-4562-b3fc-2c963f66afa6"
},
paymentChannel = "web",
paymentTime = "2026-02-28T09:00:00Z"
};
var content = new StringContent(
JsonSerializer.Serialize(request),
Encoding.UTF8,
"application/json"
);
var response = await client.PostAsync("https://pgw.klogs.dev/paymentOrder", content);
var result = await response.Content.ReadAsStringAsync();Notlar
paymentTimegelecekte bir tarih olmalıdırcardIdönceden kaydedilmiş bir kart ID'si olmalıdırreferenceher ödeme emri için benzersiz olmalıdır- Ödeme emri, belirlenen tarihte otomatik olarak çalışacaktır
- Başarısız ödemeler için retry mekanizması vardır
- Ödeme sonucu webhook ile bildirilir

