Welcome to NAB API

NAB’s industry leading API capability is driving innovation and empowering developers, partners and customers.

An important part of our journey is collaborating with you, so welcome aboard! We can’t wait to see what you create.

Getting Started

The NAB API is organized around REST. Our API has predictable, resource-oriented URLs, and uses HTTP response in combination with API Status codes to indicate API errors. We use built-in HTTP features, like HTTP verbs, which are understood by off-the-shelf HTTP clients. JSON is returned in all API responses including errors.

API Key

NAB API requires your API key to be included in all requests in the HTTP as follows:

x-nab-key: API-KEY

API requests without a valid API Key will display an NAB API error 440.

Your API key is specific to you and your application. Take reasonable care in the use of your API Key and access details. For example, you must not disclose your API Key to any other person.

Running in Postman

Copy the link address below and import the Postman Collection into Postman Chrome extension or the Postman application:

Link to Postman Collection

or

Run in Postman

Please add your api key in the header tab of postman before invoking the api’s.

API HTTP Headers

The following HTTP headers must be included with all API requests:

HTTP HeaderDescriptionExample
Content-type The MIME type of the body of the request Content-Type: application/json
User-Agent The user agent string of the user agent User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0
x-nab-key Your NAB API Key  

API Data Types

Data TypeDescriptionValid Examples
APIDateTimeUTCStringCombined Date and Time string as per RFC-3339. Time at UTC“2007-05-01T15:43:00.12345Z”
“2012-03-03T15:43:00Z”
“1997-01-12T15:43:00.121Z”
APICurrencyStringStandard 3 character currency codes as per ISO-4217“AUD”
“USD”
“CAD”
APIRateStringA string representing rates
  • A positive number
  • At least 1 and up to a total of 16 significant digits before decimal point
  • Up to 16 digits following the decimal point
  • No formatting, eg thousand separating commas
“0.5
“1.123456
"11.1234567890123456”

API Status Codes

The API uses the following status codes, which is returned within the status block of every response:

Status CodeStatus MessageHTTP Code
API-200Success200
API-404Service Not Found404
API-420Invalid Request400
API-422Version Not Found404
API-430Provider Error400
API-440Invalid Application403
API-448Gateway Authentication Failure401
API-520Server Failure500
API-521Throttle Limit Exceeded429
API-522Server Down For Maintenance503
API-523Server Timeout504
API-526Feature not supported501

Locations

Location APIs for NAB Addresses.

