CreditCardIdentifier 2.3.0
dotnet add package CreditCardIdentifier --version 2.3.0
NuGet\Install-Package CreditCardIdentifier -Version 2.3.0
<PackageReference Include="CreditCardIdentifier" Version="2.3.0" />
<PackageVersion Include="CreditCardIdentifier" Version="2.3.0" />
<PackageReference Include="CreditCardIdentifier" />
paket add CreditCardIdentifier --version 2.3.0
#r "nuget: CreditCardIdentifier, 2.3.0"
#:package CreditCardIdentifier@2.3.0
#addin nuget:?package=CreditCardIdentifier&version=2.3.0
#tool nuget:?package=CreditCardIdentifier&version=2.3.0
Credit Card Identifier - .NET Library
.NET library for credit card BIN validation and identification.
Supported Card Brands
- American Express (amex)
- Aura
- BaneseCard
- Diners Club
- Discover
- Elo
- Hipercard
- JCB
- Maestro
- Mastercard
- UnionPay
- Visa
Installation
Install via NuGet Package Manager:
dotnet add package CreditCardIdentifier
Or via Package Manager Console:
Install-Package CreditCardIdentifier
Usage
Using the Validator Class
using CreditCardIdentifier;
var validator = new Validator();
// Identify brand
var brand = validator.FindBrand("4012001037141112");
Console.WriteLine(brand.Name); // "visa"
// Get detailed brand info
var detailed = validator.FindBrandDetailed("4012001037141112");
Console.WriteLine(detailed.Scheme); // "visa"
Console.WriteLine(detailed.MatchedPattern?.Bin); // "^4"
// Check if supported
var supported = validator.IsSupported("4012001037141112");
Console.WriteLine(supported); // True
// Validate CVV
var valid = validator.ValidateCvv("123", "visa");
Console.WriteLine(valid); // True
// Get brand info
var info = validator.GetBrandInfo("visa");
Console.WriteLine(info?.RegexpBin);
// Get detailed brand info
var detailedInfo = validator.GetBrandInfoDetailed("amex");
// List all brands
var brands = validator.ListBrands();
foreach (var b in brands)
{
Console.WriteLine(b);
}
// amex, aura, banesecard, diners, discover, elo, hipercard, jcb, maestro, mastercard, unionpay, visa
// Validate card number using Luhn algorithm
var isValid = Luhn.Validate("4012001037141112");
Console.WriteLine(isValid); // True
// Or using validator instance
isValid = validator.ValidateLuhn("4012001037141112");
Console.WriteLine(isValid); // True
Static Methods
using CreditCardIdentifier;
// Static convenience method
var brand = Validator.FindBrandStatic("4012001037141112");
Console.WriteLine(brand?.Name); // "visa"
var supported = Validator.IsSupportedStatic("4012001037141112");
Console.WriteLine(supported); // True
API
Validator Class
Validator()
Initialize validator with embedded brand data.
FindBrand(string cardNumber)
Identify the credit card brand.
Parameters:
cardNumber(string): The credit card number
Returns: (BrandData.Brand) Brand object or null if not found
FindBrandDetailed(string cardNumber)
Identify the credit card brand with detailed information.
Parameters:
cardNumber(string): The credit card number
Returns: (DetailedBrandResult) Detailed brand result with MatchedPattern and MatchedBin, or null if not found
IsSupported(string cardNumber)
Check if card number is supported.
Parameters:
cardNumber(string): The credit card number
Returns: (bool) True if supported, false otherwise
ValidateCvv(string cvv, string brandName)
Validate CVV for a specific brand.
Parameters:
cvv(string): CVV codebrandName(string): Brand name (e.g., "visa", "mastercard")
Returns: (bool) True if valid, false otherwise
GetBrandInfo(string brandName)
Get information about a specific brand.
Parameters:
brandName(string): Brand name
Returns: (BrandData.Brand) Brand information or null if not found
GetBrandInfoDetailed(string scheme)
Get detailed information about a specific brand.
Parameters:
scheme(string): Scheme name (e.g., "visa", "mastercard")
Returns: (BrandDataDetailed.Brand) Detailed brand information or null if not found
ListBrands()
List all supported brands.
Returns: (List<string>) List of brand names
ValidateLuhn(string number)
Validate a credit card number using the Luhn algorithm.
Parameters:
number(string): Credit card number (digits only)
Returns: (bool) True if valid according to Luhn algorithm
Luhn Class
Static utility class for Luhn validation.
Luhn.Validate(string number)
Validate a credit card number using the Luhn algorithm.
Parameters:
number(string): Credit card number (digits only)
Returns: (bool) True if valid according to Luhn algorithm
Throws: ArgumentNullException if input is null
BrandData.Brand Class
Properties:
Name(string): Brand nameRegexpBin(Regex): BIN pattern (pre-compiled)RegexpFull(Regex): Full validation pattern (pre-compiled)RegexpCvv(Regex): CVV validation pattern (pre-compiled)
DetailedBrandResult Class
Properties:
Scheme(string): Scheme nameBrand(string): Display brand nameType(string): Card type (credit/debit)Cvv(CvvInfo): CVV informationPatterns(Pattern[]): BIN patternsCountries(string[]): Supported countriesMatchedPattern(Pattern): The specific pattern that matchedMatchedBin(BinInfo): The specific BIN that matched (if available)
Supported Frameworks
- .NET Standard 2.0+
- .NET Core 2.0+
- .NET Framework 4.6.1+
- .NET 5.0+
Data Source
This library uses the BIN data from the bin-cc project.
The data is embedded directly in the package for optimal performance.
Development
Build
cd libs/dotnet/CreditCardIdentifier
dotnet build
Run Tests
cd libs/dotnet/CreditCardIdentifier.Tests
dotnet test
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- System.Text.Json (>= 10.0.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.