Visa BIN Attribute Sharing Service

How to Use Visa BIN Attribute Sharing Service

More about full BIN data extract - Acquirer APIs

Full BIN Data extract is available via two different mechanisms - as a JSON payload via the Full BIN List API and as a CSV via the file stream APIs. For either of those mechanisms, the full BIN data has three levels of access to the Issuer BIN data as highlighted below: 

 

Level 1—Basic Level : This is the only subscription option that has no program fees and does not require registration, except for a relevant VDP Agreement and applicable onboarding fees.

Level 2 - Advanced and Level 3 - Complete : Both levels require registration to VBASS and are subject to approval and pricing. Eligible participants will be notified by Visa about the approved level of access in response to a successful registration with the Visa BIN Attribute Sharing Service (VBASS) program.

ATTRIBUTE Response Object Name LEVEL 1 - Basic  LEVEL 2 - Advanced LEVEL 3 - Complete Description
Issuer BIN issuerBin Yes Yes Yes Bank Identification Number (BIN) of the issuer of the account.
Account Range Minimum/Maximum binRangeMinNum Yes Yes Yes Account/Token range min and max
binRangeMaxNum
Shared BIN Indicator sharedBinInd Yes Yes Yes True if BIN shared by multiple issuers
BIN Length binLength Yes Yes Yes Provides BIN length - 6 or 8 digits 
POS Domestic Only posDomesticOnlyInd Yes Yes Yes Domestic Only BIN or Account Ranges 
Online Gambling Block (Purchases) onlineGamblBlockInd Yes Yes Yes Indicates whether Online Gambling is permitted or not 
Auto Substantiation Indicator autoSubstntnInd Yes Yes Yes Auto Substantiation enabled indicator
PAN/Token Indicator binRangePaymentAccountType   Yes Yes Indicates if  Pan or Token number
Issuer Billing Currency issuerBillingCurrCd   Yes Yes Card issuance currency 
Issuer Country Code accountCtryAlpha2Code   Yes Yes Card issuance country
Product Platform platformCd   Yes Yes Indicates if  consumer BIN or commercial BIN
Product ID/Name productID/productIDName   Yes Yes Indicates type of Visa product (e.g., Visa Signature, Visa Infinite, Visa Classic)
Account Funding Source accountFundingSourceCd   Yes Yes Indicates if credit, debit or prepaid
Brand Indicator brandCd   Yes Yes Identifies if the brand or brands is associated with the account range. 
Commercial Card Level 2 Data Indicator commrclCrdLvl2Ind   Yes Yes Indicates if transaction qualifies for Level 2 interchange rates
Commercial Card Level 3 Enhanced Data Indicator commrclCrdLvl3EnhInd   Yes Yes Indicates if transaction qualifies for Level 3 interchange rates
Combo Card Indicator comboCrdCd   Yes Yes Indicator for combo card
Exempt/Non-Exempt BINs (Regulated BINs) regulatedBinCd   Yes Yes Indicator for regulated BINs
Account Funding Source Subtype accountFundingSourceSubtypeCd     Yes Indicates if reloadable or non-reloadable prepaid
Issuer Name accountBusName     Yes Name of the Card Issuer
ALM Indicator almInd     Yes Indicates if BIN or Account Range participate in Account Level Management
VAU Indicator vauInd     Yes Visa Account Updater enabled indicator
Multi Account Access Indicator multiAccountAccessInd     Yes Indicates participation in Multi Account Access

Using Full BIN List API - Acquirer API

 

For the Full BIN list, client application can retrieve the full list by paginating through the BIN Range dataset using the combination of binRangeSearchIndex and binRangeCount fields in the API request. The parameter “binRangeSearchIndex” is a mandatory parameter, for the first API call this should be set to 0. The other parameter binRangeCount is also mandatory and is set to 500 [DS1] which represents the number of results returned on every API call. The client application starts with binRangeSearchIndex=0 and binRangeCount=500.

The additional attributes listed below are included in the Full BIN List API result-

    totalRecordCount indicates the total number of records available

    numRecordsReturned indicates the number of records returned on the current call 

    areNextOffsetRecordsAvailable if set to Y indicates there are more records available and if set to N indicates no more records available to retrieve 

The client application will need to make multiple calls via the Full BIN List API until all the records are received, that is until areNextOffsetRecordsAvailable is returned as N. The value of binRangeSearchIndex for each iteration should be binRangeSearchIndex + binRangeCount from previous request . The response field totalRecordsCount can be leveraged to determine the number of iterations of API calls that may be needed to fetch all the BIN Range Data.

Below is an example of the first 3 calls for the Full BIN List API-

First Full BIN List API call - 

  "requestData": {

    "binRangeSearchIndex": 0,

    "binRangeCount": 500

  }

Second Full BIN List API call - 

  "requestData": {

    "binRangeSearchIndex": 500,

    "binRangeCount": 500

  }

Third Full BIN List API call - 

  "requestData": {

    "binRangeSearchIndex": 1000,

    "binRangeCount": 500

  }

Note: In sandbox environment the response on Full BIN List API will list attributes from Level 3 - Complete,  but the API response in production will reflect only the attributes for the level the client is registered and approved. Data returned in sandbox is not actual data.

 

Using File Stream implementation APIs - Acquirer API

 

BIN Files Metadata API

This API allows client application to request BIN file name and related details like file size, checksum and file creation date for all BIN data files. 

The following parameter is mandatory:

  • paymentAccountType (P for PAN or T for Token)

The response to the API is in JSON format. Entities will need to make two calls to this API with the paymentAccountType parameter as P and T to receive all PAN and token files. The file count, file size, checksum and file creation date details should be saved to validate entire file was received in the BIN File Transfer API response.

