Custom Program
getFeeHistory()
Returns fee history for a customer account by date range.
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.
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 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>2017-08-15 10:16:54</system_timestamp>
   <response_data>
     <fee_count>3</fee_count>
     <page>1</page>
     <total_record_count>258</total_record_count>
     <number_of_pages>86</number_of_pages>
     <start_date>2012-01-01 00:00:00</start_date>
     <end_date>2013-01-01 23:59:59</end_date>
     <fees>
       <fee>
         <pmt_ref_no>074130918639</pmt_ref_no>
         <fee_id>22897859</fee_id>
         <fee_date>2012-09-20 00:53:19</fee_date>
         <amt>4.07</amt>
         <status>P</status>
         <status_description>Processed</status_description>
         <type>MON</type>
         <type_description>0203</type_description>
       </fee>
       <fee>
         <pmt_ref_no>074130918639</pmt_ref_no>
         <fee_id>22897709</fee_id>
         <fee_date>2012-09-19 19:16:05</fee_date>
         <amt>.25</amt>
         <status>P</status>
         <status_description>Processed</status_description>
         <type>TRD</type>
         <type_description>0029</type_description>
       </fee>
       <fee>
         <pmt_ref_no>074130918639</pmt_ref_no>
         <fee_id>22895177</fee_id>
         <fee_date>2012-09-18 01:08:44</fee_date>
         <amt>.88</amt>
         <status>P</status>
         <status_description>Processed</status_description>
         <type/>
         <type_description>0203</type_description>
       </fee>
     </fees>
   </response_data>
   <processing_time>0.45</processing_time>
   <echo>
     <transaction_id>437521214</transaction_id>
     <provider_transaction_id>GAAP test</provider_transaction_id>
     <provider_timestamp>2017-08-15 10:16:19</provider_timestamp>
   </echo>
</response>
Response Description Example value
status_code The status of the response. 0
status The condition of a process or response (such as embossed card, account, freeze, and so on). Success
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>x</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. 2
number_of_pages Total number of pages in the accounts list display. 1
start_date Start date of the response. 2010-10-01 00:00:00
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. 2010-11-01 23:59:59
sums A data structure that contains unsettled, settled, adjustment, fee, and payment information. <sums>
  <unsettled>x</unsettled>
  <settled>x</settled>
  <adjustment>x</adjustment>
  <fee>x</fee>
  <payment>x</payment>
</sums>
unsettled The total sum of transactions that have not been settled yet. -16.99
settled The ammunt of a singled transaction that has been settled. 0
adjustment The amount a sums total has changed. 0
fee An ammount charged for a service. 0
transactions A data element to display meta information for one or more transactions. <transactions>
  <transaction>x</transaction>
</transactions>
transaction A data element to display the information associated with a transaction. <transaction>
  x
</transaction>
is_savings Flags the transaction as being made to a savings account or not. 1
deny_code A code associated with a reason that a transaction is denied. 51 (2 or 3 alphanumeric)
disputable Flag to allow a disputation on a deny. 0
details Information on a transaction or authorization. IVR Fee
act_type Activity type of the transaction. AD
act_type_description Human readable description of an activity type. Visa Authorization
post_ts The time stamp of a posted transaction. 2012-09-19 14:04:03
amt A fee or transaction charge. .5
source_id A code unique to the source of the activity (such as fees, adjustments, and so on). 51010054
type A classification of the activity sub-type. PM
type_description The meaning of the type code. Visa Authorization
trans_code The combination of act_type and otype. For instance, if act_type is an adjustment, act_type would be AD, otype could be MC and the value in transcode would be 'ADMC'. VIA
arn Id for a trans used with some association networks. Long random string
merchant_id A unique number assigned to a merchant location or terminal to identify that merchant with the association. 38438338338339853
external_trans_id Non-Galileo id number for a transaction. 19681089
calculated_balance The balance on an account after a transaction is complete. 210.25
ach_transaction_id A unique ID for an ACH transaction. 22528
auth_ts Time stamp of an authorization. 2010-11-01 04:13:25
prior_id Represents the original auth_id and indicates that the current item is a reversal. Integer type value. 5094
card_id Integer identifier of the card as found in the raw data file (RDF). Unique identifier for a PAN. 12345
formatted_merchant_desc A parsed authorization merchant description. REDBOX *DVD RENTAL, 866-733-2693, IL
network_code A code that identifies the card issuer. V=Visa M=MC D=MC Debit v
pmt_ref_no A Galileo generated account number. 008103023340
mcc_code The merchant category code associated with the transaction. 4331
local_amt Amount of the transaction based on local currency. Used when multiple currency codes are in use. 0874
local_curr_code Currency code in use locally. Used when multiple currency codes are in use. 840
settle_amt The amount of a single transaction that has been settled. Required if transaction and settlement currencies are different. Used when multiple currency codes are in use. 1524
settle_curr_code Currency code in use for the settle_amt. Used when multiple currency codes are in use. Required if transaction and settlement currencies are different. 840
billing_amt The billing amount of a transaction. Used when multiple currency codes are in use. 59
billing_curr_code Currency code in use for the billing_amt. Used when multiple currency codes are in use. 840
pmt_ref_no A Galileo generated account number. 008103023340
act_id Id number assigned to an account. 44777870
act_type Activity type of the transaction. (See Activity Types in the documentation). FE
post_ts The time stamp of a posted transaction. 2012-09-19 14:04:03
amt A fee or transaction charge. .5
details Information on a transaction or authorization. Adjustment
description Definition of what a transaction was for. Fee
source_id A code unique to the source of the activity (such as fees, adjustments, and so on). 5227662
bal_id Integer-based account number, also known as balance ID. 5757170
prod_id Galileo generated product Id of the account. 207
trans_code The combination of act_type and otype. For instance, if act_type is an adjustment, act_type would be AD, otype could be MC and the value in transcode would be ADMC. FE0401
merchant_id A unique number assigned to a merchant account to identify it throughout the course of processing activities. 38438338338339853
terminal_id A unique number assigned to a specific point-of-origination terminal or workstation. 43553434
external_trans_id Non-Galileo id number for a transaction. 483494-4443-455454
original_auth_id The id of the originating authorization. 374634555
processing_time The time elapsed in processing the transaction. 1.723
transaction_id A number that represents a transaction. 99367542
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 getFeeHistory
# 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**/getFeeHistory
                
                    // The following Java code will make a getFeeHistory 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**/getFeeHistory");

            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 getFeeHistory
# 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**/getFeeHistory', data=payload, headers=headers)
try:
    print(r.json())
except:
    print(r.status_code)
                
                    // The following PHP code will make a getFeeHistory call
// and prints the json response.

$endpoint = 'https://**your-full-implementation-url**/getFeeHistory';
$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 getFeeHistory 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**/getFeeHistory");
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 getFeeHistory call
# and print the json response.

require 'uri'
require 'net/http'

uri = URI("https://**your-full-implementation-url**/getFeeHistory")
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