Skip to content

📋 Ö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/json

Request: 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

ParametreTipZorunluAçıklama
referencestringSipariş referans kodu (max 150 karakter)
amountnumberÖdeme tutarı (ondalıklı sayı)
currencyCodestringPara birimi kodu (örn: TRY, USD, EUR)
paymentSystemIduuidKullanılacak ödeme sistemi ID'si
explanationstringÖdeme açıklaması (max 400 karakter)
ownerDescriptionobjectKart sahibi bilgileri
paymentChannelstringÖdeme kanalı (max 50 karakter)
paymentTimedatetimeÖdemenin gerçekleştirileceği tarih ve saat (ISO 8601)

OwnerDescription Parametreleri

ParametreTipZorunluAçıklama
fullNamestringKart sahibinin tam adı (max 100 karakter)
emailstringE-posta adresi
phonestringTelefon numarası (E.164 formatında)
cardIduuidKayı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

ParametreTipAçıklama
successbooleanİşlem başarı durumu
errorobjectHata bilgisi (varsa)
shouldBeOwnerConfirmationbooleanKart sahibi onayı gerekli mi?
ownerIdstringKart sahibi ID'si
orderStatusstringÖdeme emri durumu

OrderStatus Değerleri

DeğerAçıklama
activeAktif - ödeme zamanı geldiğinde işlenecek
disabledDevre dışı
completeTamamlandı
waitForOwnerConfirmationKart sahibi onayı bekleniyor
waitForCardSaveKart kaydı bekleniyor

Hata Kodları

HTTP KoduAçıklama
200İşlem başarılı
400Geçersiz istek (parametre hataları)
401Yetkisiz erişim
403Eriş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

  • paymentTime gelecekte bir tarih olmalıdır
  • cardId önceden kaydedilmiş bir kart ID'si olmalıdır
  • reference her ö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

İlişkili Endpointler