Custom Program
getAccountById()

This method allows the retrieval of account information using common customer ID elements such as Social Security or Drivers License number. If an account is found associated with the ID that was passed, useful account information like status, application (enrollment) date, and payment reference number are returned.

getAccountById() is a PCI-compliance sensitive method, because ID information is passed in.

getAccountByid() searches for id, not id2. id2 is not capable of searching id2 values. Always use id when using getAccountByid().

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
id Yes String String See table below for string patterns related to the different accepted ID types. 123456789
idType Yes Integer Integer value required (Galileo defined) See table below for valid ID types. 2
ID Types allowed in getAccountById()
ID Description Layout
0 accountNo (PAN or PRN) Can be either a PAN (the 16 digit card number) or PRN (a unique product Identifier used for internal Galileo processing and added security).
1 Driver's License number DL#|DL State |DL Expiration Pipe delimited 12 char|2 char|yyyy-mm-dd
2 Social Security number XXXXXXXXX 9 digits, all numeric
3 Green Card number XXXXXXXXXX|yyyy-mm-dd 10 digits|expiration date (pipe delimited)
4 Passport number XXXXXXXX|yyyy-mm-dd 8 digits|expiration date (pipe delimited)
5 Visa number XXXXXXXX|yyyy-mm-dd 8 digits|expiration date (pipe delimited)
6 Matricula Consular number XXXXXXX|yyyy-mm-dd 7 digits|expiration date (pipe delimited)
7 Client-generated number Up to 50 alphanumeric characters.
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>2011-02-09 16:06:03</system_timestamp>
   <response_data>
     <accounts>
       <account>
         <prn>074129972795</prn>
         <prod_id>560</prod_id>
         <app_date>2011-02-04 04:27:55</app_date>
         <status>N</status>
         <active_flag>Y</active_flag>
       </account>
     </accounts>
   </response_data>
   <processing_time>2.118</processing_time>
   <echo>
     <transaction_id>12345a</transaction_id>
     <provider_transaction_id>77bb</provider_transaction_id>
     <provider_timestamp>2013-02-06 10:10:10</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.
accounts Acts as a logical separator between accounts if more than one is returned.
account Acts as a logical separator to discern a specific account.
prn The payment reference number.
prod_id Unique system generated product id associated with the account.
app_date The date the account's application was submitted.
status Indicates the status of an account.
active_flag Indicates if an account is active or not.
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 getAccountById
# and return the json response.

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

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

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

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

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

require 'uri'
require 'net/http'

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