تخطَّ إلى المحتوى
Gurdx

التوثيق / مرجع الواجهة

فحص البطاقة BIN

تحدد مُصدِر بطاقة الدفع وعلامتها ونوعها ودولتها من أرقامها الأولى وتخبرك هل الـ BIN صالح.

نظرة عامة#

الـ BIN (رقم تعريف المصرف، ويسمى أيضًا IIN) هو أول ستة إلى ثمانية أرقام من رقم البطاقة. يستقبله lookup/bin في المعامل bin ويُرجع isValid وreason عند عدم الصلاحية وblacklisted وكائن info يضم شبكة البطاقة (الاسم والعلامة والنوع والعملة ومؤشرا الدفع المسبق والتجارية) وصيغة رقم البطاقة والمصرف المُصدِر (الاسم والمدينة والموقع والهاتف والإحداثيات) ودولة الإصدار.

أرسل الأرقام الأولى فقط، ولا ترسل رقم بطاقة كاملًا إلى هذه الدالة أبدًا.

متى تستخدمه#

  • للتحقق من البطاقة عند الدفع قبل استدعاء بوابة الدفع.
  • لمقارنة دولة البطاقة بدولة فوترة العميل أو دولة IP.
  • لاكتشاف البطاقات المسبقة الدفع أو التجارية إن كانت سياستك تعاملها بشكل مختلف.
  • لتوجيه المدفوعات حسب الشبكة أو المُصدِر.

قراءة النتيجة#

  • isValid: false تعني أن الرقم ليس BIN معروفًا، وreason يوضح السبب. اعتبر تكرار BIN غير صالح من عميل واحد اختبارًا للبطاقات.
  • info.country.alpha2 هي دولة إصدار البطاقة. الاختلاف عن دولة العميل إشارة خطر كلاسيكية لكنه شائع عند المسافرين، فوازنه بأدلة أخرى.
  • بطاقات info.scheme.isPrepaid أصعب في التتبع وأكثر استخدامًا في الإساءة، وisCommercial تدل على بطاقات الشركات.
  • info.scheme.type يفرّق بين الخصم والائتمان، وقد يؤثر ذلك في تسعير المخاطرة.
  • blacklisted يعكس قوائمك السوداء.

التغطية#

الكائن info موجود دائمًا. فإن كان الـ BIN في بياناتنا المرجعية تحصل على الشبكة ونوع البطاقة (debit أو credit أو charge) والعلامة/الفئة (Classic وPlatinum وInfinite وWorld Elite...) ومؤشرَي الدفع المسبق والتجارية واسم المصرف المُصدِر وموقعه وهاتفه. وتُعرَف بطاقات مدى السعودية بنطاقاتها، بما فيها بطاقات الخصم المشتركة مع Visa وMastercard. وإن لم يكن لدينا سجل للـ BIN تحصل مع ذلك على الشبكة وصيغة البطاقة المستنتجتين من الرقم نفسه، وتكون حقول المصرف والدولة null، وتعكس isValid الشبكة وفحص Luhn عند إرسال رقم كامل. وتُنسَّق أسماء المُصدِرين بحروف عنوانية.

ملاحظات#

  • تُحتسب طلبًا واحدًا. وضع الاختبار يُرجع بيانات وهمية مجانًا دون أحداث.
  • مشمولة في كل الباقات بما فيها القياسية.
  • يمكن لـالقواعد المخصصة في مجموعة BIN اختبار الشبكة ونوع البطاقة والدفع المسبق والتجارية ودولة الإصدار والمصرف، وتعليم الـ BIN كصالح أو غير صالح؛ وتظهر القواعد المطبقة في custom_rules_applied.
  • يُطلَق حدث invalid_bin عند اعتبار الـ BIN غير صالح ويصل إلى الويب هوك.
  • القيمة المفقودة أو غير الصحيحة تُرجع الخطأ 120 (invalid_bin_number) مع HTTP 200. وتجري دالة كشف احتيال الدفع هذا الفحص بنفسها عند تمرير رقم بطاقة.

الطلب#

GET https://gurdx.cretip.com/api/lookup/bin
  • صادِق بمعامل key أو بترويسة Authorization: Bearer.
  • تُحتسب طلباً واحداً.
  • متاحة في: تجربة مجانية القياسية المميّزة الدفع حسب الاستخدام

المعاملات#

الاسمالنوعالوصف
bin
مطلوب استعلام
string The BIN/IIN of the card (min: 6 digits). Sample value: 456789, 456789XXXXXX1234, or 4567891234567890.

تقبل كل خدمة أيضاً format, lang, mode, userID, callback. راجع الخيارات.

أمثلة برمجية#

