ATM Nearby™ gives your users clear, reliable information about ATMs in their area – including operator fees, accessibility options, deposit capability, and more. This guide explains how to integrate the API, configure the right parameters, and work with the responses in your banking app.
ATM Nearby provides:
Unlike Tapix’s data enrichment APIs, ATM Nearby is a standalone service: it does not enrich transactions but instead delivers complete ATM details within the specified area.
Please be aware that ATM Nearby is not automatically accessible and requires activation by the Tapix team. If you wish to obtain the ATMs, please contact support@tapix.io
The GET /atms/complete/findNearby endpoint returns a list of ATM machines located near a specified point. Results can be filtered using input parameters, and the response is always sorted in ascending order by distance from the provided coordinates.
This example shows a query with multiple filters applied (contactless=true and depositAtm=true) and a limit of one result. The response illustrates the full structure that ATM Nearby can provide.
Query:
/v6/atms/complete/findNearby?lat=49.96452&long=14.07359&radius=1000&contactless=true&depositAtm=true&countLimit=1Response:
{
"results": [
{
"atm": {
"uid": "m7Sv5PMLutrlE2sKApKguW",
"contactless": true,
"depositAtm": true,
"openNonStop": false,
"openingHours": "Mo 09:00-17:30; Tu 09:00-16:00; We-Th 09:00-17:00; Fr 09:00-16:00",
"openStatus": {
"minutesToClose": 337,
"open": true
},
"merchant": {
"uid": "D4P1y9AGPelsEd8djj2Qvz",
"name": "ATM Raiffeisenbank",
"logo": "https://s3.eu-central-1.amazonaws.com/files.node-prod.dateio.cz/m/D4P1y9AGPelsEd8djj2Qvz/l"
},
"location": {
"address": {
"street": "Husovo náměstí 45",
"city": "Beroun",
"zip": "266 01",
"country": "CZ"
},
"coordinates": {
"lat": 49.96452,
"long": 14.07359
}
},
"fee": {
"currency": "CZK",
"amount": 50.0
}
},
"distance": 1
}
],
"count": 1,
"countLimit": 1,
"totalCount": 10
}Each item in the results array represents a single ATM. The atm section contains details about the ATM itself, including its capabilities (e.g., whether it supports contactless withdrawals or deposits), operating hours, and current availability status. The availability is described by openNonStop and openStatus: in this case, the ATM is open, and minutesToClose indicates how long it will remain available.
The merchant section identifies the institution operating the ATM, with a unique identifier, the provider’s name, and a logo URL that can be used in your application.
The location section provides both a structured postal address (street, city, ZIP, country) and precise GPS coordinates, allowing easy integration with maps or navigation features.
The fee field specifies the operator surcharge at the ATM. This can be returned either as a fixed amount or as a percentage of the withdrawal. In this example, the operator fee is a fixed amount of 50 CZK.
Outside the ATM details, each result also includes a distance field, which gives the distance in meters from the input coordinates provided in the query.
Finally, the response includes three counters describing the overall result set:
count shows the number of ATMs actually returned in this response (in this case, 1).countLimit indicates the maximum number of results requested in the query (default 50, maximum 200).totalCount represents the total number of ATMs matching the query within the given radius, before applying the result limit (in this case, 10).Taken together, this structure gives a full overview of nearby ATMs – including their features, operator details, location, fees, and availability – as well as context on how each response fits into the overall result set.
The following sections describe specific cases that may occur depending on the information available.
To learn what input data is required, and its ideal structure to get the ATM data – refer to this link.
These input parameters are required and must be present in every request. Without them, no results can be returned:
lat (latitude)long (longitude)radius (search radius in meters)Note that an API call missing these parameters returns an error or empty result.
This example shows a query and response where the required parameter radius has not been specified.
Query:
/v6/atms/complete/findNearby?lat=48.39885182&long=9.98479195Response:
{
"timestamp": 1755517388158,
"status": 400,
"reason": "Bad Request",
"message": "Required int parameter 'radius' is not present"
}As you can see, since the radius parameter is missing in the query, no ATMs are returned. Instead, the API returns an error response describing the issue and how to resolve it.
In addition to the required parameters, the response can be adjusted by using input parameters. By default, each API call returns up to 50 ATMs, but this limit can be increased to a maximum of 200 by setting the countLimit parameter. You can also refine the results further with a set of boolean filters that control which ATMs are included.
voiceAssistantwheelchairAccesscontactlessdepositAtmopenNonStopopenNowisFreeBoolean parameters work in three ways. If the value is true, the condition applies. If it is false, the condition does not apply. If the parameter is missing, the status is unknown – meaning we have no reliable information about this attribute. In such cases, the ATM will still appear in the results regardless of whether the filter is set to true or false, and it is the responsibility on your side to determine how this should be presented to the end user.
The allianceOnly parameter filters results to show only ATMs that belong to an alliance network, e.g. for reasons of free withdrawals and deposits within this network. Setting allianceOnly=true ensures that only fee-free ATMs for the end user are returned.
To enable this feature, the bank must provide a list of partner banks with which it has an alliance, separately for withdrawals and deposits, before moving to production. If no list is provided, the system assumes the alliance consists only of the bank itself.
Note that when using the depositAtm filter together with the allianceOnly parameter, the depositAtm value will always be false outside the alliance. Within the alliance, the depositAtm value can be true, false, or not returning any value, depending on whether we know the ATM supports deposits, does not support deposits, or if the information is unavailable.
In short, allianceOnly makes it possible to highlight ATMs where your customers can use their cards without incurring additional operator fees, based on the exact agreements your bank has in place. These agreements may differ for withdrawals and deposits.
In the best-case scenario, our database contains complete information about the ATMs in the area, allowing us to provide you with the fullest possible set of data.
This example shows the result for a single ATM with complete and reliable information about its attributes. The ATM supports contactless withdrawals and operates nonstop, but it does not offer voice assistance or wheelchair access.
Query:
/v6/atms/complete/findNearby?lat=56.962573&long=24.022069&radius=1000&countLimit=1Response:
{
"results": [
{
"atm": {
"uid": "N8w0qjOoBweJt9X47y3bW7",
"voiceAssistant": false,
"wheelchairAccess": false,
"contactless": true,
"openNonStop": true,
"openingHours": "24/7",
"openStatus": {
"open": true
},
"merchant": {
"uid": "4c6e400283234e108609e0",
"name": "ATM Swedbank",
"logo": "https://s3.eu-central-1.amazonaws.com/files.node-prod.dateio.cz/m/4c6e400283234e108609e0/l"
},
"location": {
"address": {
"street": "Kleistu iela 9",
"city": "Rīga",
"country": "LV"
},
"coordinates": {
"lat": 56.962573,
"long": 24.022069
}
}
},
"distance": 1
}
],
"count": 1,
"countLimit": 1,
"totalCount": 10
}By default, the results are sorted by distance from the coordinates you provide, so the closest ATMs appear first.
Note that when two ATMs are located in the same place and share identical parameters, they are treated as a single record in the response. However, if the ATMs differ in any way – for example, if one supports voice assistance and the other does not – or if they are positioned slightly apart, even within the same building, they will be returned as separate records.
Furthermore, it is quite common that certain details about some ATMs cannot be determined. In such cases, the information is not included in our data, and the corresponding parameter is simply left out of the response.
Note that if a parameter is missing from the response, it means the value is unknown. For example, if voiceAssistant is not returned, it indicates that we have no reliable information whether the ATM supports this feature.
In this example, only limited information is available about the ATM’s attributes. There is no reliable data regarding its opening hours, deposit capability, contactless withdrawals, voice assistance, or wheelchair access. For this reason, none of these parameters can be explicitly marked as true or false in the response.
Query:
/v6/atms/complete/findNearby?lat=50.071392&long=12.368093&radius=1000Response:
{
"atm": {
"uid": "LNtElKDV0shSdoQ48WvRTJ",
"merchant": {
"uid": "jMlNmLAdmzWIzbdX9zjW8p",
"name": "ATM Air Bank",
"logo": "https://s3.eu-central-1.amazonaws.com/files.node-prod.dateio.cz/m/jMlNmLAdmzWIzbdX9zjW8p/l"
},
"location": {
"address": {
"street": "Dragounská 6/2529",
"city": "Cheb",
"country": "CZ"
},
"coordinates": {
"lat": 50.071392,
"long": 12.368093
}
},
"fee": {
"currency": "CZK",
"amount": 50.0
}
},
"distance": 1
}The openingHours parameter can either indicate 24/7 availability or provide the exact opening times if the ATM is not always open. For example: Mo-Fr 09:00-17:00. If the parameter is not included in the response, it means that no information about the ATM’s opening hours is available.
Note that the opening hours in the response are provided in a standardised OSM format.
Some response fields are derived from the openingHours parameter:
openNonStop
true → the ATM is open 24/7false → the ATM has known opening hours, but not 24/7not included → no information about opening hours is availableThis example shows an ATM that is open nonstop. In this case, the openingHours parameter is set to 24/7, and the openNonStop value is true.
Query:
/v6/atms/complete/findNearby?lat=50.229251&long=12.87032&radius=1000Response:
{
"atm": {
"uid": "jr4vRVIWGbNauQ79TcRGMK",
"wheelchairAccess": true,
"openNonStop": true,
"openingHours": "24/7",
"openStatus": {
"open": true
},
"merchant": {
"uid": "PEVpejKXlAKFqPMM7nQPD3",
"name": "ATM MONETA Money Bank",
"logo": "https://s3.eu-central-1.amazonaws.com/files.node-prod.dateio.cz/m/PEVpejKXlAKFqPMM7nQPD3/l"
},
"location": {
"address": {
"street": "Dr.Davida Bechera 619/7",
"city": "Karlovy Vary",
"zip": "36001",
"country": "CZ"
},
"coordinates": {
"lat": 50.229251,
"long": 12.87032
}
},
"fee": {
"currency": "EUR",
"amount": 2.0
}
},
"distance": 1
}openStatus
openNonStop=true or if no opening hours are known).open=true → includes minutesToClose, showing how long the ATM will remain openopen=false → includes minutesToOpen, showing when the ATM will become available againThis example shows a case where the ATM is currently closed (the request was made on Monday at 12:53). The openingHours field specifies the ATM’s schedule, while openNonStop is set to false since it is not available 24/7. In the openStatus object, open is false, and the field minutesToOpen indicates that the ATM will become available in 7 minutes.
Query:
/v6/atms/complete/findNearby?radius=1000&lat=50.723927&long=15.169474&countLimit=50Response:
{
"atm": {
"uid": "p6DWVWzc2WejZ9mDh6KVbT",
"contactless": true,
"depositAtm": true,
"openNonStop": false,
"openingHours": "Mo-Tu 08:30-12:00,13:00-16:30; We 08:30-12:00,13:00-17:00; Th 08:30-12:00,13:00-16:30; Fr 08:30-12:00",
"openStatus": {
"minutesToOpen": 7,
"open": false
},
"merchant": {
"uid": "D4P1y9AGPelsEd8djj2Qvz",
"name": "ATM Raiffeisenbank",
"logo": "https://s3.eu-central-1.amazonaws.com/files.node-prod.dateio.cz/m/D4P1y9AGPelsEd8djj2Qvz/l"
},
"location": {
"address": {
"street": "Komenského 8",
"city": "Jablonec nad Nisou",
"zip": "466 01",
"country": "CZ"
},
"coordinates": {
"lat": 50.723927,
"long": 15.169474
}
}
},
"distance": 1
}This example shows a case when the ATM is currently open (request made on Monday 13:05). The openingHours field specifies the ATM’s schedule, while openNonStop is set to false since it is not available 24/7. In the openStatus object, open is true, and the field minutesToClose indicates that the ATM will be closing in 40 minutes.
Query:
/v6/atms/complete/findNearby?radius=1000&lat=48.39885182&long=9.98479195&countLimit=50Response:
{
"atm": {
"uid": "ocnCWikjTfr2NegKXgQqiS",
"openNonStop": false,
"openingHours": "Mo-Fr 09:30-13:45,14:30-17:30",
"openStatus": {
"minutesToClose": 40,
"open": true
},
"merchant": {
"uid": "JNdlVZoMYeBiaYbmKzRboZ",
"name": "ATM Reisebank",
"logo": "https://s3.eu-central-1.amazonaws.com/files.node-prod.dateio.cz/m/JNdlVZoMYeBiaYbmKzRboZ/l"
},
"location": {
"address": {
"street": "Bahnhofstraße 17",
"city": "Ulm",
"zip": "89073",
"country": "DE"
},
"coordinates": {
"lat": 48.39885182,
"long": 9.98479195
}
},
"fee": {
"percentage": 0.05
}
},
"distance": 1
}partnerData – This is an optional object that appears only if your bank has provided Tapix with additional data about a specific ATM. The structure and content of this object are fully defined by the partner, allowing you to return custom fields alongside the standard ATM data. If no supplementary information has been shared for a given ATM, this field will not be included in the response.
count, countLimit, totalCount – These fields describe how many ATMs are included in the response.
count shows the number of ATMs actually returned.countLimit indicates the maximum number of results requested (default is 50, with a maximum of 200).totalCount represents the total number of ATMs found within the search radius, before applying the limit.