Skip to main content

Menu

  • Home
  • Getting Started
  • API products
  • Use cases
  • Brands
  • Support
 

Halifax APIs

Use our apis to create a new customer experiences and help shape the way we bank in
the future.

Cashpoint ® locator

Location and details of every Halifax cashpoint in the UK.

Branch locator

A comprehensive directory of all Halifax branches in the UK.

Our products

Get started with our opensource APIs and details of some of our products.

ATM

Description

Find any Halifax Bank ATM across the UK and utilise the facilities it offers. This API will allow users to locate all Halifax Bank Automated Teller Machines across the UK.

Benefits

  • Full list of Halifax Bank ATMs
  • Town, street name and postcode ATM is located on
  • Services available

Version - 2.2

Interface

                    
    /atms

    Type:: GET 
    Description
    This resource returns all the ATM locations
    
    /atms
    
    Type:: HEAD
    Description
    This resource returns the header information alone without sending the entire content

                        
        curl --request GET \
        --url https://api.halifax.co.uk/open-banking/v2.2/atms \
        --header 'If-Modified-Since: REPLACE_THIS_VALUE' \
        --header 'If-None-Match: REPLACE_THIS_VALUE' \
        --header 'accept: application/prs.openbanking.opendata.v2.2+json'
    
                        
        require 'uri'
        require 'net/http'
        require 'openssl'

        url = URI("https://api.halifax.co.uk/open-banking/v2.2/atms")

        http = Net::HTTP.new(url.host, url.port)
        http.use_ssl = true
        http.verify_mode = OpenSSL::SSL::VERIFY_NONE

        request = Net::HTTP::Get.new(url)
        request["If-Modified-Since"] = 'REPLACE_THIS_VALUE'
        request["If-None-Match"] = 'REPLACE_THIS_VALUE'
        request["accept"] = 'application/prs.openbanking.opendata.v2.2+json'

        response = http.request(request)
        puts response.read_body
    
                        
        import http.client
        conn = http.client.HTTPSConnection("api.halifax.co.uk")
        headers = {
            'If-Modified-Since': "REPLACE_THIS_VALUE",
            'If-None-Match': "REPLACE_THIS_VALUE",
            'accept': "application/prs.openbanking.opendata.v2.2+json"
            }
        conn.request("GET", "/open-banking/v2.2/atms", headers=headers)
        res = conn.getresponse()
        data = res.read()
        print(data.decode("utf-8"))
    
                        
        <?php

            $curl = curl_init();

            curl_setopt_array($curl, [
            CURLOPT_URL =>"https://api.halifax.co.uk/open-banking/v2.2/atms",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "GET",
        CURLOPT_HTTPHEADER => [
            "If-Modified-Since: REPLACE_THIS_VALUE",
            "If-None-Match: REPLACE_THIS_VALUE",
            "accept: application/prs.openbanking.opendata.v2.2+json",
        ],
        ]);
        $response = curl_exec($curl);
        $err = curl_error($curl);
        curl_close($curl);
        if ($err) {
        echo "cURL Error #:" . $err;
        } else {
        echo $response;
        }
    
                        
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder()
        .url("https://api.halifax.co.uk/open-banking/v2.2/atms")
        .get()
        .addHeader("If-Modified-Since", "REPLACE_THIS_VALUE")
        .addHeader("If-None-Match", "REPLACE_THIS_VALUE")
        .addHeader("accept", "application/prs.openbanking.opendata.v2.2+json")
        .build();
        Response response = client.newCall(request).execute();
    
                        
        const request = require('request');
        const options = {
        method: 'GET',
        url: 'https://api.halifax.co.uk/open-banking/v2.2/atms',
        headers: {
            'If-Modified-Since': 'REPLACE_THIS_VALUE',
            'If-None-Match': 'REPLACE_THIS_VALUE',
            'accept': 'application/prs.openbanking.opendata.v2.2+json'
            }
        };

        request(options, function (error, response, body) {
        if (error) throw new Error(error);

        console.log(body);
        });
    
                        
        package main

        import (
            "fmt"
            "net/http"
            "io/ioutil"
        )

        func main() {

            url := "https://api.halifax.co.uk/open-banking/v2.2/atms"

            req, _ := http.NewRequest("GET", url, nil)

            req.Header.Add("If-Modified-Since", "REPLACE_THIS_VALUE")
            req.Header.Add("If-None-Match", "REPLACE_THIS_VALUE")
            req.Header.Add("accept", "application/prs.openbanking.opendata.v2.2+json")

            res, _ := http.DefaultClient.Do(req)

            defer res.Body.Close()
            body, _ := ioutil.ReadAll(res.Body)

            fmt.Println(res)
            fmt.Println(string(body))

        }
    
                        
        import Foundation

        let headers = [
        "If-Modified-Since": "REPLACE_THIS_VALUE",
        "If-None-Match": "REPLACE_THIS_VALUE",
        "accept": "application/prs.openbanking.opendata.v2.2+json"
        ]

        let request = NSMutableURLRequest(
            url: NSURL(string: "https://api.halifax.co.uk/open-banking/v2.2/atms")! as URL,
            cachePolicy: .useProtocolCachePolicy,
            timeoutInterval: 10.0)
        request.httpMethod = "GET"
        request.allHTTPHeaderFields = headers

        let session = URLSession.shared
        let dataTask = session.dataTask(
            with: request as URLRequest, 
            completionHandler: { (data, response, error) -> Void in
        if (error != nil) {
            print(error)
        } else {
            let httpResponse = response as? HTTPURLResponse
            print(httpResponse)
        }
        })

        dataTask.resume()
    

