Custom Program
getPaymentHistory()
Returns a recordset of payment (credits) history to a customer account.
Recordset Paging
Large data sets can be retrieved using recordset paging. A maximum date range of three years (1095 days) is allowed. 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
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.
accountNo Yes String

PAN or PRN

074103447228

Can be either a PAN (the 16 digit card number) or PRN (a unique 12 digit account identifier).
startDate Yes Date

YYYY-MM-DD

2016-01-01

The beginning date for the date range.
endDate Yes Date

YYYY-MM-DD

2016-02-01

The end date for the date range; must be greater than or equal to the startDate.
includeRelated No Boolean 0 or 1 0 Default is true; 0=false, 1=true
recordCnt No Integer

Positive integer value in the range of 1 and 99999.

100

The maximum number of records to be returned in the method response.
page No Number

Integer value of 1 or greater.

3

The page number to be retrieved in the context of recordset paging.
Status Codes
Status Code description
0 Success
2 Invalid parameter(s)
12 Invalid customer account.
23 Bad date range
-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>2017-08-15 10:30:11</system_timestamp>
   <response_data>
     <transaction_count>3</transaction_count>
     <page>1</page>
     <total_record_count>45</total_record_count>
     <number_of_pages>15</number_of_pages>
     <start_date>2012-01-01 00:00:00</start_date>
     <end_date>2013-01-01 23:59:59</end_date>
     <payments>
       <payment>
         <pmt_id>2900491</pmt_id>
         <details>0</details>
         <amount>50</amount>
         <timestamp>2012-09-19 16:09:11</timestamp>
         <source_id>15509778</source_id>
         <ach_transaction_id/>
         <external_trans_id/>
         <hold_days>0</hold_days>
         <status>P</status>
         <status_description>Processed</status_description>
       </payment>
       <payment>
         <pmt_id>2899723</pmt_id>
         <details>0</details>
         <amount>30</amount>
         <timestamp>2012-09-17 12:29:40</timestamp>
         <source_id>15494251</source_id>
         <ach_transaction_id/>
         <external_trans_id/>
         <hold_days>0</hold_days>
         <status>P</status>
         <status_description>Processed</status_description>
       </payment>
       <payment>
         <pmt_id>2899335</pmt_id>
         <details>0</details>
         <amount>20</amount>
         <timestamp>2012-09-15 12:09:38</timestamp>
         <source_id>15484328</source_id>
         <ach_transaction_id/>
         <external_trans_id/>
         <hold_days>0</hold_days>
         <status>P</status>
         <status_description>Processed</status_description>
       </payment>
     </payments>
   </response_data>
   <processing_time>0.514</processing_time>
   <echo>
     <transaction_id>772163725</transaction_id>
     <provider_transaction_id>GAAP test</provider_transaction_id>
     <provider_timestamp>2017-08-15 10:29:55</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>
transaction_count The number of transactions listed in the response. 3
page The page number to be retrieved in the context of recordset paging. 1
total_record_count Number of records in the accounts list display. 45
number_of_pages Total number of pages in the accounts list display. 15
start_date The start date of a response. 2018-01-01
end_date The end date of a response. The end date must always be later than the start date, (violations will trigger a bad date range response). 2018-01-02
payments The total amount of payments in this result. <payments>
<payment>
x
</payment
</payments>
payment In getPaymentHistory(), a data structure that contains payment information. <payment>
  <pmt_id>2900491</pmt_id>
  <details>0</details>
  <amount>50</amount>
  <timestamp>2012-09-19 16:09:11</timestamp>
  <source_id>15509778</source_id>
  <ach_transaction_id/>
  <external_trans_id/>
  <hold_days>0</hold_days>
  <status>P</status>
  <status_description>Processed</status_description>
</payment>
payments In getPaymentHistory(), a data structure that contains information on one or more payments. <payments>
<payment>
x
</payment
</payments>
pmt_id ID assigned to the specific payment. 2900491
details Description of a transaction or authorization. ECOMMERCE PAYMENTS
amount An amount on a transaction or authorization. 50
timestamp The date and time a change was made. 2018-09-19 16:09:11
source_id A code unique to the source of the activity (such as fees, adjustments, and so on). 15509778
ach_transaction_id A unique ID for an ACH transaction. 22528
external_trans_id Non-Galileo id number for a transaction. 483494-4443-455454
hold_days The number of days on a hold. SPecific to a pending payment, usually due to load limt violations. 0
status In getPaymentHistory(), the status of the payment. P
status_description In getPaymentHistory(), a spelled-out status of the payment. Processed
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 getPaymentHistory
# and return the json response.

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

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

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

$endpoint = 'https://**your-full-implementation-url**/getPaymentHistory';
$params = array('apiLogin'=>'AbC1234-9999', 'apiTransKey'=>'9845dk-39fdk3fj3-4483483478', 'transactionId'=>'45k-dk3fj3-44478', 'accountNo'=>'074103447228', 'startDate'=>'2016-01-01', 'endDate'=>'2016-02-01');

$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 getPaymentHistory 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&accountNo=074103447228&startDate=2016-01-01&endDate=2016-02-01");
WebRequest request = WebRequest.Create("https://**your-full-implementation-url**/getPaymentHistory");
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 getPaymentHistory call
# and print the json response.

require 'uri'
require 'net/http'

uri = URI("https://**your-full-implementation-url**/getPaymentHistory")
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', accountNo: '074103447228', startDate: '2016-01-01', endDate: '2016-02-01'}.to_json
response = https.request(request)
puts response