# Visa Global ATM Locator
Locate Visa ATMs in over 200 countries.

## Version: 1

### Servers

| URL | Description |
| --- | ----------- |
| https://sandbox.api.visa.com | Sandbox server |

---
## Locate ATMs API
The ATM Locator service lets cardholders search and find a convenient ATM when they need cash from over 1 million ATMs in over 200 countries. The ATM Locator Service is a cost effective way to deliver user friendly and trusted information when user needs

### [POST] /globalatmlocator/v3/localatms/totalsinquiry
**Find Near by ATM Totals**

Return the number and statistic info of ATMs nearest to a given location based on the searching criteria

#### Request Body

ATM Locator Request creation

| Required | Schema |
| -------- | ------ |
|  Yes | **application/json**: { **"requestData"**: { **"culture"**: string, **"options"**: { **"sort"**: { **"primary"**: string, <br>**Available values:** "distance", "placeName", "city", **"direction"**: string, <br>**Available values:** "asc", "desc" }, **"range"**: { **"count"**: integer, **"start"**: integer }, **"findFilters"**: [ { **"filterName"**: string, **"filterVaule"**: string } ], **"operationName"**: string, <br>**Available values:** "and", "or", **"useFirstAmbiguous"**: boolean }, **"distance"**: number, **"location"**: { **"address"**: object, **"geocodes"**: { **"latitude"**: string, **"longitude"**: string }, **"placeName"**: string }, **"distanceUnit"**: string, <br>**Available values:** "mi", "km", **"metaDataOptions"**: number }, **"wsRequestHeaderV2"**: { **"userId"**: string, **"userBid"**: string, **"requestTs"**: string, **"applicationId"**: string, **"correlationId"**: string, **"requestMessageId"**: string } }<br> |

#### Responses

| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Successful Response | **application/json**: { **"wsStatus"**: { **"statusCode"**: string, **"statusDesc"**: string }, **"responseData"**: { **"metaData"**: { **"fields"**: string, **"filters"**: string, **"targetCulture"**: string }, **"properties"**: [ { **"name"**: string, **"value"**: string } ], **"bestMapView"**: { **"northEast"**: { **"latitude"**: number, **"longitude"**: number }, **"northWest"**: { **"latitude"**: number, **"longitude"**: number }, **"southEast"**: { **"latitude"**: number, **"longitude"**: number }, **"southWest"**: { **"latitude"**: number, **"longitude"**: number }, **"distanceAcross"**: number }, **"distanceUnit"**: string, **"totalATMCount"**: integer, **"matchedLocations"**: [ object ], **"foundATMLocations"**: [ { **"location"**: { **"score"**: number, **"address"**: { **"city"**: string, **"state"**: string, **"street"**: string, **"country"**: string, **"street2"**: string, **"postalCode"**: string, **"formattedAddress"**: string }, **"distance"**: string, **"typeName"**: string, **"placeName"**: string, **"isMappable"**: string, **"properties"**: [ { **"name"**: string, **"value"**: string } ], **"coordinates"**: { **"latitude"**: number, **"longitude"**: number }, **"ownerBusName"**: string } } ] }, **"wsResponseHeader"**: object, **"wsResponseHeaderV2"**: { **"responseTs"**: string, **"correlationId"**: string, **"requestMessageId"**: string, **"numOfRowsReturned"**: integer, **"responseMessageId"**: string, **"totalNumberOfRecords"**: string }, **"responseSummaryData"**: object }<br>**application/pdf**: { **"wsStatus"**: { **"statusCode"**: string, **"statusDesc"**: string }, **"responseData"**: { **"metaData"**: { **"fields"**: string, **"filters"**: string, **"targetCulture"**: string }, **"properties"**: [ { **"name"**: string, **"value"**: string } ], **"bestMapView"**: { **"northEast"**: { **"latitude"**: number, **"longitude"**: number }, **"northWest"**: { **"latitude"**: number, **"longitude"**: number }, **"southEast"**: { **"latitude"**: number, **"longitude"**: number }, **"southWest"**: { **"latitude"**: number, **"longitude"**: number }, **"distanceAcross"**: number }, **"distanceUnit"**: string, **"totalATMCount"**: integer, **"matchedLocations"**: [ object ], **"foundATMLocations"**: [ { **"location"**: { **"score"**: number, **"address"**: { **"city"**: string, **"state"**: string, **"street"**: string, **"country"**: string, **"street2"**: string, **"postalCode"**: string, **"formattedAddress"**: string }, **"distance"**: string, **"typeName"**: string, **"placeName"**: string, **"isMappable"**: string, **"properties"**: [ { **"name"**: string, **"value"**: string } ], **"coordinates"**: { **"latitude"**: number, **"longitude"**: number }, **"ownerBusName"**: string } } ] }, **"wsResponseHeader"**: object, **"wsResponseHeaderV2"**: { **"responseTs"**: string, **"correlationId"**: string, **"requestMessageId"**: string, **"numOfRowsReturned"**: integer, **"responseMessageId"**: string, **"totalNumberOfRecords"**: string }, **"responseSummaryData"**: object }<br> |
| 400 | Bad Request | **application/json**: { **"responseStatus"**: { **"statusCode"**: string, **"statusDescription"**: string } }<br>**application/pdf**: { **"responseStatus"**: { **"statusCode"**: string, **"statusDescription"**: string } }<br> |
| default | Unexpected error | **application/json**: { **"path"**: string, **"error"**: string, **"status"**: number (int32), **"message"**: string, **"timestamp"**: string }<br>**application/pdf**: { **"path"**: string, **"error"**: string, **"status"**: number (int32), **"message"**: string, **"timestamp"**: string }<br> |

