updateAccount()
Updates the cardholder's personal information for an existing account. Only required parameters and parameters to be modified must be provided. Parameters that are not being modified can be left blank.
Nullifying Data Elements
The The following updateAccount() parameters allow for the value 'null' to passed: firstName, middleName, lastName, address1, address2, city, state, postalCode, primaryPhone, otherPhone, mobilePhone, webUid, secretQuestion, secretAnswer, and mailBounced. When passing the string 'null' as the value for any of the above parameters, the respective account data element will be updated to a value of null. A provider configuration is required for nullifying customer email address.
Updating Customer ID
Primary customer ID (id, idType) can conditionally updated with the updateAccount() method. Primary ID (id, idType) can be updated as long as the respective customer account has not passed CIP. Secondary customer ID can be updated regardless of customer CIP status. 
Updating Ship-to Address
The When updating the ship-to address for a customer the elements shipToAddress1, shipToCity, shipToState, and shipToPostalCode are required. The shipToAddress2 is optional. The current customer ship-to address data can be retrieved in the getAccountCards() method call. This value should be passed before any new card is to be sent to that address. The shipto address is only used for the next shipment, and not subsequent shipments. In the United States for compliance, you must maintain a physical address for the cardholder and the primary address. Shipto is designed for temporary use for a card.
Parameters
Parameter Required Data type Pattern Notes
transactionId Yes String

60 characters or less

9845dk-39fdk3fj3-4483483478

Unique transaction identifier (generated by provider). There are rare circumstances where allowed characters are more limited. Refer to individual method definitions for any variances.
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).
firstName No String

Letters and spaces, maximum length -- 30 characters.

Ed

Cardholder's first name
middleName No String

Letters and spaces. Maximum length - 30 characters.

W

Cardholder's middle name
lastName No String

Letters and spaces. Maximum length -- 30 characters.

Harley

Cardholder's last name
dateOfBirth No Date

YYYY-MM-DD, Minimum age per the business rules for the program.

1980-01-01

Cardholder's birth date
address1 No String

Maximum length -- 30 characters. Adding a PO BOX will only work when the EAPOB (product) parameter is set to allow it on the product ID you are working with.

33 Maple Street

Cardholder's address line 1.
address2 No String

Maximum length -- 30 characters

#4B

Cardholder's address line 2
city No String

Letters and spaces. Maximum length -- 20 characters.

Salt Lake City

Cardholder's city
state No String Valid 2 character state abbreviation UT Cardholder's state
postalCode No String

12345 or 12345-1234 (US), K1A-1A1 (CA)

84121

Cardholder's postal code (zip code)
countryCode No Number

Three digit country code

840

Three digit ISO numeric UN M49 country code; example USA=840, Canada=124.
primaryPhone No Number

Valid phone number

8013656050

Cardholder's primary phone number
otherPhone No Number

Valid phone number

8013656050

Cardholder's other phone number
mobilePhone No Number

Valid phone number

8013656050

Cardholder's mobile phone number
mobileCarrierId Conditional Integer

Configurable list

8

Cardholder's mobile carrier--configurable list
email No String

Email Address

user@fakedomain.com

Cardholder's email.
webUid No String

Must be unique. Start with a letter. Only letters and numbers. Case insensitive.

a4j9KH3kkdh

Cardholder website username
webPwd No String

At least 8 characters and have an uppercase character, lower case character and a number.

eharley

Cardholder website password.
secretQuestion No String

Letters, spaces and '?'. Maximum length -- 50 characters.

What was the name of your first pet?

Secret Question
secretAnswer No String

Letters and spaces. Maximum length -- 50 characters.

Larry

Secret Answer
id No String

See section on Id Types.

123456789

Unique identifier for Cardholder, usually SSN (see Appendix Enumerations section on Customer Id Types).
idType Conditional Integer

See section on Id Types.

2

Which type is parameter id (see Appendix Enumerations section on Customer Id Types).
id2 No String

See section on Id Types. 123456789012|UT|

12/25/2020

Unique identifier for Cardholder, usually SSN (see Appendix Enumerations section on Customer Id Types).
idType2 Conditional Integer

See section on Id Types.

1

Which type is parameter "id2" (see Appendix Enumerations section on Customer Id Types).
shipToAddress1 No String

Maximum length -- 30 characters

33 business parkway

Ship to address line 1.
shipToAddress2 No String

Maximum length -- 30 characters

Suite 400

Ship to address line 2.
shipToCity No String

Maximum length -- 30 characters

Salt Lake City

Ship to city.
shipToState No String

Valid 2 character state or province abbreviation.

UT

Ship to state.
shipToPostalCode No String

Valid postal code

841213333

Ship to postal code (zip code).
shipToCountryCode No Number

Three digit country code

840

3 digit ISO numeric UN M49 country code; Example USA=840, Canada=124.
locale No String

Accepted values = "en_US", "es_US", "fr_CA", and "en_CA" .

en_US

Sets customer language preference. Default is "en_US"
mailBounced No String Accepted values = 'Y' (Yes) or 'N' (No) Flags customer account to show that a postal mailing has been returned to sender.
location No String

