Alıcı Bilgileri
Ödemeyi yapan kişiyi iki ayrı alanla anlatırsınız:
buyer: alıcının kişi bilgileri; ad, kimlik numarası, e-posta, telefon, IP adresi ve diğerleri. Ödeme kuruluşuna iletilir ve risk değerlendirmesinde kullanılır.customerId: alıcının sizin sisteminizdeki müşteri anahtarı. Ödemeleri müşteriye göre listelemenizi, kartları müşteri adına saklamanızı ve cüzdanla ödemede alıcının tanınmasını sağlar.
Alıcıyı alan uçlar
| Uç | buyer | customerId |
|---|---|---|
POST /payments/intents, POST /payments/marketplace/intents (Checkout Formu) | Var; alanların hepsi isteğe bağlı | Var |
POST /payments/direct/payment (Payment) | Var; gönderirseniz zorunlu alanlar dolu olmalı | Var |
POST /payments/marketplace/2d, /marketplace/3d (Pazaryeri) | Var; gönderirseniz zorunlu alanlar dolu olmalı | Var |
- Linkle Ödeme
buyervecustomerIdalmaz. Alıcıdan hangi bilgilerin isteneceğinibuyerFieldsile seçer, bildiğiniz bilgileriprefillile verirsiniz; bkz. Link Oluşturma. - İsteğin üst seviyesinde ayrı bir e-posta ya da telefon alanı yoktur. Alıcının e-postasını
buyer.email, telefonunubuyer.gsmNumberile gönderin.
buyer alanları
buyer opsiyoneldir. Gönderirseniz aşağıdaki "Evet" alanlarının hepsi dolu olmalıdır. Checkout Formu intent'inde (POST /payments/intents, POST /payments/marketplace/intents) bu zorunluluk yoktur: alanların hepsi isteğe bağlıdır, gönderdiğiniz alanların tipi ve uzunluğu doğrulanır.
| Alan | Tip | Zorunlu | Örnek |
|---|---|---|---|
id | string | Hayır | CUST-1 |
name | string | Evet | Ada |
surname | string | Evet | Yılmaz |
identityNumber | string | Evet | 11111111111 |
email | string (e-posta) | Evet | [email protected] |
gsmNumber | string | Evet | +905000000000 |
city | string | Evet | İstanbul |
country | string | Evet | Turkey |
zipCode | string | Evet | 34732 |
ip | string | Evet | Alıcının IP adresi |
registrationDate | string | Hayır | 2024-04-21 15:12:09 |
lastLoginDate | string | Hayır | 2026-10-05 12:43:35 |
registrationAddress | string | Hayır | Kayıtlı adres |
Zorunluluk kuralı
buyernesnesinin kendisi her uçta isteğe bağlıdır.POST /payments/direct/paymentilePOST /payments/marketplace/2dve/marketplace/3duçlarındabuyergönderirsenizname,surname,identityNumber,email,gsmNumber,city,country,zipCodeveipdolu metin olmalıdır. Boş metin de eksik sayılır.email, gönderildiği her uçta geçerli bir e-posta adresi olmalıdır.- Checkout Formu intent'inde (
POST /payments/intents,POST /payments/marketplace/intents) alanların hepsi isteğe bağlıdır. Gönderdiğiniz alanlar metin olmalı ve şu uzunlukları aşmamalıdır:
| Alan | En fazla karakter |
|---|---|
id | 64 |
name, surname | 120 |
identityNumber | 32 |
email | 254 |
gsmNumber | 32 |
registrationDate, lastLoginDate | 40 |
registrationAddress | 500 |
city, country | 120 |
zipCode | 20 |
ip | 64 |
- Tanımlanmamış bir alan gönderirseniz (ör.
buyer.phone) istek reddedilir.
buyer.id ile customerId farkı
İki alan da "müşteri kimliği" gibi görünür, ama farklı işler görür ve birbirinin yerine kullanılmaz: biri gönderildiğinde diğeri ondan doldurulmaz.
buyer.id | customerId | |
|---|---|---|
| Yeri | buyer nesnesinin içinde | İsteğin üst seviyesinde |
| Ne işe yarar | Alıcı bilgileriyle birlikte ödeme kuruluşuna iletilir; risk değerlendirmesinde alıcının kimliği olarak kullanılır | Ödemeyi sizin müşteri anahtarınıza bağlar: listeleme, kart saklama ve cüzdanla ödeme bu anahtarla çalışır |
customerId şu yerlerde kullanılır:
- Ödeme listeleme:
GET /payments?customerId=…yalnız o müşterinin ödemelerini döner; bkz. Ödeme Listeleme. - Kart saklama: Ödemede kaydedilen kart müşteri anahtarının altına saklanır ve bu anahtar
customerId'dir. Checkout Formu'nda farklı bir anahtar kullanmak istersenizcardUserKeygönderin; göndermezsenizcustomerIdkullanılır. Kayıtlı kartlarıGET /payments/cards?cardUserKey=…ile aynı anahtarla listelersiniz. Ödemede müşteri anahtarı yoksa kart saklanmaz, ödeme yine yapılır. Ayrıntı: Kart Saklama. - Cüzdanla ödeme: Alıcı
customerIdile tanımlanır; bkz. Cüzdanla Öde › Alıcı kimliği.
Neden gönderilmeli
- Ödeme kuruluşu:
buyerbilgileri ödeme kuruluşuna iletilir. - Risk değerlendirmesi:
buyer.idvebuyer.emailalıcının kimliği olarak değerlendirilir.buyer.registrationDate, alıcının sizde yeni bir müşteri olup olmadığını belirler. Alıcının ülkesi fatura adresinden, fatura adresi yoksa teslimat adresinden, o da yoksabuyer.country'den okunur. - Yöntem alanları (Payment):
POST /payments/direct/paymentisteğinde yöntem bloğundaki bir alanı göndermezseniz, alanınprefilltanımındaki alıcı verisi kullanılır:buyer.gsmNumber,buyer.email,buyer.identityNumber,buyer.nameya dabuyer.surname. Örneğin Faturana Yansıt'tamobileBilling.gsmNumbergönderilmezsebuyer.gsmNumberkullanılır. Bkz. Yöntemleri Listeleme › Yöntem alanları.
Doğrulama hataları
buyer içindeki bir hata 400 VALIDATION_ERROR döner. details.errors[] önce buyer girdisini, ardından hatalı alanın noktalı yolunu verir:
{
"status": "failure",
"code": "VALIDATION_ERROR",
"message": "Doğrulama hatası — gönderilen alanları kontrol edin.",
"statusCode": 400,
"requestId": "4b0e6c1a-2f3d-4e5a-9b8c-7d6e5f4a3b2c",
"details": {
"errors": [
{ "field": "buyer", "errors": [] },
{ "field": "buyer.email", "errors": ["email must be an email"] }
]
}
}| Durum | field |
|---|---|
| Zorunlu alan eksik ya da boş (Payment, pazaryeri 2D/3D) | Alanın yolu: buyer.name, buyer.identityNumber, buyer.ip … |
| Geçersiz e-posta | buyer.email |
| Uzunluk aşımı (Checkout Formu) | Alanın yolu: buyer.identityNumber … |
| Tanımlanmamış alan | Alanın yolu: buyer.phone; mesaj property phone should not exist |
buyer bir nesne değil | buyer; nedeni bu girdinin kendi errors listesindedir |
buyergirdisi her zaman ilk sıradadır; hatanın nedeni ondan sonra gelen yol girdilerindedir.- Kodunuzda
message'a göre değilcode'a vefield'a göre dallanın. Hata zarfı: Hatalar.
Devamı
- Sipariş Bilgileri: uçlar ve üç bilgiyi birlikte gösteren örnek istek
- Adres Bilgileri: teslimat ve fatura adresi
- Kart Saklama: müşteri anahtarıyla kart kaydı