Branch

Description

Locate any Halifax Bank branch across the UK and utilise the facilities it offers. The Halifax Branch Locator API enables users to locate all Halifax Bank branches throughout the UK.

Benefits

  • Full list of Halifax branches
  • Town, street name and postcode branch is located on
  • Services available

Version - 2.2

Interface

                    
    /branches

    Type:: GET 
    Description
    This resource returns all the branch locations
    
    /branches
    
    Type:: HEAD
    Description
    This resource returns the header information alone without sending the entire content

                        
        curl --request GET \
        --url https://api.halifax.co.uk/open-banking/v2.2/branches \
        --header 'If-Modified-Since: REPLACE_THIS_VALUE' \
        --header 'If-None-Match: REPLACE_THIS_VALUE' \
        --header 'accept: application/prs.openbanking.opendata.v2.2+json'
    
                        
        require 'uri'
        require 'net/http'
        require 'openssl'

        url = URI("https://api.halifax.co.uk/open-banking/v2.2/branches")

        http = Net::HTTP.new(url.host, url.port)
        http.use_ssl = true
        http.verify_mode = OpenSSL::SSL::VERIFY_NONE

        request = Net::HTTP::Get.new(url)
        request["If-Modified-Since"] = 'REPLACE_THIS_VALUE'
        request["If-None-Match"] = 'REPLACE_THIS_VALUE'
        request["accept"] = 'application/prs.openbanking.opendata.v2.2+json'

        response = http.request(request)
        puts response.read_body
    
                        
        import http.client
        conn = http.client.HTTPSConnection("api.halifax.co.uk")
        headers = {
            'If-Modified-Since': "REPLACE_THIS_VALUE",
            'If-None-Match': "REPLACE_THIS_VALUE",
            'accept': "application/prs.openbanking.opendata.v2.2+json"
            }
        conn.request("GET", "/open-banking/v2.2/branches", headers=headers)
        res = conn.getresponse()
        data = res.read()
        print(data.decode("utf-8"))
    
                        
        <?php

            $curl = curl_init();

            curl_setopt_array($curl, [
            CURLOPT_URL =>"https://api.halifax.co.uk/open-banking/v2.2/branches",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "GET",
        CURLOPT_HTTPHEADER => [
            "If-Modified-Since: REPLACE_THIS_VALUE",
            "If-None-Match: REPLACE_THIS_VALUE",
            "accept: application/prs.openbanking.opendata.v2.2+json",
        ],
        ]);
        $response = curl_exec($curl);
        $err = curl_error($curl);
        curl_close($curl);
        if ($err) {
        echo "cURL Error #:" . $err;
        } else {
        echo $response;
        }
    
                        
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder()
        .url("https://api.halifax.co.uk/open-banking/v2.2/branches")
        .get()
        .addHeader("If-Modified-Since", "REPLACE_THIS_VALUE")
        .addHeader("If-None-Match", "REPLACE_THIS_VALUE")
        .addHeader("accept", "application/prs.openbanking.opendata.v2.2+json")
        .build();
        Response response = client.newCall(request).execute();
    
                        
        const request = require('request');
        const options = {
        method: 'GET',
        url: 'https://api.halifax.co.uk/open-banking/v2.2/branches',
        headers: {
            'If-Modified-Since': 'REPLACE_THIS_VALUE',
            'If-None-Match': 'REPLACE_THIS_VALUE',
            'accept': 'application/prs.openbanking.opendata.v2.2+json'
            }
        };

        request(options, function (error, response, body) {
        if (error) throw new Error(error);

        console.log(body);
        });
    
                        
        package main

        import (
            "fmt"
            "net/http"
            "io/ioutil"
        )

        func main() {

            url := "https://api.halifax.co.uk/open-banking/v2.2/branches"

            req, _ := http.NewRequest("GET", url, nil)

            req.Header.Add("If-Modified-Since", "REPLACE_THIS_VALUE")
            req.Header.Add("If-None-Match", "REPLACE_THIS_VALUE")
            req.Header.Add("accept", "application/prs.openbanking.opendata.v2.2+json")

            res, _ := http.DefaultClient.Do(req)

            defer res.Body.Close()
            body, _ := ioutil.ReadAll(res.Body)

            fmt.Println(res)
            fmt.Println(string(body))

        }
    
                        
        import Foundation

        let headers = [
        "If-Modified-Since": "REPLACE_THIS_VALUE",
        "If-None-Match": "REPLACE_THIS_VALUE",
        "accept": "application/prs.openbanking.opendata.v2.2+json"
        ]

        let request = NSMutableURLRequest(
            url: NSURL(string: "https://api.halifax.co.uk/open-banking/v2.2/branches")! as URL,
            cachePolicy: .useProtocolCachePolicy,
            timeoutInterval: 10.0)
        request.httpMethod = "GET"
        request.allHTTPHeaderFields = headers

        let session = URLSession.shared
        let dataTask = session.dataTask(
            with: request as URLRequest, 
            completionHandler: { (data, response, error) -> Void in
        if (error != nil) {
            print(error)
        } else {
            let httpResponse = response as? HTTPURLResponse
            print(httpResponse)
        }
        })

        dataTask.resume()
    

