Custom Program
modifyAchAccount()
Modify an existing customer ACH account. The routing (achRoutingNo) and account (achAccountNo) numbers can be submitted more than once on the same program, as long as the information is not on the same XID (account identifier).
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).
achAccountId Yes Integer

Positive integer value

354656

Numeric identifier for ACH accounts. This identifier is returned in both the createAchAccount() and getAchAccounts() methods.
name Yes String

Alphanumeric string up to 22 characters in length.

my checking account

The name of the ACH account. The customer would potentially see this name in the cardholder web application. This name is for the customer's convenience.
type No String

Must be 'C', 'S', or 'M'

C

Describes the type of account that is being transferred to.
  • C=Checking
  • S=Savings
  • M=Money Market
achAccountNo No Number

Numeric string of up to 22 characters in length.

4483434234348

Numeric bank account number.
achRoutingNo No Number

Numeric 9 digit routing number including check digit.

483292838

Standard ACH routing number.
location No String

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

a455-3483

Unique location identifier. See location types.
locationType No Integer

0, 1, or 2

0

0=Galileo location ID

1=Partner location ID

2=Do not validate

Status Codes
Status Code description
0 Success
2 Invalid parameter(s)
12 Invalid customer account
424-01 ACH account not found.
424-02 ACH account already exists.
-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-24 14:03:26</system_timestamp>
   <response_data>
     <ach_account_id>13836</ach_account_id>
   </response_data>
   <processing_time>0.181</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>
Code Snippet

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

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

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

$endpoint = 'https://**your-full-implementation-url**/modifyAchAccount';
$params = array('apiLogin'=>'AbC1234-9999', 'apiTransKey'=>'9845dk-39fdk3fj3-4483483478', 'transactionId'=>'45k-dk3fj3-44478', 'accountNo'=>'074103447228', 'achAccountId'=>'354656', 'name'=>'my checking account');

$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 modifyAchAccount 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&achAccountId=354656&name=my checking account");
WebRequest request = WebRequest.Create("https://**your-full-implementation-url**/modifyAchAccount");
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 modifyAchAccount call
# and print the json response.

require 'uri'
require 'net/http'

uri = URI("https://**your-full-implementation-url**/modifyAchAccount")
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', achAccountId: '354656', name: 'my checking account'}.to_json
response = https.request(request)
puts response