### [POST] /globalatmlocator/v3/localatms/atmsinquiry
**Find Near by ATMs**

Retrieve all the details of all the ATMs near a given area based on the searching criteria

#### Request Body

ATM Locator Request creation

| Required | Schema |
| -------- | ------ |
|  Yes | **application/json**: { **"requestData"**: { **"culture"**: string, **"options"**: { **"sort"**: { **"primary"**: string, <br>**Available values:** "distance", "placeName", "city", **"direction"**: string, <br>**Available values:** "asc", "desc" }, **"range"**: { **"count"**: integer, **"start"**: integer }, **"findFilters"**: [ { **"filterName"**: string, **"filterVaule"**: string } ], **"operationName"**: string, <br>**Available values:** "and", "or", **"useFirstAmbiguous"**: boolean }, **"distance"**: number, **"location"**: { **"address"**: object, **"geocodes"**: { **"latitude"**: string, **"longitude"**: string }, **"placeName"**: string }, **"distanceUnit"**: string, <br>**Available values:** "mi", "km", **"metaDataOptions"**: number }, **"wsRequestHeaderV2"**: { **"userId"**: string, **"userBid"**: string, **"requestTs"**: string, **"applicationId"**: string, **"correlationId"**: string, **"requestMessageId"**: string } }<br> |

#### Responses

| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Successful Response | **application/json**: { **"wsStatus"**: { **"statusCode"**: string, **"statusDesc"**: string }, **"responseData"**: { **"metaData"**: { **"fields"**: string, **"filters"**: string, **"targetCulture"**: string }, **"properties"**: [ { **"name"**: string, **"value"**: string } ], **"bestMapView"**: { **"northEast"**: { **"latitude"**: number, **"longitude"**: number }, **"northWest"**: { **"latitude"**: number, **"longitude"**: number }, **"southEast"**: { **"latitude"**: number, **"longitude"**: number }, **"southWest"**: { **"latitude"**: number, **"longitude"**: number }, **"distanceAcross"**: number }, **"distanceUnit"**: string, **"totalATMCount"**: integer, **"matchedLocations"**: [ object ], **"foundATMLocations"**: [ { **"location"**: { **"score"**: number, **"address"**: { **"city"**: string, **"state"**: string, **"street"**: string, **"country"**: string, **"street2"**: string, **"postalCode"**: string, **"formattedAddress"**: string }, **"distance"**: string, **"typeName"**: string, **"placeName"**: string, **"isMappable"**: string, **"properties"**: [ { **"name"**: string, **"value"**: string } ], **"coordinates"**: { **"latitude"**: number, **"longitude"**: number }, **"ownerBusName"**: string } } ] }, **"wsResponseHeader"**: object, **"wsResponseHeaderV2"**: { **"responseTs"**: string, **"correlationId"**: string, **"requestMessageId"**: string, **"numOfRowsReturned"**: integer, **"responseMessageId"**: string, **"totalNumberOfRecords"**: string }, **"responseSummaryData"**: object }<br>**application/pdf**: { **"wsStatus"**: { **"statusCode"**: string, **"statusDesc"**: string }, **"responseData"**: { **"metaData"**: { **"fields"**: string, **"filters"**: string, **"targetCulture"**: string }, **"properties"**: [ { **"name"**: string, **"value"**: string } ], **"bestMapView"**: { **"northEast"**: { **"latitude"**: number, **"longitude"**: number }, **"northWest"**: { **"latitude"**: number, **"longitude"**: number }, **"southEast"**: { **"latitude"**: number, **"longitude"**: number }, **"southWest"**: { **"latitude"**: number, **"longitude"**: number }, **"distanceAcross"**: number }, **"distanceUnit"**: string, **"totalATMCount"**: integer, **"matchedLocations"**: [ object ], **"foundATMLocations"**: [ { **"location"**: { **"score"**: number, **"address"**: { **"city"**: string, **"state"**: string, **"street"**: string, **"country"**: string, **"street2"**: string, **"postalCode"**: string, **"formattedAddress"**: string }, **"distance"**: string, **"typeName"**: string, **"placeName"**: string, **"isMappable"**: string, **"properties"**: [ { **"name"**: string, **"value"**: string } ], **"coordinates"**: { **"latitude"**: number, **"longitude"**: number }, **"ownerBusName"**: string } } ] }, **"wsResponseHeader"**: object, **"wsResponseHeaderV2"**: { **"responseTs"**: string, **"correlationId"**: string, **"requestMessageId"**: string, **"numOfRowsReturned"**: integer, **"responseMessageId"**: string, **"totalNumberOfRecords"**: string }, **"responseSummaryData"**: object }<br> |
| 400 | Bad Request | **application/json**: { **"responseStatus"**: { **"statusCode"**: string, **"statusDescription"**: string } }<br>**application/pdf**: { **"responseStatus"**: { **"statusCode"**: string, **"statusDescription"**: string } }<br> |
| default | Unexpected error | **application/json**: { **"path"**: string, **"error"**: string, **"status"**: number (int32), **"message"**: string, **"timestamp"**: string }<br>**application/pdf**: { **"path"**: string, **"error"**: string, **"status"**: number (int32), **"message"**: string, **"timestamp"**: string }<br> |

### [POST] /globalatmlocator/v3/localatms/geocodesinquiry
**Find Geocodes**

Returns the pair of latitude and longitude based on the input address

#### Request Body

ATM Locator Request FindGeocodes creation

| Required | Schema |
| -------- | ------ |
|  Yes | **application/json**: { **"requestData"**: { **"city"**: string, **"state"**: string, **"country"**: string, **"postalCode"**: string, **"mainAddress"**: string } }<br> |

#### Responses

| Code | Description | Schema |
| ---- | ----------- | ------ |
| 200 | Successful Response | **application/json**: { **"wsStatus"**: { **"statusCode"**: string, **"statusDescription"**: string }, **"responseData"**: { **"score"**: string, **"latitude"**: number, **"longitude"**: number } }<br>**application/pdf**: { **"wsStatus"**: { **"statusCode"**: string, **"statusDescription"**: string }, **"responseData"**: { **"score"**: string, **"latitude"**: number, **"longitude"**: number } }<br> |
| 400 | Bad Request | **application/json**: { **"statusCode"**: string, **"statusDescription"**: string }<br>**application/pdf**: { **"statusCode"**: string, **"statusDescription"**: string }<br> |
| default | Unexpected error | **application/json**: { **"path"**: string, **"error"**: string, **"status"**: number (int32), **"message"**: string, **"timestamp"**: string }<br>**application/pdf**: { **"path"**: string, **"error"**: string, **"status"**: number (int32), **"message"**: string, **"timestamp"**: string }<br> |

---
### Schemas

#### wsResponseHeaderV2 Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| responseTs | string |  | No |
| correlationId | string | *Example:* `"909420141104053819420"` | No |
| requestMessageId | string | *Example:* `"rohuang-001"` | No |
| numOfRowsReturned | integer |  | No |
| responseMessageId | string | *Example:* `"51VATMLOC9717920220304001030521"` | No |
| totalNumberOfRecords | string |  | No |