The APIs utilise map data provided by Google (“Google Content”). By using the APIs, you agree to be bound by Google’s Terms of Service. You agree to Google collecting information about your use of the APIs in accordance with Google’s then-current Privacy Policy (at http://www.google.com/policies/privacy or such other URL as Google may provide).

Locations By Type

  • Get list of all locations for a type

Locations By Address

  • Request a list of NAB locations of locationType nearest to a specified address
  • Default radius is 20km or override via options
  • Request multiple locationTypes with “,” (comma)
Location typeCode
ATMatm
Branchbrc
Kioskksk
Agencyagn
Business Banking Centrebbc
Agri Banking Centreabc
Health Banking Centrehbc

Locations By Geo Coordinates

  • Obtain a list of locations found in a viewport (i.e. bounding box) specified by:
    • swLat - South-West latitude of the viewport
    • swLng - South-West longitude of the viewport
    • neLat - North-East latitude of the viewport
    • neLng - North-East longitude of the viewport

Location By Key

  • Obtain the detailed information for a single location or resource
  • Get Locations By Address and Get Locations By Viewport return a key which is used by this request for a specific location

Reference

Get Locations

Request

curl \\
    -X GET \\
    https://sandbox.api.nab/v2/locations?locationType={locationType}&v=1
import org.apache.http.client.methods.*;
import org.apache.http.impl.client.*;
import org.apache.http.util.*;

public class GetLocations {

    private static final String API_KEY = "YOUR-API-KEY";
    private static final String HOST = "https://sandbox.api.nab";
    private static final String URI = "/v2/locations?locationType=%s&v=1";

    public static void main(String[] args) {

        String locationType = "atm";

        try {

            String url = HOST + String.format(URI, locationType);

            CloseableHttpClient httpclient = HttpClients.createDefault();

            HttpGet request = new HttpGet(url);
            request.addHeader("content-type", "application/json");
            request.addHeader("x-nab-key", API_KEY);

            CloseableHttpResponse response = httpclient.execute(request);

            String json = EntityUtils.toString(response.getEntity());

            System.out.println(json);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Response

{
  "locationSearchResponse": {
    "totalRecords": 2969,
    "locations": [
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A08",
          "description": "Riverside Shopping Centre",
          "latitude": -35.353024,
          "longitude": 149.2348171
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A09",
          "description": "Pavilion Plaza",
          "latitude": -33.874797,
          "longitude": 151.2067714
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A10",
          "description": "Wynyard Railway Station",
          "latitude": -33.865363,
          "longitude": 151.2052183
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A11",
          "description": "Gymea",
          "latitude": -34.0357937,
          "longitude": 151.0848374
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A12",
          "description": "Kincumber Shopping Centre",
          "latitude": -33.4729866,
          "longitude": 151.4372584
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A13",
          "description": "Stockland Green Hills",
          "latitude": -32.7718344,
          "longitude": 151.6142316
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A16",
          "description": "Castle Towers Shopping Centre",
          "latitude": -33.7316657,
          "longitude": 151.0050453
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A17",
          "description": "Castle Towers Shopping Centre",
          "latitude": -33.7316657,
          "longitude": 151.0050453
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A19",
          "description": "Orange",
          "latitude": -33.2828708,
          "longitude": 149.1013143
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A22",
          "description": "Wentworth Chambers",
          "latitude": -33.8689223,
          "longitude": 151.2111125
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A25",
          "description": "Marrickville Metro",
          "latitude": -33.9059468,
          "longitude": 151.1719737
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A27",
          "description": "Westfield Parramatta",
          "latitude": -33.8174516,
          "longitude": 151.000849
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A29",
          "description": "Erina Fair Shopping Centre",
          "latitude": -33.4371031,
          "longitude": 151.3922079
        }
      }
    ]
  },
  "status": {
    "code": "API-200",
    "message": "Success"
  }
}
{
  "locationSearchResponse": {
    "totalRecords": 2969,
    "locations": [
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A08",
          "description": "Riverside Shopping Centre",
          "latitude": -35.353024,
          "longitude": 149.2348171
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A09",
          "description": "Pavilion Plaza",
          "latitude": -33.874797,
          "longitude": 151.2067714
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A10",
          "description": "Wynyard Railway Station",
          "latitude": -33.865363,
          "longitude": 151.2052183
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A11",
          "description": "Gymea",
          "latitude": -34.0357937,
          "longitude": 151.0848374
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A12",
          "description": "Kincumber Shopping Centre",
          "latitude": -33.4729866,
          "longitude": 151.4372584
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A13",
          "description": "Stockland Green Hills",
          "latitude": -32.7718344,
          "longitude": 151.6142316
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A16",
          "description": "Castle Towers Shopping Centre",
          "latitude": -33.7316657,
          "longitude": 151.0050453
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A17",
          "description": "Castle Towers Shopping Centre",
          "latitude": -33.7316657,
          "longitude": 151.0050453
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A19",
          "description": "Orange",
          "latitude": -33.2828708,
          "longitude": 149.1013143
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A22",
          "description": "Wentworth Chambers",
          "latitude": -33.8689223,
          "longitude": 151.2111125
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A25",
          "description": "Marrickville Metro",
          "latitude": -33.9059468,
          "longitude": 151.1719737
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A27",
          "description": "Westfield Parramatta",
          "latitude": -33.8174516,
          "longitude": 151.000849
        }
      },
      {
        "apiStructType": "atm",
        "atm": {
          "key": "atm_2A29",
          "description": "Erina Fair Shopping Centre",
          "latitude": -33.4371031,
          "longitude": 151.3922079
        }
      }
    ]
  },
  "status": {
    "code": "API-200",
    "message": "Success"
  }
}

GET https://sandbox.api.nab/v2/locations?locationType={locationType}&v=1

Query Parameters

NameDescriptionMandatoryValue
v Version Yes 1
locationType The type of location to be returned. Yes [“atm”, “brc”, “ksk”, “agn”, “bbc”, “abc”, “hbc”]
startIndex Specify the row number of the first record from the full result list to return. Defaults to 1 No
endIndex Specify the row number of the last record from the full result list to return. Defaults to {startIndex + 20} No

Response

Schema

AttributeTypeMandatoryDescription
status APIStatus No Response status
locationSearchResponse object(Location Search Response) No Location search response object

Location Search Response

AttributeTypeMandatoryDescription
totalRecords integer Yes Total number of records in the response
locations array[object(Location)] Yes An array of location objects

Location

AttributeTypeMandatoryDescription
apiStructType string Yes This field represents what object will be returned in the payload.
atm object(Atm) No ATM object
brc object(Brc) No Branch object
general object(General) No General object

Atm

AttributeTypeMandatoryDescription
key string Yes Location key
description string Yes Description of the ATM
latitude number No Latitude (in decimal)
longitude number No Longitude (in decimal)

Brc

AttributeTypeMandatoryDescription
key string Yes Location key
siteName string Yes Site name for the branch
description string No Description of the branch
latitude number No Latitude (in decimal)
longitude number No Longitude (in decimal)

General

AttributeTypeMandatoryDescription
key string Yes Location key
type string Yes Type of general banking site. E.g. ksk, bbc, agn, abc, hbc
description string No Description of the generic banking site
latitude number No Latitude (in decimal)
longitude number No Longitude (in decimal)

