searchBillerDirectory()
Search for electronic biller matches in the Remote Payment and Presentment Service (RPPS) database. When passing a biller name ('billerName') and account number ('billerAccountNo'), the searchBillerDirectory() API method will attempt to find matches based on biller account number masks and the biller name. The returned RPPS biller ID ('rpps_biller_id') is used when calling the addRppsBiller() method call.
The searchBillerDirectory() method includes account number masking data for partners to consume and display to customers.
Parameters
Parameter Required Data type Pattern Notes
apiLogin Yes String

50 characters or less

AbC123-9999

Provider's Web Service Username as provided and authenticated by Galileo for the requesting IP Address.
apiTransKey Yes String

15 characters or less

4sb62fh6w4h7w34g

Web Service Password as provided and authenticated by Galileo for the requesting IP Address.
providerId Yes Integer

10 digits or less

9999

Galileo issued unique Provider identifier.
transactionId Yes String

60 characters or less

9845dk-39fdk3fj3-4483483478

A unique system generated ID number that identifies the API transaction with Galileo Processing systems. A UUID is preferred. This must be different for each transaction.
billerAccountNo No String

Alphanumeric string including hyphens and spaces.

3333223323455555

Must be valid biller account number. When applicable, the account number is validated against a biller-supplied mask.
billerName Yes String

Alphanumeric string of up to 128 characters.

My Landlord

Biller's name
billerState Yes String

2 character state or province abbreviation

UT

Biller's state or province abbreviation
Status Codes
Status Code description
0 Success
421-01 No billers found matching the search criteria.
-1 Indicates that the application record failed to update or return.
Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
   <status_code>0</status_code>
   <status>Success</status>
   <system_timestamp>2018-04-18 13:54:56</system_timestamp>
   <response_data>
     <billers>
       <biller>
         <rpps_biller_id>0404030214</rpps_biller_id>
         <biller_name>Comcast - Sandy 3</biller_name>
         <biller_address1/>
         <biller_address2/>
         <biller_city/>
         <biller_state/>
         <biller_zip/>
       </biller>
     </billers>
   </response_data>
   <processing_time>0.408</processing_time>
   <echo>
     <transaction_id>208114174</transaction_id>
     <provider_transaction_id>GAAP test</provider_transaction_id>
     <provider_timestamp>2018-04-18 13:54:48</provider_timestamp>
   </echo>
</response>

 

Response Description Example value
status The condition of a process or response (such as embossed card, account, freeze, and so on). Success
status_code The status of the response. 0
system_timestamp A system generated timestamp. 2011-02-02 11:11:12
response_data A structure for the response data. It can be empty but usually will contain information. <response_data>
   <new_account>   </new_account>
</response_data>
status The condition of a process or response (such as embossed card, account, freeze, and so on). Success
status_code The status of the response. 0
system_timestamp A system generated timestamp. 2018-02-02 11:11:12
name In a response_data element, identifies the name associated with id statement in the element. Acme, Inc.
transaction_id A number that represents a transaction. Ve8mEK6jUKulAMy7xYGu
provider_timestamp Store a related timestamp for reporting and troubleshooting purposes. 2018-02-06 10:10:10
provider_transaction_id Secondary transaction identifier (generated by a provider). 77bb
processing_time The time elapsed in processing the transaction. 1.723
billers A data structure for holding biller(s) information. <billers>
   <biller>
   <rpps_biller_id>
   <biller_name>
   <biller_address1/>
   <biller_address2/>
   <biller_city/>
   <biller_state/>
   <biller_zip/>
   </biller_name>
   </rpps_biller_id>
   </biller>
</billers>
biller Contains information fields for a single biller. <biller>
  <rpps_biller_id>
  <biller_name>
  <biller_address1/>
  <biller_address2/>
  <biller_city/>
  <biller_state/>
  <biller_zip/>
  </biller_name>
  </rpps_biller_id> </biller>
rpps_biller_id Remote Payment and Presentment Service provider ID. 0404030214
biller_address1 Street and residence number on the account. 1234 North 678 East
biller_address2 Additional address information on the account. #9
biller_city City for address information. Calgary
biller_state State for address information. AZ
biller_name Name of the biller. Comcast - Sandy 3
biller_zip Zip code of the biller. 84121
processing_time The time elapsed in processing the transaction. 1.723
echo A structure that displays transaction ID information. <echo>
  <transaction_id>...</transaction_id>
  <provider_transaction_id>...</provider_transaction_id>
  <provider_timestamp>...</provider_timestamp>