Must be a number if type is 0. Must be less than 15 if type is 1.

1

Unique location identifier. See location types.
locationType No Integer

0, 1, or 2

1

0=Galileo Location ID 1=Partner Location ID 2=Don't Validate
occupation No String

Up to 60 character alphanumeric including space, _, -, ., @, &, and comma.

Project Manager

Cardholder occupation
incomeSource No String

Up to 60 character alphanumeric including space, _, -, ., @, &, and comma.

Kroger Food & Drug

Cardholder employer name or income source
Status Codes
Status Code description
0 Success
1 Missing parameters
2 Invalid parameter(s)
12 Invalid customer account
415-01 Account information could not be updated at this time. Please try again later.
415-02 Customer primary ID can not be modified when CIP is passed.
415-03 All elements except shipToAddress2 required for ship to address.
415-04 Your provider configuration does not allow the nullifying of email address.
-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-10 14:02:04</system_timestamp>
   <response_data>
     <customer_profile>
       <first_name>Jackie</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>
       <occupation>Project Manager</occupation>
       <income_source>Kroger Food and Drug</income_source>
       <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.51</processing_time>
   <echo>
     <transaction_id>275023244</transaction_id>
     <provider_transaction_id>GAAP test</provider_transaction_id>
     <provider_timestamp>2017-08-10 14:00:43</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>Jacob</first_name>
  x
</customer_profile>
address_1 Street address line 1. 42325 Cypress Crt
first_name A person's first name. Jackie
middle_name A person's middle name. Zelina
last_name A person's last name. Vela
city City for address information. Calgary
state State for address information. AB
postal_code A postal code for the address information. M5J2B6
country_code The ISO 3166 international standard for country codes. Used to identify a country as a part of a profile. 124
phone The main phone number on the account. 5464206369
phone A mobile phone number on the account. 5464206368
email The email address on a profile. nonone@nowhere.com
occupation The occupation of a person listed on a profile. Electrical Engineer
income_source How the person on a profile earns an income. Kroger Food and Drug
ship_to_address A data structure that contains address information for shipping. <ship_to_address>
  <address_1>123 Maple Drive>/address_a1>
  x
<ship_to_address>
express_mail Does the profile use express mail service? N
related_accounts A data structure that lists accounts related to a customer profile. <related_accounts>
  x
</related_accounts>
transaction_id A number that represents a transaction. 12345a
provider_timestamp Store a related timestamp for reporting and troubleshooting purposes. 2013-02-06 10:10:10
provider_transaction_id Secondary transaction identifier (generated by a provider). 77bb
Code Snippet

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

curl -d '{"transactionId":"45k-dk3fj3-44478", "accountNo":"074103447228"}' \ 
-H "response-content-type: json" \ 
-H "Authorization: Bearer **your-access-token**" \ 
-X POST https://sandbox.galileo-ft.com/intserv/4.0/updateAccount
                
                    // The following Java code will make a updateAccount 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("transactionId", "45k-dk3fj3-44478");
           params.put("accountNo", "074103447228");
            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://sandbox.galileo-ft.com/intserv/4.0/updateAccount");

            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("POST");
            conn.setRequestProperty("response-content-type", "json");
            conn.setRequestProperty("Authorization", "Bearer **your-access-token");
            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 updateAccount
# and print the json response.

import requests
headers = {'response-content-type': 'json', 'Authorization': 'Bearer {}'.format(**your-access-token**)}
payload = {'transactionId': '45k-dk3fj3-44478', 'accountNo': '074103447228'}
r = requests.post(url='https://sandbox.galileo-ft.com/intserv/4.0/updateAccount', data=payload, headers=headers)
try:
    print(r.json())
except:
    print(r.status_code)
                
                    // The following PHP code will make a updateAccount call
// and prints the json response.

$endpoint = 'https://sandbox.galileo-ft.com/intserv/4.0/updateAccount';
$params = array('transactionId'=>'45k-dk3fj3-44478', 'accountNo'=>'074103447228');

$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',
    'Authorization: Bearer **your-access-token**'
));
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 updateAccount call
// and print the json response.

using System;using System.IO;
using System.Net;
using System.Text;

byte[] data = Encoding.ASCII.GetBytes(
    "transactionId=45k-dk3fj3-44478&accountNo=074103447228");
WebRequest request = WebRequest.Create("https://sandbox.galileo-ft.com/intserv/4.0/updateAccount");
request.Method = "POST"\;
request.ContentLength = data.Length;
request.Headers.Add("response-content-type", "json");
request.Headers.Add("Authorization","Bearer **your-access-token**");
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 updateAccount call
# and print the json response.

require 'uri'
require 'net/http'

uri = URI("https://sandbox.galileo-ft.com/intserv/4.0/updateAccount")
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['Authorization'] = 'Bearer **your-access-token**'
request.body = {transactionId: '45k-dk3fj3-44478', accountNo: '074103447228'}.to_json
response = https.request(request)
puts response