Custom Program
setAccountFeature()
The setAccountFeature() method is used to make miscellaneous customer account changes. Currently this method allows for the enabling or disabling of bill payment reporting and paper statement delivery to the customer. The method also allows for product ID switching. The featureType and featureValue parameters define what action is taken by the method.
The following special characters are available in names:
  • Space
  • - (hyphen)
  • . (period)
  • ' (apostrophe)
  • , (comma)
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).
featureType Yes Integer Positive integer value 3
  • 1=Bill payment reporting
  • 2=Paper statements
  • 3=Change product ID
  • 5=Express shipping
  • 6=Allow card not present transactions
  • 7=ACH early access
  • 8=Allow international transactions
  • 9=Disable ATM withdrawals
  • 10=Disable cash advance withdrawals
  • 11=Enable or disable savings round up
  • 13=Mark customer as High Risk
  • 14=Disable Galileo Dynamic Fraud Rules
  • 15=Overdraft Credit Limit
  • 16=Custom Card ID and must include |A at end of ID
  • 17=Overdraft opt in or out
featureValue Yes String Conditional by feature type 1000
  • 1=Y or N
  • 2 =Y or N
  • 3=Product ID number (integer)
  • 5=Y (enabled) or N (disabled)
  • 6= Y or N
  • 7= Y or N
  • 8=Y or N
  • 9=Y or N
  • 10=Y or N
  • 11=Y or N
  • 13=Y or N
  • 14=Y or N
  • 15=decimal number no commas or dollar sign
  • 16=a9ykshiu|A (this is an example only)
  • 17=E=Eligible, P=Opt in, I=Ineligible
startDate No Date YYYY-MM-DD 2016-01-01 The beginning date for the date range.
endDate No Date YYYY-MM-DD 2016-02-01 The end date for the date range; Must be greater than or equal to the startDate.
Status Codes
Status Code description
0 Success
2 Invalid parameter(s)
12 Invalid customer account
426-01 Invalid feature type
426-02 Feature not allowed for account product.
426-03 Feature value does not match the configured format for the feature type.
426-04 Product cannot be switched to the same product.
426-05 Product cannot be switched to an unauthorized product.
-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 14:32:43</system_timestamp>
   <response_data>
     <customer_profile>
       <first_name>Chris'topher</first_name>
       <middle_name>Zelina</middle_name>
       <last_name>Vela</last_name>
       <address_1>42325 Cypress Crt</address_1>
       <address_2>Apt. 69</address_2>
       <city>Sandy</city>
       <state>NE</state>
       <postal_code>68753</postal_code>
       <country_code>840</country_code>
       <phone>5464206369</phone>
       <mobile_phone>3607026015</mobile_phone>
       <email>jvela1@randomizer.com</email>
       <ship_to_address>
         <address_1>123 Maple Drive</address_1>
         <address_2>#33</address_2>
         <city>Calgary</city>
         <state>AB</state>
         <postal_code>M5J2B6</postal_code>
         <country_code>124</country_code>
       </ship_to_address>
       <express_mail/>
       <related_accounts/>
     </customer_profile>
   </response_data>
   <processing_time>0.274</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 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>
customer_profile A data structure that contains information about a customer. <customer_profile>
  <first_name>Chris'topher</first_name>
  <middle_name>Zelina</middle_name>
  <last_name>Vela</last_name>
  <address_1>42325 Cypress Crt</address_1>
  <address_2>Apt. 69</address_2>
  <city>Sandy</city>
  <state>NE</state>
  <postal_code>68753</postal_code>
  <country_code>840</country_code>
  <phone>5464206369</phone>
  <mobile_phone>3607026015</mobile_phone>
  <email>jvela1@randomizer.com</email>
  <ship_to_address>
  <address_1>123 Maple Drive</address_1>
  <address_2>#33</address_2>
  <city>Calgary</city>
  <state>AB</state>
  <postal_code>M5J2B6</postal_code>
  <country_code>124</country_code>
  </ship_to_address>
  <express_mail/>
  <related_accounts/>
</customer_profile>
first_name A person's first name as listed on the account. Chris'topher
middle_name A person's middle name as listed on the account. Zelina
last_name A person's last name as listed on the account. Vela
address_1 Street and residence number on the account. 42325 Cypress Crt
address_2 Additional address information on the account. Apt. 12
city City for address information. Sandy
state State for address information. NE
postal_code A postal code for the address information. 68753
country_code The ISO 3166 international standard for country codes. Used to identify a country as a part of a profile. 840
phone The main phone number on the account. 5464206369
mobile_phone The mobile phone number of a person as listed in a profile. 3607026015
email The email address on a profile. jvela1@randomizer.com
ship_to_address A data structure that displays an address used for shipping. <ship_to_address>
  <address_1>123 Maple Drive</address_1>
  <address_2>#33</address_2>
  <city>Calgary</city>
  <state>AB</state>
  <postal_code>M5J2B6</postal_code>
  <country_code>124</country_code>
</ship_to_address>
express_mail Does the profile use express mail service? N
related_accounts A data element that lists accounts related to a customer profile. <related_accounts>
x
</ related_accounts>
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 setAccountFeature
# and return the json response.

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

            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 setAccountFeature
# 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', 'featureType': '3'}
r = requests.post(url='https://**your-full-implementation-url**/setAccountFeature', data=payload, headers=headers)
try:
    print(r.json())
except:
    print(r.status_code)
                
                    // The following PHP code will make a setAccountFeature call
// and prints the json response.

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

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

require 'uri'
require 'net/http'

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