Get Locations by Address

Request

curl \\
    -X GET \\
    https://sandbox.api.nab/v2/locations?locationType={locationType}&searchCriteria={searchCriteria}&address={address}&v=1
import org.apache.http.client.methods.*;
import org.apache.http.impl.client.*;
import org.apache.http.util.*;
import java.net.URLEncoder;

public class GetLocationsByAddress {

    private static final String API_KEY = "YOUR-API-KEY";
    private static final String HOST = "https://sandbox.api.nab";
    private static final String URI = "/v2/locations?locationType=%s&searchCriteria=addr&address=%s&v=1";

    public static void main(String[] args) {

        String locationType = "atm";
        String address = "700 Bourke Street, Melbourne";

        try {

            String url = HOST + String.format(URI, locationType, URLEncoder.encode(address, "UTF-8"));

            CloseableHttpClient httpclient = HttpClients.createDefault();

            HttpGet request = new HttpGet(url);
            request.addHeader("content-type", "application/json");
            request.addHeader("x-nab-key", API_KEY);

            CloseableHttpResponse response = httpclient.execute(request);

            String json = EntityUtils.toString(response.getEntity());

            System.out.println(json);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Response

{
  "locationSearchResponse": {
    "totalRecords": 6,
    "address": {
      "formattedAddress": "Tasmania 7030, Australia",
      "latitude": -42.1876915,
      "longitude": 147.0214014
    },
    "viewport": {
      "swLat": -44.8826008,
      "swLng": 144.3264921,
      "neLat": -39.4927822,
      "neLng": 149.7163107
    },
    "locations": [
      {
        "apiStructType": "atm",
        "atm": {
          "location": "Offsite",
          "isDeposit": false,
          "isDisabilityApproved": true,
          "isAudio": false,
          "source": "NAB",
          "address3": "Eastlands Shopping Centre",
          "id": 16271,
          "key": "nab_3B93",
          "description": "Eastlands Shopping Centre",
          "address1": "1 Bligh Street",
          "suburb": "Rosny Park",
          "state": "TAS",
          "postcode": "7018",
          "latitude": -42.8680382,
          "longitude": 147.3692568,
          "hours": "Mon-Thu 09.00am-05.30pm, Fri 09.00am-08.00pm, Sat 09.00am-05.00pm, Sun 10.00am-04.00pm",
          "distanceToLocation": 80844
        }
      }
    ]
  },
  "status": {
    "code": "API-200",
    "message": "Success"
  }
}
{
  "locationSearchResponse": {
    "totalRecords": 6,
    "address": {
      "formattedAddress": "Tasmania 7030, Australia",
      "latitude": -42.1876915,
      "longitude": 147.0214014
    },
    "viewport": {
      "swLat": -44.8826008,
      "swLng": 144.3264921,
      "neLat": -39.4927822,
      "neLng": 149.7163107
    },
    "locations": [
      {
        "apiStructType": "atm",
        "atm": {
          "location": "Offsite",
          "isDeposit": false,
          "isDisabilityApproved": true,
          "isAudio": false,
          "source": "NAB",
          "address3": "Eastlands Shopping Centre",
          "id": 16271,
          "key": "nab_3B93",
          "description": "Eastlands Shopping Centre",
          "address1": "1 Bligh Street",
          "suburb": "Rosny Park",
          "state": "TAS",
          "postcode": "7018",
          "latitude": -42.8680382,
          "longitude": 147.3692568,
          "hours": "Mon-Thu 09.00am-05.30pm, Fri 09.00am-08.00pm, Sat 09.00am-05.00pm, Sun 10.00am-04.00pm",
          "distanceToLocation": 80844
        }
      }
    ]
  },
  "status": {
    "code": "API-200",
    "message": "Success"
  }
}

GET https://sandbox.api.nab/v2/locations?locationType={locationType}&searchCriteria={searchCriteria}&address={address}&v=1

Query Parameters

NameDescriptionMandatoryValue
v Version Yes 1
locationType The type of location to be returned. Multiple values can be passed separated by ’,’ (comma). Yes [“atm”, “brc”, “ksk”, “agn”, “bbc”, “abc”, “hbc”]
searchCriteria Search for locations in proximity to a given address Yes [“addr”]
address A URL Encoded address Yes
radius Expects a numeric value in kms from the address. Defaults to 20 No
radiusB Expects a numeric value in kms from the address. Defaults to 50 No
radiusC Expects a numeric value in kms from the address. Defaults to 100 No
startIndex Specify the row number of the first record from the full result list to return. Defaults to 1 No
endIndex Specify the row number of the last record from the full result list to return. Defaults to {startIndex + 20} No

Response

Schema

AttributeTypeMandatoryDescription
status APIStatus Yes Response status
locationSearchResponse object(Location Search Response) No Location search response object

Location Search Response

AttributeTypeMandatoryDescription
totalRecords integer Yes Number of records in the response
viewport object(Viewport) Yes Viewport boundary coordinates object
address object(Address) Yes Address object
locations array[object(Location)] Yes An array of Location objects

Viewport

AttributeTypeMandatoryDescription
swLat number Yes South-West latitude coordinates expressed as decimal
swLng number Yes South-West longitude coordinates expressed as decimal
neLat number Yes North-East latitude coordinates expressed as decimal
neLng number Yes North-East longitude coordinates expressed as decimal

Address

AttributeTypeMandatoryDescription
formattedAddress string Yes Formatted address
latitude number Yes Latitude (in decimal)
longitude number Yes Longitude (in decimal)

Location

AttributeTypeMandatoryDescription
apiStructType string Yes This field represents what object will be returned in the payload. I.e. apiStructType of atm will return an atm object.
atm object(Atm) No ATM object
brc object(Brc) No Branch object
general object(General) No General object
banker object(Banker) No Banker object

Atm

AttributeTypeMandatoryDescription
id integer Yes
key string Yes Location key
description string No Description of the ATM
address1 string Yes Address Line 1
address2 string No Address Line 2
address3 string No Address Line 3
address4 string No Address Line 4
address5 string No Address Line 5
suburb string Yes Suburb
state string Yes State
postcode string Yes Postcode
latitude number Yes Latitude (in decimal)
longitude number Yes Longitude (in decimal)
lobbyOrTtw string No Lobby (L) or Through the Wall (T)
siteType string No Site type
location string No Location
isDeposit boolean Yes Depository
isDisabilityApproved boolean Yes Disability approved ATM
isAudio boolean Yes Has audio capability
hours string No Hours of operation
source string No ATM Source (BOQ, CUS, NAB)
distanceToLocation number Yes Distance in kms

Brc

AttributeTypeMandatoryDescription
id integer Yes
key string Yes Location key
bsb string Yes Bank State Branch (BSB) number
siteName string Yes Site name
description string No Description of this site
address1 string Yes Address Line 1
address2 string No Address Line 2
suburb string Yes Suburb
state string Yes State
postcode string Yes Postcode
isRural boolean Yes Is rural location
latitude number Yes Latitude (in decimal)
longitude number Yes Longitude (in decimal)
hours string No Opening hours
openWeekends boolean No Open on weekends
announcement string No Branch admins can post announcements
hasCoinSwap boolean No Has coin swap facility
coinSwapHours string No Coin swap usage hours
hasQuickChange boolean No Has quick change facility
quickChangeHours string No Includes opening hours
bbc boolean No Business Banking Centre
expressBusinessDeposit boolean No Express Business deposit facility
hasIntelligentDeposit string No Has Intelligent Deposit facility
intelligentDepositHours string No Includes opening hours
foreignCurrency boolean No Foreign currency availability
internetBank boolean No Has Internet Banking facilities
financialPlanner boolean No Availability of Financial Planners
financialPlannerLanguage string No Languages understood by Financial Planner
mobileBanker boolean No Has Mobile Banker
mobileBankerLanguage string No Languages understood by Mobile Banker
smallBusinessBankers array[object(Small Business Banker)] No Array of small business banker objects
distanceToLocation number Yes Distance to location in kms

Small Business Banker

AttributeTypeMandatoryDescription
name string No Name
key string No Location key

General

AttributeTypeMandatoryDescription
id integer Yes
key string Yes Location key
bsb string No Bank State Branch (BSB) number
type string Yes Type of general banking facility. E.g. ksk, bbc, agn, abc, hbc
description string No Description of this banking facility
address1 string Yes Address Line 1
address2 string No Address Line 2
suburb string Yes Suburb
state string Yes State
postcode string Yes Postcode
phone string No Telephone number
latitude number Yes Latitude (in decimal)
longitude number Yes Longitude (in decimal)
hours string No Hours of operation
industry string No Industry
website string No Website
distanceToLocation number Yes Distance in kms

Banker

AttributeTypeMandatoryDescription
id integer Yes
key string Yes Location key
type string Yes Type of Banker. E.g. abb, heb,smb, mob
name string Yes Name
address1 string No Address Line 1
address2 string No Address Line 2
suburb string No Suburb
state string No State
postcode string No Postcode
email string Yes Email address
fax string No Fax number
phone string No Telephone number
mobile string No Mobile number
language string No Language understood by Banker
bsb string No Bank State Branch (BSB) number
buid string No Banker UID
coverageRadius integer No In Kms
homeBranches array[object(Home Branch)] No Array of branches for the Banker
supportBranches array[object(Support Branch)] No Array of support branches for the Banker
qualifications string No Banker’s qualifications
servicingArea string No Area serviced by Banker
distanceToLocation number No Distance in kms

Home Branch

AttributeTypeMandatoryDescription
name string No Name
key string No Location key

Support Branch

AttributeTypeMandatoryDescription
name number No Name
key string No Location key

Get Locations by Geo Coordinates

Request

curl \\
    -X GET \\
    https://sandbox.api.nab/v2/locations?locationType={locationType}&searchCriteria={searchCriteria}&swLat={swLat}&swLng={swLng}&neLat={neLat}&neLng={neLng}&v=1
import org.apache.http.client.methods.*;
import org.apache.http.impl.client.*;
import org.apache.http.util.*;

public class GetLocationsByGeoCoordinates {

    private static final String API_KEY = "YOUR-API-KEY";
    private static final String HOST = "https://sandbox.api.nab";
    private static final String URI = "/v2/locations?locationType=%s&searchCriteria=geo&swLat=%s&swLng=%s&neLat=%s&neLng=%s&v=1";

    public static void main(String[] args) {

        String locationType = "atm";
        double swLat = -45.267072 ;
        double swLng = -1.395009 ;
        double neLat = 98.2673234;
        double neLng = 169.282948;

        try {

            String url = HOST + String.format(URI, locationType, swLat, swLng, neLat, neLng);

            CloseableHttpClient httpclient = HttpClients.createDefault();

            HttpGet request = new HttpGet(url);
            request.addHeader("content-type", "application/json");
            request.addHeader("x-nab-key", API_KEY);

            CloseableHttpResponse response = httpclient.execute(request);

            String json = EntityUtils.toString(response.getEntity());

            System.out.println(json);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Response

{
  "status": {
    "code": "API-200",
    "message": "Success"
  },
  "locationSearchResponse": {
    "totalRecords": 10,
    "locations": [
      {
        "apiStructType": "general",
        "general": {
          "key": "nab_LOC000967",
          "latitude": -34.9223588,
          "longitude": 138.5997032,
          "type": "nab"
        }
      },
      {
        "apiStructType": "general",
        "general": {
          "key": "nab_LOC000968",
          "latitude": -35.0226123,
          "longitude": 117.8836061,
          "type": "nab"
        }
      },
      {
        "apiStructType": "general",
        "general": {
          "key": "nab_LOC000969",
          "latitude": -36.0782014,
          "longitude": 146.9158376,
          "type": "nab"
        }
      },
      {
        "apiStructType": "general",
        "general": {
          "key": "nab_LOC000970",
          "latitude": -37.1918502,
          "longitude": 145.7103215,
          "type": "nab"
        }
      },
      {
        "apiStructType": "general",
        "general": {
          "key": "nab_LOC000971",
          "latitude": -37.2843362,
          "longitude": 142.9291397,
          "type": "nab"
        }
      },
      {
        "apiStructType": "general",
        "general": {
          "key": "nab_LOC000972",
          "latitude": -30.5112744,
          "longitude": 151.666064,
          "type": "nab"
        }
      },
      {
        "apiStructType": "general",
        "general": {
          "key": "nab_LOC000973",
          "latitude": -17.2654831,
          "longitude": 145.4765679,
          "type": "nab"
        }
      }
    ]
  }
}
{
  "status": {
    "code": "API-200",
    "message": "Success"
  },
  "locationSearchResponse": {
    "totalRecords": 10,
    "locations": [
      {
        "apiStructType": "general",
        "general": {
          "key": "nab_LOC000967",
          "latitude": -34.9223588,
          "longitude": 138.5997032,
          "type": "nab"
        }
      },
      {
        "apiStructType": "general",
        "general": {
          "key": "nab_LOC000968",
          "latitude": -35.0226123,
          "longitude": 117.8836061,
          "type": "nab"
        }
      },
      {
        "apiStructType": "general",
        "general": {
          "key": "nab_LOC000969",
          "latitude": -36.0782014,
          "longitude": 146.9158376,
          "type": "nab"
        }
      },
      {
        "apiStructType": "general",
        "general": {
          "key": "nab_LOC000970",
          "latitude": -37.1918502,
          "longitude": 145.7103215,
          "type": "nab"
        }
      },
      {
        "apiStructType": "general",
        "general": {
          "key": "nab_LOC000971",
          "latitude": -37.2843362,
          "longitude": 142.9291397,
          "type": "nab"
        }
      },
      {
        "apiStructType": "general",
        "general": {
          "key": "nab_LOC000972",
          "latitude": -30.5112744,
          "longitude": 151.666064,
          "type": "nab"
        }
      },
      {
        "apiStructType": "general",
        "general": {
          "key": "nab_LOC000973",
          "latitude": -17.2654831,
          "longitude": 145.4765679,
          "type": "nab"
        }
      }
    ]
  }
}

GET https://sandbox.api.nab/v2/locations?locationType={locationType}&searchCriteria={searchCriteria}&swLat={swLat}&swLng={swLng}&neLat={neLat}&neLng={neLng}&v=1

Query Parameters

NameDescriptionMandatoryValue
v Version Yes 1
locationType The type of location to be returned. Multiple values can be passed separated by ’,’ (comma) Yes [“atm”, “brc”, “ksk”, “agn”, “bbc”, “abc”, “hbc”]
searchCriteria Search for locations by Geo Coordinates Yes [“geo”]
swLat South-West latitude coordinates expressed as decimal Yes
neLat North-East latitude coordinates expressed as decimal Yes
neLng North-East longitude coordinates expressed as decimal Yes
swLng South-West longitude coordinates expressed as decimal Yes
startIndex Specify the row number of the first record from the full result list to return. Defaults to 1 No
endIndex Specify the row number of the last record from the full result list to return. Defaults to {startIndex + 20} No
fields “basic” returns only the identifiers and description/name, “extended” returns more attributes. Default is basic No [“basic”, “extended”]

Response

Schema

AttributeTypeMandatoryDescription
status APIStatus Yes Response status
locationSearchResponse object(Location Search Response) No Location search response object

Location Search Response

AttributeTypeMandatoryDescription
totalRecords integer Yes Total records in the response
viewport object(Viewport) No Viewport bounding box definition.
Only returned when fields = ‘extended’
locations array[object(Location)] Yes Array of locations objects

Viewport

AttributeTypeMandatoryDescription
swLat number Yes South-West latitude coordinates expressed as decimal
swLng number Yes South-West longitude coordinates expressed as decimal
neLat number Yes North-East latitude coordinates expressed as decimal
neLng number Yes North-East longitude coordinates expressed as decimal

Location

AttributeTypeMandatoryDescription
apiStructType string Yes This field represents what object will be returned in the payload.
I.e. apiStructType of atm will return an atm object.
atm object(Atm) No An ATM object
brc object(Branch) No Branch object
general object(General) No General object

Atm

AttributeTypeMandatoryDescription
key string Yes Location key
latitude number Yes Latitude (in decimal)
longitude number Yes Longitude (in decimal)
id integer No Only returned when fields = ‘extended’
description string No Only returned when fields = 'extended’
address1 string No Only returned when fields = 'extended’
address2 string No Only returned when fields = 'extended’
address3 string No Only returned when fields = 'extended’
address4 string No Only returned when fields = 'extended’
address5 string No Only returned when fields = 'extended’
suburb string No Only returned when fields = 'extended’
state string No Only returned when fields = 'extended’
postcode string No Only returned when fields = 'extended’
lobbyOrTtw string No Lobby (L) or Through the Wall (T).
Only returned when fields = 'extended’
siteType string No Only returned when fields = 'extended’
location string No Only returned when fields = 'extended’
isDeposit boolean No Depository. Only returned when fields = 'extended’
isDisabilityApproved boolean No Only returned when fields = 'extended’
isAudio boolean No Only returned when fields = 'extended’
hours string No Hours of operation.
Only returned when fields = 'extended’
source string No ATM Source (BOQ, CUS, NAB).
Only returned when fields = 'extended’
distanceToLocation number No Only returned when fields = 'extended’

Branch

AttributeTypeMandatoryDescription
key string Yes Location key
latitude number Yes Latitude (in decimal)
longitude number Yes Longitude (in decimal)
id integer No Only returned when fields = 'extended’
bsb string No Only returned when fields = 'extended’
siteName string No Only returned when fields = 'extended’
description string No Only returned when fields = 'extended’
address1 string No Only returned when fields = 'extended’
address2 string No Only returned when fields = 'extended’
suburb string No Only returned when fields = 'extended’
state string No Only returned when fields = 'extended’
postcode string No Only returned when fields = 'extended’
isRural boolean No Only returned when fields = 'extended’
hours string No Opening hours
openWeekends boolean No Only returned when fields = 'extended’
announcement string No Branch admins can post announcements
hasCoinSwap boolean No Only returned when fields = 'extended’
coinSwapHours string No Includes opening hours
hasQuickChange boolean No Only returned when fields = 'extended’
quickChangeHours string No Includes opening hours
bbc boolean No Only returned when fields = 'extended’
expressBusinessDeposit boolean No Only returned when fields = 'extended’
hasIntelligentDeposit string No Only returned when fields = 'extended’
intelligentDepositHours string No Includes opening hours
foreignCurrency boolean No Only returned when fields = 'extended’
internetBank boolean No Only returned when fields = 'extended’
financialPlanner boolean No Only returned when fields = 'extended’
financialPlannerLanguage string No Only returned when fields = 'extended’
mobileBanker boolean No Only returned when fields = 'extended’
mobileBankerLanguage string No Only returned when fields = 'extended’
smallBusinessBankers array[object(Small Business Banker)] No Only returned when fields = 'extended’
distanceToLocation number No Only returned when fields = 'extended’

Small Business Banker

AttributeTypeMandatoryDescription
name string No Name
key string No Location key

General

AttributeTypeMandatoryDescription
key string Yes Location key
latitude number Yes Latitude (in decimal)
longitude number Yes Longitude (in decimal)
type string Yes Type of general banking site. E.g. ksk, bbc, agn, abc, hbc
id integer No Only returned when fields = 'extended’
bsb string No Only returned when fields = 'extended’
description string No Only returned when fields = 'extended’
address1 string No Only returned when fields = 'extended’
address2 string No Only returned when fields = 'extended’
suburb string No Only returned when fields = 'extended’
state string No Only returned when fields = 'extended’
postcode string No Only returned when fields = 'extended’
phone string No Only returned when fields = 'extended’
hours string No Only returned when fields = 'extended’
industry string No Only returned when fields = 'extended’
website string No Only returned when fields = 'extended’
distanceToLocation number No Only returned when fields = 'extended’

Get Location

Request

curl \\
    -X GET \\
    https://sandbox.api.nab/v2/location/{key}?v=1
import org.apache.http.client.methods.*;
import org.apache.http.impl.client.*;
import org.apache.http.util.*;

public class GetLocationByKey {

    private static final String API_KEY = "YOUR-API-KEY";
    private static final String HOST = "https://sandbox.api.nab";
    private static final String URI = "/v2/location/%s?v=1";

    public static void main(String[] args) {

        String locationKey = "atm_205E";

        try {

            String url = HOST + String.format(URI, locationKey);

            CloseableHttpClient httpclient = HttpClients.createDefault();

            HttpGet request = new HttpGet(url);
            request.addHeader("content-type", "application/json");
            request.addHeader("x-nab-key", API_KEY);

            CloseableHttpResponse response = httpclient.execute(request);

            String json = EntityUtils.toString(response.getEntity());

            System.out.println(json);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Response

{
  "locationDetailResponse": {
    "apiStructType": "atm",
    "atm": {
      "location": "Offsite",
      "isDeposit": false,
      "isDisabilityApproved": false,
      "isAudio": false,
      "source": "NAB ATM",
      "address3": "Petrol Station",
      "id": 5058068,
      "key": "atm_2A05",
      "description": "APCO Albury",
      "address1": "997 Mate Street",
      "suburb": "Albury",
      "state": "NSW",
      "postcode": "2640",
      "latitude": -36.0574542,
      "longitude": 146.9326063,
      "hours": "24/7"
    }
  },
  "status": {
    "code": "API-200",
    "message": "Success"
  }
}
{
  "locationDetailResponse": {
    "apiStructType": "atm",
    "atm": {
      "location": "Offsite",
      "isDeposit": false,
      "isDisabilityApproved": false,
      "isAudio": false,
      "source": "NAB ATM",
      "address3": "Petrol Station",
      "id": 5058068,
      "key": "atm_2A05",
      "description": "APCO Albury",
      "address1": "997 Mate Street",
      "suburb": "Albury",
      "state": "NSW",
      "postcode": "2640",
      "latitude": -36.0574542,
      "longitude": 146.9326063,
      "hours": "24/7"
    }
  },
  "status": {
    "code": "API-200",
    "message": "Success"
  }
}

GET https://sandbox.api.nab/v2/location/{key}?v=1

URL Parameters

NameValueDescription
keyLocation KeyThe location key returned as part of the Get Locations API

Query Parameters

NameDescriptionMandatoryValue
v Version Yes 1

Response

Schema

AttributeTypeMandatoryDescription
status APIStatus No Response status
locationDetailResponse object(Location Detail Response) No Location Detail response object

Location Detail Response

AttributeTypeMandatoryDescription
apiStructType string Yes This field represents what object will be returned in the payload. I.e. apiStructType of atm will return an atm object.
atm object(Atm) No An ATM object
brc object(Brc) No A Branch object
general object(General) No A general bank object

Atm

AttributeTypeMandatoryDescription
id integer Yes
key string Yes Unique identifier (business defined)
description string No
address1 string Yes Address Line 1
address2 string No Address Line 2
address3 string No Address Line 3
address4 string No Address Line 4
address5 string No Address Line 5
suburb string Yes Suburb
state string Yes State
postcode string Yes Postcode
latitude number Yes Latitude (in decimal)
longitude number Yes Longitude (in decimal)
lobbyOrTtw string No L, T
siteType string No Site type
location string No
isDeposit boolean Yes Depository
isDisabilityApproved boolean Yes
isAudio boolean Yes
hours string No Hours of operation
source string No ATM Source (BOQ, CUS, NAB)

Brc

AttributeTypeMandatoryDescription
id integer Yes
key string Yes Unique identifier (business defined)
bsb string Yes Bank State Branch (BSB) number
siteName string Yes
description string No
address1 string Yes Address Line 1
address2 string No Address Line 2
suburb string Yes Suburb
state string Yes State
postcode string Yes Postcode
isRural booelan Yes
latitude number Yes Latitude (in decimal)
longitude number Yes Longitude (in decimal)
hours string No Opening hours
openWeekends boolean No
announcement string No Branch admins can post announcements
hasCoinSwap boolean No
coinSwapHours string No Includes opening hours
hasQuickChange boolean No
quickChangeHours string No Includes opening hours
bbc boolean No
expressBusinessDeposit boolean No
hasIntelligentDeposit string No
intelligentDeposutHours string No Includes opening hours
foreignCurrency boolean No
internetBank boolean No
financialPlanner boolean No
financialPlannerLanguage string No
mobileBanker boolean No
mobileBankerLanguage string No
smallBusinessBankers array[object(Small Business Banker)] No

Small Business Banker

AttributeTypeMandatoryDescription
name string No Name
key string No Location key

General

AttributeTypeMandatoryDescription
id integer Yes
key string Yes Unique identifier (business defined)
bsb string No Bank State Branch (BSB) number
type string Yes Type of general facility. E.g. ksk, bbc, agn, abc, hbc
description string No Description of the facility
address1 string Yes Address Line 1
address2 string No Address Line 2
suburb string Yes Suburb
state string Yes State
postcode string Yes Postcode
phone string No unstructured
latitude number Yes Latitude (in decimal)
longitude number Yes Longitude (in decimal)
hours string No Hours of operation
industry string No Type of industry
website string No Website

FX

Provides a list of all known buy and sell rates for available currency pairs.

Reference

Get List of Foreign Exchange Rates

Request

curl \\
    -X GET \\
    https://sandbox.api.nab/v2/fxrates?v=1
import org.apache.http.client.methods.*;
import org.apache.http.impl.client.*;
import org.apache.http.util.*;

public class GetFxRates {

    private static final String API_KEY = "YOUR-API-KEY";
    private static final String HOST = "https://sandbox.api.nab";
    private static final String URI = "/v2/fxrates?v=1";

    public static void main(String[] args) {
        try {

            String url = HOST + URI ;

            CloseableHttpClient httpclient = HttpClients.createDefault();

            HttpGet request = new HttpGet(url);
            request.addHeader("content-type", "application/json");
            request.addHeader("x-nab-key", API_KEY);

            CloseableHttpResponse response = httpclient.execute(request);

            String json = EntityUtils.toString(response.getEntity());

            System.out.println(json);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Response

{
  "fxRatesResponse": {
    "fxRates": [
      {
        "buyCurrency": "USD",
        "sellCurrency": "AUD",
        "currentBuyRate": "0.76456",
        "currentSellRate": "0.72229",
        "previousBuyRate": "0.76456",
        "previousSellRate": "0.72229"
      },
      {
        "buyCurrency": "NZD",
        "sellCurrency": "AUD",
        "currentBuyRate": "0.86456",
        "currentSellRate": "0.82229",
        "previousBuyRate": "0.86456",
        "previousSellRate": "0.82229"
      }
    ],
    "lastUpdatedDate": "2015-12-15T15:43:00Z"
  },
  "status": {
    "code": "API-200",
    "message": "Success"
  }
}
{
  "fxRatesResponse": {
    "fxRates": [
      {
        "buyCurrency": "USD",
        "sellCurrency": "AUD",
        "currentBuyRate": "0.76456",
        "currentSellRate": "0.72229",
        "previousBuyRate": "0.76456",
        "previousSellRate": "0.72229"
      },
      {
        "buyCurrency": "NZD",
        "sellCurrency": "AUD",
        "currentBuyRate": "0.86456",
        "currentSellRate": "0.82229",
        "previousBuyRate": "0.86456",
        "previousSellRate": "0.82229"
      }
    ],
    "lastUpdatedDate": "2015-12-15T15:43:00Z"
  },
  "status": {
    "code": "API-200",
    "message": "Success"
  }
}

GET https://sandbox.api.nab/v2/fxrates?v=1

Query Parameters

NameDescriptionMandatoryValue
v Version Yes 1

Response

Schema

AttributeTypeMandatoryDescription
status APIStatus Yes Response status
fxRatesResponse object(Fx Rates Response) No fxRates response object

Fx Rates Response

AttributeTypeMandatoryDescription
fxRates array[object(Fx Rate)] Yes Array of fxRate objects
lastUpdatedDate APIDateTimeUTCString Yes The date the rates were updated (in UTC format).

Fx Rate

AttributeTypeMandatoryDescription
buyCurrency APICurrencyString Yes Currency to buy.
sellCurrency APICurrencyString Yes Currency to sell.
currentBuyRate APIRateString Yes Current buy rate.
currentSellRate APIRateString Yes Current sell rate.
previousBuyRate APIRateString Yes Previous buy rate.
previousSellRate APIRateString Yes Previous sell rate.