curl -G "https://gurdx.cretip.com/api/lookup/bin" \
  --data-urlencode "key=YOUR_API_KEY" \
  --data-urlencode "bin=45717360"

الاستجابة#

نجاح#

{
    "data": {
        "reason": "",
        "isValid": true,
        "blacklisted": false,
        "bin": "456789",
        "info": {
            "scheme": {
                "name": "Visa",
                "coName": "Mada",
                "isLuha": true,
                "isPrepaid": false,
                "isCommercial": false,
                "type": "debit",
                "brand": "Traditional",
                "currency": "SAR"
            },
            "detected_digits": "4",
            "syntax": {
                "gaps": [
                    4,
                    8,
                    12
                ],
                "lengths": [
                    16,
                    18,
                    19
                ],
                "code": {
                    "name": "CVV",
                    "size": 3
                }
            },
            "bank": {
                "id": "588847",
                "identifier": "80",
                "name": "AL RAJHI BANKING AND INVESTMENT CORP.",
                "city": "Riyadh",
                "url": "https://www.alrajhibank.com.sa",
                "phone": "+96611211600",
                "logo": "https://gurdx.io/img/banks/al-rajhi.jpg",
                "latitude": "25",
                "longitude": "45"
            },
            "country": {
                "alpha2": "SA",
                "name": "Saudi Arabia",
                "code": "966",
                "numeric": "682",
                "emoji": "🇸🇦",
                "continent": "Asia",
                "languageCode": "ar",
                "languageNative": "العربية"
            }
        },
        "custom_rules_applied": {
            "total": 0,
            "rules": []
        }
    },
    "status": "success",
    "executionTime": 2
}

خطأ#

تُسلَّم الأخطاء بحالة HTTP 200 — افحص دائماً حقل status.

{
    "status": "error",
    "code": 101,
    "type": "invalid_key",
    "description": "The API Key is missing or invalid."
}

حقول الاستجابة#

الاسمالنوعالوصف
data.reason string Reason for the validation result.
data.isValid boolean Validation result (true or false).
data.blacklisted boolean Indicates if the BIN is blacklisted due to applying custom rules or were found in one of your blacklists.
data.bin string The BIN/IIN of the card you passed in the request.
data.info.scheme.name object Card scheme name.
data.info.scheme.coName object Card company name.
data.info.scheme.isLuha boolean Is the card issued by Luha?
data.info.scheme.isPrepaid boolean Is the card prepaid?
data.info.scheme.isCommercial boolean Is the card commercial?
data.info.scheme.type string Card type (debit, or credit).
data.info.scheme.brand string Card brand (Traditional, Gold, Platinum, etc.).
data.info.scheme.currency string Card currency.
data.info.scheme object —
data.info.detected_digits string The digits used to detect the scheme details.
data.info.syntax.gaps array The gaps variations of the card number.
data.info.syntax.lengths array The possible lengths of the card number.
data.info.syntax.code.name string The name of the code (e.g: CVV).
data.info.syntax.code.size integer The number of digits in the code.
data.info.syntax.code object —
data.info.syntax object —
data.info.bank.id string Bank ID.
data.info.bank.identifier string Bank identifier.
data.info.bank.name string The official bank name.
data.info.bank.city string The city where the bank's headquarters are located.
data.info.bank.url string Bank URL of the official website.
data.info.bank.phone string Bank phone number for contact.
data.info.bank.logo string Bank logo URL (image).
data.info.bank.latitude string Bank latitude coordinates of the country where the bank is located.
data.info.bank.longitude string Bank longitude coordinates of the country where the bank is located.
data.info.bank object —
data.info.country.alpha2 string Country code (in ISO 3166-1 alpha-2 format).
data.info.country.name string The Country name.
data.info.country.code string Country dialing code.
data.info.country.numeric string Country numeric code.
data.info.country.emoji string Country flag emoji.
data.info.country.continent string Continent where the country is located.
data.info.country.languageCode string Country language code (in ISO 639-1 format).
data.info.country.languageNative string Country native language name.
data.info.country object —
data.info object —
data.custom_rules_applied.total integer The total number of custom rules applied to this request.
data.custom_rules_applied.rules.id string The rule ID as shown in the dashboard (e.g: CR104).
data.custom_rules_applied.rules.title string The rule title you set when creating the rule.
data.custom_rules_applied.rules object The custom rules applied to this request, learn more.
data.custom_rules_applied object The custom rules applied to this request, learn more.
data object —
status string Response status (success, or error).
executionTime integer Time taken to process the data (in milliseconds).

وجدت خطأ؟ أخبرنا عبر صفحة التواصل. تواصل معنا