Products

Description

Description - Explore a variety of Halifax Bank product details and easily check your eligibility with us. The Halifax Bank Product Details API allows users to view all of our financial products Halifax Bank has to offer.

Product Types

  • Personal Current Account (PCA)

Version - 2.2

                                
                curl --request GET \
                --url https://api.halifax.co.uk/open-banking/v2.2/personal-current-accounts \
                --header 'If-Modified-Since: REPLACE_THIS_VALUE' \
                --header 'If-None-Match: REPLACE_THIS_VALUE' \
                --header 'accept: application/prs.openbanking.opendata.v2.2+json'
            
        
                                
                require 'uri'
                require 'net/http'
                require 'openssl'
                
                url = URI("https://api.halifax.co.uk/open-banking/v2.2/personal-current-accounts")
                
                http = Net::HTTP.new(url.host, url.port)
                http.use_ssl = true
                http.verify_mode = OpenSSL::SSL::VERIFY_NONE
                
                request = Net::HTTP::Get.new(url)
                request["If-Modified-Since"] = 'REPLACE_THIS_VALUE'
                request["If-None-Match"] = 'REPLACE_THIS_VALUE'
                request["accept"] = 'application/prs.openbanking.opendata.v2.2+json'
                
                response = http.request(request)
                puts response.read_body
            
        
                                
                import http.client

                conn = http.client.HTTPSConnection("api.halifax.co.uk")
                
                headers = {
                    'If-Modified-Since': "REPLACE_THIS_VALUE",
                    'If-None-Match': "REPLACE_THIS_VALUE",
                    'accept': "application/prs.openbanking.opendata.v2.2+json"
                    }
                
                conn.request("GET", "/open-banking/v2.2/personal-current-accounts", headers=headers)
                
                res = conn.getresponse()
                data = res.read()
                
                print(data.decode("utf-8"))
            
        
                                
                <?php

                $curl = curl_init();

                curl_setopt_array($curl, [
                CURLOPT_URL => "https://api.halifax.co.uk/open-banking/v2.2/personal-current-accounts",
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => "",
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 30,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => "GET",
                CURLOPT_HTTPHEADER => [
                    "If-Modified-Since: REPLACE_THIS_VALUE",
                    "If-None-Match: REPLACE_THIS_VALUE",
                    "accept: application/prs.openbanking.opendata.v2.2+json"
                ],
                ]);

                $response = curl_exec($curl);
                $err = curl_error($curl);

                curl_close($curl);

                if ($err) {
                echo "cURL Error #:" . $err;
                } else {
                echo $response;
                }
            
        
                                
                OkHttpClient client = new OkHttpClient();

                Request request = new Request.Builder()
                    .url("https://api.halifax.co.uk/open-banking/v2.2/personal-current-accounts")
                    .get()
                    .addHeader("If-Modified-Since", "REPLACE_THIS_VALUE")
                    .addHeader("If-None-Match", "REPLACE_THIS_VALUE")
                    .addHeader("accept", "application/prs.openbanking.opendata.v2.2+json")
                    .build();
                
                Response response = client.newCall(request).execute();
            
        
                                
                const request = require('request');

                const options = {
                    method: 'GET',
                    url: 'https://api.halifax.co.uk/open-banking/v2.2/personal-current-accounts',
                    headers: {
                    'If-Modified-Since': 'REPLACE_THIS_VALUE',
                    'If-None-Match': 'REPLACE_THIS_VALUE',
                    accept: 'application/prs.openbanking.opendata.v2.2+json'
                    }
                };
                
                request(options, function (error, response, body) {
                    if (error) throw new Error(error);
                
                    console.log(body);
                });
            
        
                                
                package main

                import (
                    "fmt"
                    "net/http"
                    "io/ioutil"
                )
                
                func main() {
                
                    url := "https://api.halifax.co.uk/open-banking/v2.2/personal-current-accounts"
                
                    req, _ := http.NewRequest("GET", url, nil)
                
                    req.Header.Add("If-Modified-Since", "REPLACE_THIS_VALUE")
                    req.Header.Add("If-None-Match", "REPLACE_THIS_VALUE")
                    req.Header.Add("accept", "application/prs.openbanking.opendata.v2.2+json")
                
                    res, _ := http.DefaultClient.Do(req)
                
                    defer res.Body.Close()
                    body, _ := ioutil.ReadAll(res.Body)
                
                    fmt.Println(res)
                    fmt.Println(string(body))
                
                }
            
        
                                
                import Foundation

                let headers = [
                    "If-Modified-Since": "REPLACE_THIS_VALUE",
                    "If-None-Match": "REPLACE_THIS_VALUE",
                    "accept": "application/prs.openbanking.opendata.v2.2+json"
                ]
                
                let request = NSMutableURLRequest(
                    url: NSURL(
                        string: "https://api.halifax.co.uk/open-banking/v2.2/personal-current-accounts")! as URL,
                        cachePolicy: .useProtocolCachePolicy,
                        timeoutInterval: 10.0)
                request.httpMethod = "GET"
                request.allHTTPHeaderFields = headers
                
                let session = URLSession.shared
                let dataTask = session.dataTask(
                    with: request as URLRequest, 
                    completionHandler: { 
                        (data, response, error) -> Void in
                    if (error != nil) {
                    print(error)
                    } else {
                    let httpResponse = response as? HTTPURLResponse
                    print(httpResponse)
                    }
                })
                
                dataTask.resume()
            
        
SitemapCookies AccessibilityLegal informationCareersPrivacy© 2019 LLOYDS BANKING GROUP