#### foundATMLocations Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| foundATMLocations | [ { **"location"**: { **"score"**: number, **"address"**: { **"city"**: string, **"state"**: string, **"street"**: string, **"country"**: string, **"street2"**: string, **"postalCode"**: string, **"formattedAddress"**: string }, **"distance"**: string, **"typeName"**: string, **"placeName"**: string, **"isMappable"**: string, **"properties"**: [ { **"name"**: string, **"value"**: string } ], **"coordinates"**: { **"latitude"**: number, **"longitude"**: number }, **"ownerBusName"**: string } } ] |  |  |

#### latitude Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| latitude | number |  |  |

**Example**
<pre>41.63241</pre>

#### responseDataTotals Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| metaData | { **"fields"**: string, **"filters"**: string, **"targetCulture"**: string } |  | No |
| properties | [ { **"name"**: string, **"value"**: string } ] |  | No |
| bestMapView | { **"northEast"**: { **"latitude"**: number, **"longitude"**: number }, **"northWest"**: { **"latitude"**: number, **"longitude"**: number }, **"southEast"**: { **"latitude"**: number, **"longitude"**: number }, **"southWest"**: { **"latitude"**: number, **"longitude"**: number }, **"distanceAcross"**: number } |  | No |
| distanceUnit | string |  | No |
| totalATMCount | integer | *Example:* `5089` | No |
| matchedLocations | [ object ] |  | No |
| foundATMLocations | [ { **"location"**: { **"score"**: number, **"address"**: { **"city"**: string, **"state"**: string, **"street"**: string, **"country"**: string, **"street2"**: string, **"postalCode"**: string, **"formattedAddress"**: string }, **"distance"**: string, **"typeName"**: string, **"placeName"**: string, **"isMappable"**: string, **"properties"**: [ { **"name"**: string, **"value"**: string } ], **"coordinates"**: { **"latitude"**: number, **"longitude"**: number }, **"ownerBusName"**: string } } ] |  | No |

#### wsStatus-1 Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| statusCode | string | *Example:* `"API000"` | No |
| statusDescription | string | *Example:* `"Visa ATM Locator Svc-Success"` | No |

#### geocodes Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| latitude | string | *Example:* `"30.26759000000004"` | Yes |
| longitude | string | *Example:* `"-97.74298999999996"` | Yes |

#### responseData Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| metaData | { **"fields"**: string, **"filters"**: string, **"targetCulture"**: string } |  | No |
| properties | [ { **"name"**: string, **"value"**: string } ] |  | No |
| bestMapView | { **"northEast"**: { **"latitude"**: number, **"longitude"**: number }, **"northWest"**: { **"latitude"**: number, **"longitude"**: number }, **"southEast"**: { **"latitude"**: number, **"longitude"**: number }, **"southWest"**: { **"latitude"**: number, **"longitude"**: number }, **"distanceAcross"**: number } |  | No |
| distanceUnit | string |  | No |
| totalATMCount | integer | *Example:* `5089` | No |
| matchedLocations | [ object ] |  | No |
| foundATMLocations | [ { **"location"**: { **"score"**: number, **"address"**: { **"city"**: string, **"state"**: string, **"street"**: string, **"country"**: string, **"street2"**: string, **"postalCode"**: string, **"formattedAddress"**: string }, **"distance"**: string, **"typeName"**: string, **"placeName"**: string, **"isMappable"**: string, **"properties"**: [ { **"name"**: string, **"value"**: string } ], **"coordinates"**: { **"latitude"**: number, **"longitude"**: number }, **"ownerBusName"**: string } } ] |  | No |

#### error Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| path | string |  | No |
| error | string |  | No |
| status | number (int32) |  | No |
| message | string |  | No |
| timestamp | string |  | No |

#### responseData-1 Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| score | string | *Example:* `"111"` | No |
| latitude | number | *Example:* `30.429159` | No |
| longitude | number | *Example:* `-97.755066` | No |

#### southEast Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| latitude | number | *Example:* `41.63241` | No |
| longitude | number | *Example:* `-86.21856` | No |

#### findFiltersItem Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| filterName | string |  | No |
| filterVaule | string |  | No |

#### matchedLocations Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| matchedLocations | [ object ] |  |  |

#### metaData Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| fields | string | *Example:* `"stringconcatenated|pipedelimited|listoffieldsavailableforATMlocations"` | No |
| filters | string | *Example:* `"stringconcatenated|pipedelimited|listofallfiltersavailableinthetargetareaATMs"` | No |
| targetCulture | string |  | No |

