# Visa BIN Attribute Sharing Service

\\
Start a Project](https://developer.visa.com/portal/#users/new) \\
API Overview](https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service) \\
API Reference](https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/reference)

- [Getting Started](https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/docs-getting-started)
- [Authentication Method](https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/docs-authentication)
- [How to Use VBASS](https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/docs-how-to)
  - [More about full BIN data extract - Acquirer APIs](https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/docs-how-to#section0)
  - [Using Full BIN List API - Acquirer API](https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/docs-how-to#section1)
  - [Using File Stream implementation APIs - Acquirer API](https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/docs-how-to#section2)
  - [Using Single BIN Lookup - Acquirer API](https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/docs-how-to#section3)
  - [More about full BIN data extract - Issuer API](https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/docs-how-to#section4)
  - [Using File Stream implementation APIs - Issuer API](https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/docs-how-to#section5)
- [VBASS Request and Response Codes](https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/docs-request-response-codes)
- [Frequently Asked Questions](https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/faq)
- [Error Codes](https://developer.visa.com/pages/visa-developer-error-codes)
- [API Reference](https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/reference)
- [Product Terms](https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/product-terms)

Navigate to...

_keyboard\_arrow\_down_

## 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 two levels of access to the Issuer BIN data as highlighted below:

**Basic:** 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.

**Enhanced:** This level requires registration to VBASS and is 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** | **Basic** | **Enhanced** | **Description** |
| Issuer BIN | issuerBin | Yes | Yes | Bank Identification Number (BIN) of the issuer of the account. |
| Account Range Minimum/Maximum | binRangeMinNum | Yes | Yes | Account/Token range min and max |
| binRangeMaxNum |
| Shared BIN Indicator | sharedBinInd | Yes | Yes | True if BIN shared by multiple issuers |
| BIN Length | binLength | Yes | Yes | Provides BIN length - 6 or 8 digits |
| POS Domestic Only | posDomesticOnlyInd | Yes | Yes | Domestic Only BIN or Account Ranges |
| Online Gambling Block (Purchases) | onlineGamblBlockInd | Yes | Yes | Indicates whether Online Gambling is permitted or not |
| Auto Substantiation Indicator | autoSubstntnInd | Yes | Yes | Auto Substantiation enabled indicator |
| PAN/Token Indicator | binRangePaymentAccountType |  | Yes | Indicates if  Pan or Token number |
| Issuer Billing Currency | issuerBillingCurrCd |  | Yes | Card issuance currency |
| Issuer Country Code | accountCtryAlpha2Code |  | Yes | Card issuance country |
| Product Platform | platformCd |  | Yes | Indicates if  consumer BIN or commercial BIN |
| Product ID/Name | productID/productIDName |  | Yes | Indicates type of Visa product (e.g., Visa Signature, Visa Infinite, Visa Classic) |
| Account Funding Source | accountFundingSourceCd |  | Yes | Indicates if credit, debit or prepaid |
| Brand Indicator | brandCd |  | Yes | Identifies if the brand or brands is associated with the account range. |
| Commercial Card Level 2 Data Indicator | commrclCrdLvl2Ind |  | Yes | Indicates if transaction qualifies for Level 2 interchange rates |
| Commercial Card Level 3 Enhanced Data Indicator | commrclCrdLvl3EnhInd |  | Yes | Indicates if transaction qualifies for Level 3 interchange rates |
| Combo Card Indicator | comboCrdCd |  | Yes | Indicator for combo card |
| Exempt/Non-Exempt BINs (Regulated BINs) | regulatedBinCd |  | 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

}

Zoom](https://developer.visa.com/images2/products/visa-bin-attribute-shared-services/infographic-vbass-info2-v2-2x.png)

**Note:** In sandbox environment the response on Full BIN List API will list attributes from the Enhanced level, 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:

### 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 Enhanced level 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 Enhanced. 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.

Zoom](https://developer.visa.com/images2/products/visa-bin-attribute-shared-services/infographic-vbass-info1-2x.png)

**Authentication:**

The Single BIN Lookup API requires the API caller to enable [Message Level Encryption](https://developer.visa.com/pages/encryption_guide) 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](https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/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:

_arrow\_upward_ Back to top
