Custom Program
searchAccounts()

Search customer accounts using a minimum of first name, last name, and zip code. The resulting data set is similar to what is returned in the Galileo CST.

Recordset Paging

Large data sets can be retrieved using recordset paging. When retrieving a large data set, pass the number of records desired (500 per page maximum) as the 'recordCnt' parameter value. Each response will include the total number of records found related to the date range as 'total_record_count'. The number of pages available will be returned as 'number_of_pages'. The current page being returned is communicated simply as 'page'. The API consumer can request the different pages of the recordset by passing the desired page number as the 'page' parameter.

Parameters
Parameter Required Data Type Pattern Notes Example Value
apiLogin Yes String 50 characters or less Provider's Web Service Username as provided and authenticated by Galileo for the requesting IP Address. AbC123-9999
apiTransKey Yes String 15 characters or less Web Service Password as provided and authenticated by Galileo for the requesting IP Address. 4sb62fh6w4h7w34g
providerId Yes Integer 10 digits or less Galileo issued unique Provider identifier. 9999
transactionId Yes String 60 characters or less 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. 9845dk-39fdk3fj3-4483483478
firstName No String 1-30 characters; letters, spaces, numbers, and some punctuation:
, . ? @ & ! # ' ~ * - ; +.
Cardholder's first name Ed
middleName No String Letters and spaces, maximum length of 30 characters. Cardholder's middle name W
lastName No String 30 characters; letters, spaces, numbers, and some punctuation:
, . ? @ & ! # ' ~ * - ; +.
Cardholder's last name Harley
dateOfBirth No Date YYYY-MM-DD, minimum age per the business rules for the program. Cardholder's birth date 1980-01-01
postalCode No String 12345 or 12345-1234 (US), K1A-1A1 (CA) Cardholder's postal code (zip code) 84121
mobilePhone No Number Valid phone number Cardholder's mobile phone number 8013656050
primaryPhone No Number Valid phone number Cardholder's primary phone number 8013656050
otherPhone No Number Valid phone number Cardholder's other phone number 8013656050
email No String Email Address Cardholder's email user@fakedomain.com
Status Codes
Status Code Description
0 Success
2 Invalid parameter(s)
12 Invalid customer account
-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-06-13 09:02:52</system_timestamp>
   <response_data>
     <page>1</page>
     <total_record_count>2</total_record_count>
     <number_of_pages>1</number_of_pages>
     <accounts>
       <account>
         <pmt_ref_no>074101001316</pmt_ref_no>
         <first_name>Michael</first_name>
         <middle_name>Elizabeth</middle_name>
         <last_name>Bluth</last_name>
         <email/>
         <status>N</status>
         <active>Y</active>
         <galileo_account_number>1181464</galileo_account_number>
         <product_id>525</product_id>
         <group_id>1</group_id>
         <application_date>2013-11-01 00:00:00</application_date>
       </account>
       <account>
         <pmt_ref_no>074101001324</pmt_ref_no>
         <first_name>Michael</first_name>
         <middle_name>Ervins</middle_name>
         <last_name>Bluth</last_name>
         <email/>
         <status>N</status>
         <active>Y</active>
         <galileo_account_number>1181465</galileo_account_number>
         <product_id>525</product_id>
         <group_id>1</group_id>
         <application_date>2013-11-01 00:00:00</application_date>
       </account>
     </accounts>
   </response_data>
   <processing_time>1.455</processing_time>
   <echo>
     <transaction_id>455318984</transaction_id>
     <provider_transaction_id>GAAP test</provider_transaction_id>
     <provider_timestamp>2018-06-13 09:02:38</provider_timestamp>
   </echo>
</response>
Response Description
status The condition of a process or response (such as embossed card, account, freeze, and so on).
status_code The status of the response.
system_timestamp A system generated timestamp.
response_data A structure for the response data. It can be empty but usually will contain information.
page The current page in the accounts list display.
total_record_count Number of records in the accounts list display.
number_of_pages Total number of pages in the accounts list display.
accounts Acts as a logical separator to discern a specific account.
account Acts as a logical separator between accounts if more than one is returned.
pmt_ref_no A Galileo generated account number.
first_name A person's first name as listed on the account.
last_name A person's last name as listed on the account.
middle_name A person's middle name as listed on the account.
email The email address on a profile.
status The condition of a process or response (such as embossed card, account, freeze, and so on).
active Yes or no to flag an active account.
galileo_account_number Galileo generated integer account number, also known as balance ID.
product_id Galileo generated integer.
group_id Integer value used for tracking the location (store, entity, etc...) where the customer was acquired. The group_id is set using the location and locationType parameters.
application_date The date an application was made to create an account.
processing_time The time elapsed in processing the transaction.
echo A structure that displays transaction ID information.
transaction_id A number that represents a transaction.
provider_transaction_id Secondary transaction identifier (generated by a provider).
provider_timestamp Store a related timestamp for reporting and troubleshooting purposes.
Code Snippet

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

curl -d '{"apiLogin":"AbC1234-9999", "apiTransKey":"9845dk-39fdk3fj3-4483483478", "transactionId":"45k-dk3fj3-44478"}' \ 
-H "response-content-type: json" \ 
-X POST https://**your-full-implementation-url**/searchAccounts
                
                    // The following Java code will make a searchAccounts 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");
            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**/searchAccounts");

            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 searchAccounts
# and print the json response.

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

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

$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 searchAccounts 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");
WebRequest request = WebRequest.Create("https://**your-full-implementation-url**/searchAccounts");
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 searchAccounts call
# and print the json response.

require 'uri'
require 'net/http'

uri = URI("https://**your-full-implementation-url**/searchAccounts")
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'}.to_json
response = https.request(request)
puts response