Merchant Search API Reference
Merchant Search
Search API Reference
- Getting Started
- Authentication Method
- Error Codes
- Request and Response Codes
- Frequently Asked Questions
- Product Terms
- API Reference
- Generic Search
- postGeneric Search API
- Nearby Merchants
- postMerchant Locator
- Transaction Enrichment
- postTransaction Lookup API
- postTransaction Search
- Generic Search
Generic Search
Generic Search API is used to Search for Visa accepting merchants with general merchant parameters such as name, location etc. The typical use case for this API includes identifying Visa-accepting suppliers, onboarding merchants for rewards programs etc.
Generic Search API v2 - Latest v1 v2 - Latest
Use general merchant parameters to retrieve merchant information from Visa’s global merchant repository
Request
Request Body schema: application/json
| header | object |
| --- | --- |
| messageDateTime required |
string YYYY-MM-DDThh:mm:ss.sss <= 23 characters Date and time at which Request is sent (up to milliseconds in UTC). Ex: 2008-09-19T00:00:00.000 Example: "2017-05-19T22:05:00.000" |
| requestMessageId required |
string <= 50 characters A string which uniquely identifies the service request. Requesting application need to create this unique message ID Example: "RequestMessgeId123" |
| startIndex | string <Default='0'> Records displayed in Response start at the specified number (Defaulted to 0 if not provided in request) Example: "0" |
| responseAttrList | Array of strings non-empty A group name is assigned by Visa for clients during onboarding. By default, most clients are assigned a group name Example: ["GNSTANDARD3"] |
| searchAttrList | object |
| --- | --- |
| acquirerCardAcceptorId | string CAID - Acquirer Card Acceptor ID. Note: CAID and Acquirer MID tends to be the same in many cases. However, the value seen in transactions is CAID Example: "412345-12000" |
| acquirerMid | string Acquirer assigned Merchant ID (MID) value. Note: This field is different from Visa's internal VMID value Example: "1-abc-3456" |
| acquiringBin | string Acquirer BIN of merchant (if available) Example: "412345" |
| cashBackIndicator | string Indicates if the merchant store offers cash back. Applicable values: Y or N Example: "Y" |
| firstTranDateRange | string A flag which indicates the first transaction date range of the merchant. Applicable values: In last 30 days, In last 90 days, In last 180 days, In last 365 days, In more that 365 days Example: "IN LAST 30 DAYS" |
| lastTranDateRange | string A flag which indicates the last transaction date range of the merchant. Applicable values: In last 30 days, In last 90 days, In last 180 days, In last 365 days, In more that 365 days Example: "IN LAST 90 DAYS" |
| merchantCategoryCode | Array of strings Merchant category code (MCC) value used by merchant in transactions Example: ["4111"] |
| merchantCity | string City of the merchant location Example: "SAN JOSE" |
| merchantCountryCode | string Country code of the merchant location. Note: Kindly use the 3 digit ISO standard value of country code Example: "840" |
| merchantName | string The name of the merchant Example: "ABC BUSINESS" |
| merchantPhoneNumber | string Phone number of the Merchant Example: "8881234567" |
| merchantPostalCode | string Postal code of the merchant location Example: "12345" |
| merchantState | string State of the merchant location Example: "CA" |
| merchantStreetAddress | string Street Address of the registered Merchant Example: "123 main street" |
| merchantUrl | string URL of the Merchant Example: "www.abc.com" |
| paymentAcceptanceMethod | string Indicates the payment acceptance method available at the merchant.Applicable values: F2F (Face to face), EC (E-commerce), MOTO (Mail order Telephone Order) Example: "F2F" |
| terminalType | string The type of terminal available at the merchant. Applicable values: Swipe, Chip, Paywave (contactless) Example: "SWIPE" |
| visaEnterpriseId | string VEID - Visa's identifier for a merchant at an enterprise level. Note: This value is internal to Visa and is only applicable if you already have obtained this through Merchant Search. Example: "80000001" |
| visaMerchantId | string VMID - Visa's identifier for merchant at a brand level. Note: This value is internal to Visa and is only applicable if you already have obtained this through Merchant Search. Example: "11111111" |
| visaStoreId | string VSID - Visa's unique identifier of a merchant store location. Note: This value is internal to Visa and is only applicable if you already have obtained this through Merchant Search Example: "270000111" |
| searchOptions | object |
| --- | --- |
| confidenceScores | boolean Allows to view the confidence score value of response Example: false |
| matchIndicators | boolean Provides indicators in response to show which data attributes matched Example: true |
| matchScore | boolean Allows to see the match score value. Note: Match score is used to rank responses. The absolute value of match score is not an indication of quality of response. Use confidence score to evaluate quality of response. Example: true |
| maxRecords | string Maximum number of records to be displayed in the response if there are multiple matches. Use 1 if looking for only the top result. If you prefer to view other possible matches, use 5 or 10 Example: "5" |
| searchType | string Possible values - 'Search', 'ExploratorySearch'. Use 'Search' as the default option. 'ExploratorySearch' provides slightly elaborate search results Example: "Search" |
| similarityScores | boolean Allows to view the similarity score values for merchant name and street address in response Example: true |
Responses
200 Successful Response
Response Schema: application/json
| header | object |
| --- | --- |
| endIndex | string The end index number Example: "2" |
| messageDateTime | string Date and time at which Response is sent (up to milliseconds in UTC). Example: "2008-09-19T00:00:00.000" |
| numRecordsMatched | string Provides an indication of number of records matched. If there is only a single match, it will return the value 1. In certain cases when there are multiple matches, this field indicates the number of matches and would be ranked by the match score. Example: "5" |
| numRecordsReturned | string In cases where there are multiple responses, the number of records returned will be limited by 'maxrecords' field in request. For example, if there are 3 matches and 'maxrecords' has a value of 2, number of records returned would be 2. Example: "2" |
| requestMessageId | string A string uniquely identifies the service response. Example: "" |
| responseMessageId | string A string uniquely identifies the service request. Response will contain same Message Id as received from requesting application Example: "" |
| startIndex | string The start index number Example: "5" |
| response | object |
| --- | --- |
| matchIndicators required |
object List of attributes that found a match or did not find a match |
| --- | --- |
| acquirerCardAcceptorId | string Whether field is matched, Y/N Example: "Y" |
| acquiringBin | string Whether field is matched, Y/N Example: "Y" |
| merchantCategoryCode | string Whether field is matched, Y/N Example: "Y" |
| merchantCity | string Whether field is matched, Y/N Example: "Y" |
| merchantCountryCode | string Whether field is matched, Y/N Example: "Y" |
| merchantName | string Whether field is matched, Y/N Example: "Y" |
| merchantPostalCode | string Whether field is matched, Y/N Example: "Y" |
| merchantState | string Whether field is matched, Y/N Example: "Y" |
| matchScore required |
number Match Score for the record. Note: Match score is used to rank responses. The absolute value of match score is not an indication of quality of response. Use confidence score to evaluate quality of response Example: 44.927692 |
| responseValues required |
object |
| --- | --- |
| brandName | string Brand/trademark name of the merchant Example: "Abc's Coffee" |
| businessLegalName | string Business legal name of the merchant Example: "XYZ Inc." |
| cardNotPresentVsid | string Indicates whether the Visa Store ID value is only for card not present - Y/N Example: "Y" |
| cashBackIndicator | string Indicates if the merchant store offers cash back Example: "Y" |
| categoryIconUrl | string A category icon image corresponding to the field 'primaryMerchantCategoryGroup' Example: "https://images.visa.com/GMR/logos/0813/Xyjhjhgd787Uud.png" |
| dbaname | string Doing business as name Example: "ABC STORE" |
| firstTranDateRange | string A flag which indicates the first transaction date range of the merchant. Applicable values: In last 30 days, In last 90 days, In last 180 days, In last 365 days, In more that 365 days Example: "IN LAST 30 DAYS" |
| lastTranDateRange | string A flag which indicates the last transaction date range of the merchant. Applicable values: In last 30 days, In last 90 days, In last 180 days, In last 365 days, In more that 365 days Example: "IN LAST 30 DAYS" |
| locationAddressLatitude | string The latitude co-ordinates of the merchant store location Example: "37.7661" |
| locationAddressLongitude | string The longitude co-ordinates of merchant store location Example: "-122.3958" |
| merchantCategoryCode | Array of strings The various merchant category codes used by the merchant at it's store location Example: ["5812"] |
| merchantCategoryCodeDesc | Array of strings Eating Places and Restaurants Example: ["5812"] |
| merchantCity | string The city of the merchant store location Example: "SAN JOSE" |
| merchantCountryCode | string The country code of the merchant store location Example: "840" |
| merchantIconUrl | string Brand logo icon of the merchant. Note: 'merchantIconUrl' is better suited for a square surface, while 'merchantLogoUrl' is more appropriate for a horizontal one. Example: "https://images.visa.com/GMR/icons/7521/XbbPtRRU9AKUOg.jpeg" |
| merchantLogoUrl | string Brand logos of the merchant. Note: 'merchantIconUrl' is better suited for a square surface, while 'merchantLogoUrl' is more appropriate for a horizontal one. Example: "https://images.visa.com/GMR/logos/0813/8R8xVR9UkizA.png" |
| merchantPhoneNumber | object Phone number of merchant store location and it's type |
| --- | --- |
| number | string Number |
| type | string Type |
| merchantPostalCode | string The postal code of the merchant store location Example: "12345" |
| merchantPrimaryUrl | string The primary URL of the merchant Example: "WWW.ABC.COM" |
| merchantState | string The state of the merchant store location Example: "CA" |
| merchantStreetAddress | string Street Address of the registered Merchant Example: "123 MAIN STREET" |
| merchantUrl | Array of strings URLs of merchant website if available Example: ["WWW.ABC.COM"] |
| paymentAcceptanceMethod | Array of strings Indicates the payment acceptance method available at the merchant.Applicable values: F2F (Face to face), EC (E-commerce), MOTO (Mail order Telephone Order) Example: ["F2F"] |
| paymentFacilitatorName | string The name of the payment facilitator used by the merchant (if applicable) Example: "PAYPAL" |
| primaryMerchantCategoryCode | string The primary merchant category code of merchant Example: "5812" |
| primaryMerchantCategoryGroup | string The primary merchant category group of the merchant. Currently merchants are classified into 28 different category groups. Example: "Restaurant" |
| primaryPhoneNumber | string The primary phone number of the merchant Example: "8001234567" |
| spMrchFlag | string A flag which indicates whether the merchant is sponsored by a payment facilitator (if applicable) Example: "Y" |
| terminalType | Array of strings Indicates the type of terminal available at the merchant.Applicable values: Swipe, Chip, Paywave (contactless) Example: ["SWIPE"] |
| visaEnterpriseId | string The identifier for a merchant at an enterprise level (VEID). VEIDs can have multiple VMIDs associated with it. For example Yum Brands which owns Pizza Hut (VMID) will have a VEID and it can have multiple brands (VMIDs) under it. Example: "4111" |
| visaEnterpriseName | string The name of merchant's parent enterprise. Example: "134567" |
| visaMerchantId | string The identifier for merchant at a brand level. For example, Pizza Hut would be a brand and the Visa Merchant ID (VMID - 1111111) can be used to identify the merchant brand. One VMID can have multiple VSIDs. E.g. Pizza Hut (VMID) has multiple stores (VSIDs) in different cities. Example: "11111111" |
| visaMerchantName | string VMID - The name of merchant at a brand level Example: "ABC BUSINESS" |
| visaStoreId | string The unique identifier of a merchant store location. For example, a Pizza Hut restaurant at 123 Main street, San Mateo, California would have a unique Visa store ID (VSID) Example: "123456789" |
| visaStoreName | string The name of merchant at store location Example: "Pizza Hut, San Mateo" |
| status | object |
| --- | --- |
| statusCode required |
string Status Code of the Service Request |
| statusDescription required |
string A description of the StatusCode. A brief description indicating the result of the Service request |
Sample Request
{"searchOptions": {"matchScore": "true",
"maxRecords": "5",
"matchIndicators": "true",
"searchType": "Search",
"confidenceScores": "true"},
"header": {"startIndex": "0",
"requestMessageId": "VCO_GMR_001",
"messageDateTime": "2015-08-28T22:05:00.000"},
"searchAttrList": {"merchantPhoneNumber": "4153440351",
"merchantCity": "San Francisco",
"merchantCountryCode": "840",
"merchantPostalCode": "94107",
"merchantStreetAddress": "280 King St",
"merchantState": "CA",
"merchantName": "Starbucks "},
"responseAttrList": ["GNSTANDARD3"]
}
Sample Response
{"merchantSearchServiceResponse": {"response": [{"matchScore": 154.00719,
"confidenceScore": 0.04706260480879823,
"matchIndicators": {"merchantPhoneNumber": "Y",
"merchantCity": "Y",
"merchantCountryCode": "Y",
"merchantPostalCode": "Y",
"merchantStreetAddress": "Y",
"merchantState": "Y",
"merchantName": "Y"},
"responseValues": {"visaEnterpriseName": "STARBUCKS CORPORATION",
"merchantPhoneNumber": [{"number": "+1 (800) 782-7282",
"type": "C"},
{"number": "30091532",
"type": "O"},
{"number": "(415) 344-0351",
"type": "O"},
{"number": "4153440351",
"type": "O"}],
"addressSimilarityScore": "1.0",
"primaryMerchantCategoryGroup": "Quick Service Restaurants",
"merchantCountryCode": "840",
"merchantIconUrl": "https://cdn-images.visa.com/GMR/icons/7927/NRL23jJgJfy4Cw.jpeg",
"visaEnterpriseId": "70336582810",
"paymentAcceptanceMethod": ["F2F"],
"locationAddressLongitude": "-122.393597",
"merchantCategoryCodeDesc": ["FAST FOOD RESTAURANTS"],
"firstTranDateRange": "IN MORE THAN 365 DAYS",
"merchantState": "CA",
"merchantPrimaryUrl": "WWW.STARBUCKS.COM",
"visaStoreName": "STARBUCKS",
"locationAddressLatitude": "37.777019",
"merchantPostalCode": "94107-1702",
"visaStoreId": "685334850",
"dbaname": ["Starbucks Store 06677"],
"categoryIconUrl": "",
"merchantLogoUrl": "https://cdn-images.visa.com/GMR/logos/7927/UdjVxC68aOHJsA.png",
"visaMerchantName": "STARBUCKS",
"brandName": "Starbucks",
"lastTranDateRange": "IN MORE THAN 365 DAYS",
"merchantCity": "SAN FRANCISCO",
"spMrchFlag": "",
"primaryPhoneNumber": "+1 (800) 782-7282",
"terminalType": ["SWIPE","CHIP","PAYWAVE"],
"visaMerchantId": "29992901",
"primaryMerchantCategoryCode": "5814",
"merchantCategoryCode": ["5814"],
"businessLegalName": ["Starbucks Corporation"],
"merchantStreetAddress": "280 KING ST",
"paymentFacilitatorName": [],
"merchantUrl": ["WWW.STARBUCKS.COM","STARBUCKS.COM"]},
"confidenceRange": "LOW"}],
"header": {"numRecordsReturned": 1,
"startIndex": "0",
"numRecordsMatched": 104,
"responseMessageId": "6a4a69a5-52cd-4b54-8bda-f7e29bb3a1e0",
"endIndex": "0",
"requestMessageId": "VCO_GMR_001",
"messageDateTime": "2025-02-19T23:25:04.004"},
"status": {"statusDescription": "Success",
"statusCode": "CDI000"}}}