BIN File Transfer API

This API allows client application to retrieve the file content of the BIN files that are listed in the BIN Files Metadata API response. The following parameter is mandatory:

  • fileName (receive in the BIN Files Metadata API response)

The response to this API is via file stream. A successful response will display the file contents of the file that was passed in the fileName parameter. Entities can use the file size and checksum from the BIN Files Metadata API response to validate if entire file contents was consumed. Entities will need to make separate calls for each file they want to consume. 

For example – if there are 20000 BIN records out of which 8000 are account range records and 12000 are token range records, with 2000 records making up a 5MB file, there will be 4 account range BIN files and 6 token range BIN files created. Entities will need to call the BIN Files Metadata API with paymentAccountType parameter as P to receive the file name, file size, checksum and file creation data for the 4 account range files. Once they receive the file names, they will need to call the BIN File Transfer API by passing the account range file name in the fileName parameter to see the actual BIN account range file contents. The BIN File Transfer API will need to be called once for each file that needs to be retrieved, which is 4 times in this case. When a successful call is made to the BIN File Transfer API, the all the records in the file will be file streamed and the response will be comma delimited.  

See below what a file stream response will look like:

API Response From SOAP-UI

Using Single BIN Lookup - Acquirer API

This API allows client application to request issuer BIN attribute data on an account-by-account basis. This API provides Level 3 attributes by default and includes Account Level Product Information for product ID, as provided by participating issuers.

To request BIN attributes associated with the paymentAccount input, the following parameters are mandatory:

  • paymentAccount (input for BIN, Account Range, PAN, Token) and
  • paymentAccountType (P for PAN or T for Token)

Parameter paymentAccount accepts a minimum of 13 digits and a maximum of 21 digits. To lookup 6 or 8-digit BINs and 9-digit account ranges, please add 0s to make the paymentAccount input at least 13 digits. For example: if BIN is 425907, then the paymentAccount parameter should be 4259070000000.

 

Below are sample paymentAccount and paymentAccountType values that can be used in the request for Single BIN Lookup API in sandbox environment-

paymentAccount paymentAccountType
4259077000001230 P
4259078000000010 P
4259079000000020 P
4001510050000030 T
4001510060000040 T
4001510070000050 T

 

The results returned for Single BIN Lookup API will list the attributes as listed in the above table under Level 3 - Complete. Since the attributes are listed for a specific account, it will not show the Account Range Minimum/Maximum value in the result. Data returned in sandbox is not actual data.

Note for Account Level Product Information:  Certain Issuers set product ID at the account level vs. the BIN or account range level.  When looking for the exact product ID of a particular PAN, the full complete account number must be submitted or the product ID may not match. The API solution is unable at this time to provide account level product information for tokens, but will be updated in a future API release.

 

Authentication:

The Single BIN Lookup API requires the API caller to enable Message Level Encryption as a part of the implementation. 

The access and use for both the Full BIN List API and the Single BIN Lookup API require the participant to be sponsored by a participating Visa licensed Acquirer or Issuer [CS1] and is subject to approval by Visa for permissible use cases only. Payment Card Industry Data Security Standard (PCI DSS) compliance is required of all entities that store, process, or transmit Visa cardholder data, including financial institutions, merchants and service providers. The utilization of Single BIN Lookup API requires the participant to be PCI DSS compliant.

The technical details can be found on the API Reference. A complete listing of all of these code values and their names is in the Request and Response Code Reference.

 

More about full BIN data extract - Issuer API

 

Full BIN Data extract is available as a CSV via the file stream APIs.

Attribute Response Object Name Description
Acquirer BIN AcquirerBIN Bank Identification Number (BIN) of the Acquirer
Acquirer Name AcquirerName Name of the Acquirer
BIN User Name BINUserName User Name of the Bank Identification Number (BIN)
Acquirer Region Code AcquirerRegionCode Region code of the Acquirer
Acquirer Country Code AcquirerCtryAlpha2Code Country code of the Acquirer 

         

Using File Stream implementation APIs - Issuer API

 

VBASS Files Metadata API

This API allows client application to request file name and related details like file size, checksum and file creation date for all data files. 

The following parameter is mandatory:

  • fileType (ACQ for Acquirer)

The response to the API is in JSON format. The file count, file size, checksum and file creation date details should be saved to validate entire file was received in the VBASS File Transfer API response.

VBASS File Transfer API

This API allows client application to retrieve the file content of the files that are listed in the VBASS Files Metadata API response. The following parameter is mandatory:

  • fileName (receive in the VBASS Files Metadata API response)

The response to this API is via file stream. A successful response will display the file contents of the file that was passed in the fileName parameter. Entities can use the file size and checksum from the VBASS Files Metadata API response to validate if entire file contents was consumed. Entities will need to make separate calls for each file they want to consume. 

For example – if there are 20000 records with 2000 records making up a 5MB file, there will be 10 files created. Entities will need to call the VBASS Files Metadata API with fileType parameter as ACQ to receive the file name, file size, checksum and file creation data for the 10 files. Once they receive the file names, they will need to call the VBASS File Transfer API by passing the file name in the fileName parameter to see the actual file contents. The VBASS File Transfer API will need to be called once for each file that needs to be retrieved, which is 10 times in this case. When a successful call is made to the VBASS File Transfer API,  all the records in the file will be file streamed and the response will be comma delimited.  

See below what a file stream response will look like:

The technical details can be found on the API Reference. A complete listing of all of these code values and their names is in the Request and Response Code Reference.