Ana içeriğe geç

save-card

POST /api/{team}/gateway/save-card

Müşterinin kartını ödeme yapmadan, ödeme hesabının sağlayıcısında saklar ve kayıtlı kart token'ını döndürür. Müşteri, ödeme uçlarındaki gibi kaydedilir ya da güncellenir. Kullanım: Kayıtlı Kartlar.

Çalışma alanının planı kayıtlı kartları kapsamıyorsa istek 403 ile reddedilir.

Kimlik doğrulama​

X-Api-Key, X-Signature, Content-Type: application/json. Ayrıntılar: Kimlik Doğrulama ve İmza.

İstek​

{
"saved_card": {
"channel_token": "6f1c2e7a-4b3d-4c8e-9a61-2f5d7b0c3e14"
},
"customer": {
"channel_reference": "musteri-88",
"firstname": "Ahmet",
"lastname": "Yılmaz",
"email": "[email protected]",
"phone": "05551112233",
"address": "Kızılırmak Mah. Dumlupınar Blv. No:3",
"district": "Çankaya",
"province": "Ankara",
"country": "Türkiye"
},
"card": {
"holder_name": "AHMET YILMAZ",
"number": "5400360000000003",
"expiry_month": "12",
"expiry_year": "2030"
}
}

saved_card​

AlanTipZorunluAçıklama
channel_tokenstring (UUID)evetÇalışma alanınıza ait kanalın token'ı.
payment_provider_tokenstring (UUID)hayırKartın saklanacağı ödeme hesabı. Gönderilmezse varsayılan hesap. Hesabın kart saklamayı desteklemesi gerekir.

customer​

Zorunlu. Alanlar: customer nesnesi.

card​

AlanTipZorunluAçıklama
holder_namestringevetEn çok 255 karakter.
numberstringevet12–19 karakter.
expiry_monthstringevet2 karakter.
expiry_yearstringevet4 karakter.
security_codestringhayır3–4 karakter. Bazı sağlayıcılar kart saklarken kullanır; gateway saklamaz.

SDK örnekleri​

use Gurmehub\Odemehub\Request\{Card, SaveCard};

$kept = $client->saveCard(new SaveCard(
customer: $customer, // Customer nesnesi, bkz. secure-payment
card: new Card(
holderName: 'AHMET YILMAZ',
number: '5400360000000003',
securityCode: '000',
expiryMonth: '12',
expiryYear: '2030',
),
));

if ($kept->result->successful) {
$savedCardToken = $kept->savedCard->token;
}

Yanıt​

{
"result": {
"successful": true,
"message": null
},
"saved_card": {
"token": "7d3e9a10-2b4c-4f6e-8a1b-c2d3e4f5a6b7",
"payment_provider_token": "1c9e8f7a-6b5d-4c3e-2a1f-0e9d8c7b6a54",
"holder_name": "AHMET YILMAZ",
"scheme": "mastercard",
"first_digits": "54003600",
"last_four_digit": "0003",
"expiry_month": "12",
"expiry_year": "2030",
"is_default": true,
"created_at": "2026-09-29T10:15:00.000000Z"
},
"customer": {
"channel_reference": "musteri-88"
}
}
AlanTipAçıklama
result.successfulbooleantrue: kart saklandı. false: sağlayıcı kartı saklamadı.
result.messagestring | nullsuccessful false ise nedeni.
saved_cardobject | nullSaklanan kart (kart nesnesi); saklanamadıysa null.
customer.channel_referencestringMüşterinin channel_reference değeri.

Müşterinin ilk kayıtlı kartı varsayılan kart olur (is_default: true).

HTTP durum kodları​

KodDurum
200İstek işlendi; sonuç result.successful içinde.
401API anahtarı ya da imza geçersiz.
403Çalışma alanı işlem yapamıyor ya da planı kayıtlı kartları kapsamıyor.
422Doğrulama hatası.

Hatalar​

AlanMesaj
saved_card.payment_provider_tokenBu ödeme hesabı kart saklamayı desteklemiyor.
saved_card.payment_provider_tokenÖdeme hesabı belirtilmedi ve çalışma alanınızın varsayılan ödeme hesabı yok.