</echo>
transaction_id A number that represents a transaction. 12345a
provider_transaction_id Secondary transaction identifier (generated by a provider). 77bb
provider_timestamp Store a related timestamp for reporting and troubleshooting purposes. 2013-02-06 10:10:10
Code Snippet

                    # The following shell script will use cURL to call searchBillerDirectory
# and return the json response.

curl -d '{"apiLogin":"AbC1234-9999", "apiTransKey":"9845dk-39fdk3fj3-4483483478", "transactionId":"45k-dk3fj3-44478", "billerName":"My Landlord", "billerState":"UT"}' \ 
-H "response-content-type: json" \ 
-X POST https://**your-full-implementation-url**/searchBillerDirectory
                
                    // The following Java code will make a searchBillerDirectory call
// and print the json response.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Reader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util. *;

class GalileoAPICall
{
    public static void main(String[] args) {
        try {
            Map<String,Object> params = new LinkedHashMap<>();
           params.put("apiLogin", "AbC1234-9999");
           params.put("apiTransKey", "9845dk-39fdk3fj3-4483483478");
           params.put("transactionId", "45k-dk3fj3-44478");
           params.put("billerName", "My Landlord");
           params.put("billerState", "UT");
            StringBuilder postData = new StringBuilder();
            for (Map.Entry<String,Object> param : params.entrySet()) {
                if (postData.length() != 0) postData.append('&');
                postData.append(URLEncoder.encode(param.getKey(), "UTF-8"));
                postData.append('=');
                postData.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
            }
            byte[] postDataBytes = postData.toString().getBytes("UTF-8");

            URL url = new URL("https://**your-full-implementation-url**/searchBillerDirectory");

            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("POST");
            conn.setRequestProperty("response-content-type", "json");
            conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));
            conn.setDoOutput(true);
            conn.getOutputStream().write(postDataBytes);

            String xmlOutput;

            Reader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
            for (int c; (c = in.read()) >= 0;) {
                System.out.print((char)c);
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
                
                    # The following Python code will call searchBillerDirectory
# and print the json response.

import requests
headers = {'response-content-type': 'json'}
payload = {'apiLogin': 'AbC1234-9999', 'apiTransKey': '9845dk-39fdk3fj3-4483483478', 'transactionId': '45k-dk3fj3-44478', 'billerName': 'My Landlord', 'billerState': 'UT'}
r = requests.post(url='https://**your-full-implementation-url**/searchBillerDirectory', data=payload, headers=headers)
try:
    print(r.json())
except:
    print(r.status_code)
                
                    // The following PHP code will make a searchBillerDirectory call
// and prints the json response.

$endpoint = 'https://**your-full-implementation-url**/searchBillerDirectory';
$params = array('apiLogin'=>'AbC1234-9999', 'apiTransKey'=>'9845dk-39fdk3fj3-4483483478', 'transactionId'=>'45k-dk3fj3-44478', 'billerName'=>'My Landlord', 'billerState'=>'UT');

$curl = curl_init();
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $params);
curl_setopt($curl, CURLOPT_URL, $endpoint);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('response-content-type: json'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($curl);
curl_close($curl);
$json = new json_decode($result, true);
print_r($json);

                
                    // The following C# code will make a searchBillerDirectory call
// and print the json response.

using System;using System.IO;
using System.Net;
using System.Text;

byte[] data = Encoding.ASCII.GetBytes(
    "apiLogin=AbC1234-9999&apiTransKey=9845dk-39fdk3fj3-4483483478&transactionId=45k-dk3fj3-44478&billerName=My Landlord&billerState=UT");
WebRequest request = WebRequest.Create("https://**your-full-implementation-url**/searchBillerDirectory");
request.Method = "POST"\;
request.ContentLength = data.Length;
request.Headers.Add("response-content-type", "json");
using (Stream stream = request.GetRequestStream())
{
    stream.Write(data, 0, data.Length);
}
string responseContent = null;
using (WebResponse response = request.GetResponse())
{
    using (Stream stream = response.GetResponseStream())
    {
        using (StreamReader sr = new StreamReader(stream))
        {
            responseContent = sr.ReadToEnd();
        }
    }
}
Console.WriteLine(responseContent);
                
                    # The following Ruby code will make a searchBillerDirectory call
# and print the json response.

require 'uri'
require 'net/http'

uri = URI("https://**your-full-implementation-url**/searchBillerDirectory")
https = Net::HTTP.new(uri.host, uri.port)
https.use_ssl = true
request = Net::HTTP::Post.new(uri.path)
request['response-content-type'] = 'json'
request.body = {apiLogin: 'AbC1234-9999', apiTransKey: '9845dk-39fdk3fj3-4483483478', transactionId: '45k-dk3fj3-44478', billerName: 'My Landlord', billerState: 'UT'}.to_json
response = https.request(request)
puts response