#### atmLocation Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| score | number |  | No |
| address | { **"city"**: string, **"state"**: string, **"street"**: string, **"country"**: string, **"street2"**: string, **"postalCode"**: string, **"formattedAddress"**: string } |  | No |
| distance | string |  | No |
| typeName | string |  | No |
| placeName | string |  | No |
| isMappable | string |  | No |
| properties | [ { **"name"**: string, **"value"**: string } ] |  | No |
| coordinates | { **"latitude"**: number, **"longitude"**: number } |  | No |
| ownerBusName | string |  | No |

#### distanceAcross Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| distanceAcross | number |  |  |

**Example**
<pre>3.7338603</pre>

#### options Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| sort | { **"primary"**: string, <br>**Available values:** "distance", "placeName", "city", **"direction"**: string, <br>**Available values:** "asc", "desc" } |  | Yes |
| range | { **"count"**: integer, **"start"**: integer } |  | Yes |
| findFilters | [ { **"filterName"**: string, **"filterVaule"**: string } ] |  | No |
| operationName | string, <br>**Available values:** "and", "or" | *Enum:* `"and"`, `"or"`<br>*Example:* `"or"` | No |
| useFirstAmbiguous | boolean |  | No |

#### responseSummaryData Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| responseSummaryData | object |  |  |

#### requestData Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| culture | string | *Example:* `"en-US"` | No |
| options | { **"sort"**: { **"primary"**: string, <br>**Available values:** "distance", "placeName", "city", **"direction"**: string, <br>**Available values:** "asc", "desc" }, **"range"**: { **"count"**: integer, **"start"**: integer }, **"findFilters"**: [ { **"filterName"**: string, **"filterVaule"**: string } ], **"operationName"**: string, <br>**Available values:** "and", "or", **"useFirstAmbiguous"**: boolean } |  | Yes |
| distance | number | distance is limited to 60 mi or 100 km<br>*Example:* `20` | Yes |
| location | { **"address"**: object, **"geocodes"**: { **"latitude"**: string, **"longitude"**: string }, **"placeName"**: string } |  | Yes |
| distanceUnit | string, <br>**Available values:** "mi", "km" | *Enum:* `"mi"`, `"km"`<br>*Example:* `"mi"` | Yes |
| metaDataOptions | number | *Example:* `0` | No |

#### longitude Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| longitude | number |  |  |

**Example**
<pre>-86.21856</pre>

#### wsStatus Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| statusCode | string | *Example:* `"API000"` | No |
| statusDesc | string | *Example:* `"Visa ATM Locator Svc-Success"` | No |

#### wsResponseHeader Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| wsResponseHeader | object |  |  |

#### northWest Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| latitude | number | *Example:* `41.63241` | No |
| longitude | number | *Example:* `-86.21856` | No |

#### southWest Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| latitude | number | *Example:* `41.63241` | No |
| longitude | number | *Example:* `-86.21856` | No |

#### bestMapView Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| northEast | { **"latitude"**: number, **"longitude"**: number } |  | No |
| northWest | { **"latitude"**: number, **"longitude"**: number } |  | No |
| southEast | { **"latitude"**: number, **"longitude"**: number } |  | No |
| southWest | { **"latitude"**: number, **"longitude"**: number } |  | No |
| distanceAcross | number | *Example:* `3.7338603` | No |

#### location Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| address | object |  | No |
| geocodes | { **"latitude"**: string, **"longitude"**: string } |  | Yes |
| placeName | string | *Example:* `"Austin"` | No |

#### wsRequestHeaderV2 Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| userId | string | *Example:* `"CDISIUserID"` | No |
| userBid | string | *Example:* `"10000108"` | No |
| requestTs | string | *Example:* `"2021-04-14T20:28:16.000Z"` | No |
| applicationId | string | *Example:* `"VATMLOC"` | No |
| correlationId | string | *Example:* `"909420141104053819420"` | No |
| requestMessageId | string | *Example:* `"rohuang-001"` | No |

#### properties Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| properties | [ { **"name"**: string, **"value"**: string } ] |  |  |

#### requestData-1 Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| city | string | *Example:* `"austin"` | No |
| state | string | *Example:* `"tx"` | No |
| country | string | *Example:* `"USA"` | Yes |
| postalCode | string | *Example:* `"78759"` | No |
| mainAddress | string | *Example:* `"12301 research blvd"` | No |

#### northEast Schema

| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| latitude | number | *Example:* `41.63241` | No |
| longitude | number | *Example:* `-86.21856` | No |
