retrieve-bin
POST /api/{team}/gateway/retrieve-bin
Kart numarasının ilk 6–8 hanesiyle kartı çıkaran kurumu, kartın şemasını, tipini ve programını ve verilen tutar için taksit seçeneklerini döndürür. Çekim yapılmaz. Kullanım: Taksit ve Kur Çevirisi.
Kimlik doğrulama
X-Api-Key, X-Signature, Content-Type: application/json. Ayrıntılar: Kimlik Doğrulama ve İmza.
İstek
{
"transaction": {
"amount": "450.00"
},
"card": {
"bin": "54003600"
}
}
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
card.bin | string | evet | Kart numarasının ilk 6–8 hanesi; yalnızca rakam. |
transaction.amount | string | evet | Taksitlerin hesaplanacağı tutar, tutar biçiminde. |
transaction.currency | string | hayır | TRY, USD, EUR, GBP. Gönderilmezse TRY. |
transaction.payment_provider_token | string (UUID) | hayır | Sorgulanacak ödeme hesabı. Gönderilmezse, kartın yönlendirme kurallarına göre gideceği hesap (kural tutmazsa varsayılan hesap) sorgulanır. |
payment_provider_token gönderilmeden sorgulanan taksitler, yine payment_provider_token gönderilmeden yapılan bir ödemeyle aynı hesaptan gelir.
SDK örnekleri
- PHP
- Node.js
- Python
- Java
- cURL
use Gurmehub\Odemehub\Request\RetrieveBin;
$bin = $client->retrieveBin(new RetrieveBin(bin: '54003600', amount: '450.00'));
if ($bin->result->successful) {
foreach ($bin->installments as $installment) {
echo "{$installment->number} x {$installment->amount} = {$installment->total}";
}
}
const bin = await client.retrieveBin({ bin: '54003600', amount: '450.00' });
if (bin.result.successful) {
for (const installment of bin.installments) {
console.log(`${installment.number} x ${installment.amount} = ${installment.total}`);
}
}
from odemehub.request import RetrieveBin
bin = client.retrieve_bin(RetrieveBin(bin="54003600", amount="450.00"))
if bin.result.successful:
for installment in bin.installments:
print(f"{installment.number} x {installment.amount} = {installment.total}")
import com.odemehub.request.RetrieveBin;
var bin = client.retrieveBin(RetrieveBin.builder().bin("54003600").amount("450.00").build());
if (bin.getResult().isSuccessful()) {
for (var installment : bin.getInstallments()) {
System.out.println(installment.getNumber() + " x " + installment.getAmount() + " = " + installment.getTotal());
}
}
BODY='{"transaction":{"amount":"450.00"},"card":{"bin":"54003600"}}'
SIGNATURE=$(printf '%s' "$BODY" | openssl dgst -sha256 -hmac "$ODEMEHUB_API_SECRET" | sed 's/^.* //')
curl -X POST "https://odeme.gurmehub.com/api/$ODEMEHUB_TEAM/gateway/retrieve-bin" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "X-Api-Key: $ODEMEHUB_API_KEY" \
-H "X-Signature: $SIGNATURE" \
--data-raw "$BODY"
Yanıt
{
"result": {
"successful": true,
"message": null
},
"card": {
"bin": "54003600",
"issuer_name": "<kartı çıkaran kurum>",
"issuer_code": "<kurum kodu>",
"scheme": "mastercard",
"type": "credit",
"program": "<program>",
"is_commercial": false
},
"installments": [
{ "number": 3, "amount": "157.87", "total": "473.60" }
]
}
| Alan | Tip | Açıklama |
|---|---|---|
result.successful | boolean | Sorgu yanıtlandıysa true. |
result.message | string | null | successful false ise nedeni. |
card.bin | string | Gönderilen haneler. |
card.issuer_name | string | null | Kartı çıkaran kurum. |
card.issuer_code | string | null | Kurumun kodu. |
card.scheme | string | null | visa, mastercard, american_express, troy, discover, diners_club, jcb, unionpay, maestro. |
card.type | string | null | credit, debit, prepaid. |
card.program | string | null | Kartın programı. |
card.is_commercial | boolean | null | Ticari kart ise true. |
installments[] | array | Taksit seçenekleri. TRY dışında bir para biriminde (ya da kur çevirisiyle TRY dışında çekilecek tutarda) her zaman boş dizidir. |
installments[].number | integer | Taksit sayısı. Ödemede transaction.installment_number olarak gönderilir. |
installments[].amount | string | Taksit başına tutar. |
installments[].total | string | Karttan çekilecek toplam. Ödemede transaction.amount olarak, sorgulanan tutar transaction.base_amount olarak gönderilir. |
Sağlayıcının döndürmediği kart alanları null olur.
HTTP durum kodları
| Kod | Durum |
|---|---|
200 | Sorgu işlendi; sonuç result.successful içinde. |
401 | API anahtarı ya da imza geçersiz. |
403 | Çalışma alanı işlem yapamıyor. |
422 | Doğrulama hatası. |
Hatalar
| Alan | Mesaj |
|---|---|
card.bin | Kart numarasının en az ilk 6 hanesi gönderilmelidir. / Kart numarasının en çok ilk 8 hanesi gönderilir. / Kart numarasının ilk haneleri yalnızca rakamlardan oluşur. |
transaction.amount | Tutar 100 veya 100.10 biçiminde olmalıdır; kuruş basamağı noktayla ayrılır. |
transaction.currency | Bu ödeme hesabı <para birimi kodu> para biriminde işlem almıyor. |
transaction.payment_provider_token | Ödeme hesabı belirtilmedi ve çalışma alanınızın varsayılan ödeme hesabı yok. |