Skip to main content
İstek
$tahsilat = new TahsilatClient('sk_test_rwwg...');

$payment = $tahsilat->payments->create([
    'currency' => 'TRY',
    'amount' => 1000,
    'metadata' => [
        'order_id' => 123456,
        'customer_type' => "premium"
    ],
]);

Yanıt
^ Tahsilat\Resource\Payment {
    "transaction_id": 20094833802557
    "payment_page_url": "https://payment.tahsilat.com/fd094314-df08-48c7-a690-6bbeffd29d11-1234567890"
    "expires_at": "2025-06-11T12:06:35+03:00"
}
Secret key sadece arka uçta kullanılmalı ve asla açıkta olmamalıdır. Public key’i güvenle mobil ve web uygulamalarınızda kullanabilirsiniz.
3DS (3D Secure) ödeme, güvenli kart ödemelerini desteklemek için geliştirilmiş bir protokoldür. Tahsilat API’de 3DS ödemeler, tek bir istek ile başlatılır.
Ödeme tutarı ile ürünler arasındaki toplam tutarın eşleşmesi gerekmektedir. Aksi takdirde, ödeme reddedilir.
Ödeme işlemi başlatırken products parametresi yerine product_ids ya da customer_id kullanarak tanımlı ürün ya da müşteri bilgilerini kullanabilirsiniz.

1. Doğrudan Ödeme

Ürün ya da müşteri bilgisi belirtmeden doğrudan ödeme isteği tanımlayabilirsiniz:
$tahsilat = new TahsilatClient('sk_test_rwwg...');

$payment = $tahsilat->payments->create([
    'currency' => 'TRY',
    'amount' => 1000,
    'metadata' => [
        'order_id' => 123456,
        'customer_type' => "premium"
    ],
]);

2. Doğrudan Ürün Bilgileri ile Ödeme

Ürün bilgilerini doğrudan ödeme isteği içerisinde tanımlayabilirsiniz:
$tahsilat = new TahsilatClient('sk_test_rwwg...');

$payment = $tahsilat->payments->create([
    'currency' => 'TRY',
    'amount' => 1000,
    'products' => [
		[
			'product_name' => 'Test Product',
			'price' => 1000,
			'description' => 'This is a test product',
		],
	],
    'metadata' => [
        'order_id' => 123456,
        'customer_type' => "premium"
    ],
]);

3. Ürün ID’leri ile Ödeme

Önceden oluşturulmuş ürünlerin ID’lerini kullanarak ödeme başlatabilirsiniz bu durumda ürünleriniz hakkında raporlama ve analiz yapabilirsiniz: Ürünlerin toplam tutarı, ödeme tutarı ile eşleşmelidir. Eğer ürünlerinizin toplam tutarı ödeme tutarından düşükse, ödeme reddedilir. Ürün oluşturmak için Ürünler sayfasını ziyaret edebilirsiniz.
$payment = $tahsilat->payments->create([
    'currency' => 'TRY',
    'amount' => 1000,
    'product_ids' => ['11111111111111', '2222222222222'],
    'metadata' => [
        'order_id' => 123456,
        'customer_type' => "premium"
    ],
]);

4. Müşteri ile İlişkilendirilmiş Ödeme

Mevcut bir müşteriyi ödeme ile ilişkilendirmek için customer_id parametresini kullanabilirsiniz. Bu durumda ödeme esnasında müşteri bilgileri tekrardan alınmaz: Müşteri oluşturmak için Müşteriler sayfasını ziyaret edebilirsiniz.
$payment = $tahsilat->payments->create([
    'currency' => 'TRY',
    'amount' => 1000,
    'customer_id' => '99999999999999',
    'product_ids' => ['12345678901234', '23456789012345'],
]);
Ödeme isteği oluşturulurken customer_id gönderilmemesi durumunda her ödeme için müşteri bilgileri tekrar alınır ve yeni bir müşteri oluşturulur. Bu durumda müşteri takibi ve raporlama süreci zorlaşabilir.Üye işyeri arayüzünden ya da Müşteriler sayfasından api aracılığı ile müşteri oluşturarak customer_id parametresini kullanabilirsiniz.

Zorunlu ve İsteğe Bağlı Parametreler

customer_id
integer
Ödeme ile ilişkilendirilecek müşteri ID’si. Bu parametre isteğe bağlıdır, ancak müşteri takibi için önerilir.
amount
integer
required
Ödeme tutarı, kuruş cinsinden belirtilmelidir. Örneğin, 10.00 TL için 1000 olarak girilmelidir. Son 2 hane her zaman kuruş olarak kabul edilir.
currency
string
required
Ödeme para birimi. 3 haneli ISO 4217 kodu olarak belirtilmelidir (örn. “TRY” - Türk Lirası).
redirect_url
string
Ödeme sonrası yönlendirilecek URL. Bu parametre boş bırakılır ya da gönderilmezse, varsayılan olarak Tahsilat ödeme sonuç sayfasına yönlendirilir.Query paremetresi olarak sadece “transaction_id” içermelidir. Örneğin: https://www.example.com/odeme-sonucu?transaction_id=1234567890
pre_auth
bool
Ödeme ön provizyon olarak başlatılacaksa true, normal ödeme için false olarak belirtilmelidir. Varsayılan değer false’dir.
products
array
required
Ödeme ile ilişkilendirilecek ürünlerin bilgilerini içeren dizi. Eğer product_ids gönderilmiyorsa, bu parametre zorunludur. Her ürün için aşağıdaki alanlar belirtilmelidir:
  • product_name: Ürün adı (string)
  • price: Ürün fiyatı (integer) (kuruş cinsinden)
  • description: Ürün açıklaması (string) (isteğe bağlı)
product_ids
array
required
Ödeme ile ilişkilendirilecek ürünlerin ID’lerini içeren dizi. Eğer products gönderilmiyorsa, bu parametre zorunludur. Her ürün için Tahsilat API’de önceden oluşturulmuş ürün ID’leri kullanılmalıdır.
metadata
array
Ödeme ile ilişkilendirilecek ek verileri içeren dizi. Bu parametre isteğe bağlıdır, ancak ödeme raporlaması için önerilir. Örneğin, müşteri türü gibi bilgiler burada saklanabilir.
description
string
Ödeme ile ilgili açıklama. Bu parametre isteğe bağlıdır ve ödeme hakkında ek bilgi sağlamak için kullanılabilir.