Custom Program
createAchTransaction()
Initiate an ACH transfer from a customer account to a pre-defined bank account. The pre-defined bank account can be added via the createAchAccount() end point.
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-39fkk3fj3-483357

Unique transaction identifier (generated by provider). There are rare circumstances where allowed characters are more limited. Refer to individual method definitions for any variances.
Code Example - API: Intserv; Endpoint: createAchTransaction 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.
amount Yes Amount

Monetary amount 0 or greater.

25.50

Currency amounts passed as whole or fractional amounts, examples: '100.00', '100', or '100.73'.
description No String

Alphanumeric and punctuation

One time payroll load.

Optional description of the ACH transfer. 30 characters or less.
debitCreditIndicator Yes String

D or C

D

If no value is passed the default value of 'D' for a debit transaction is assumed. C=Credit, D=Debit
Status Codes
Status Code description
0 Success
2 Invalid parameter(s)
12 Invalid customer account
413-01 ACH account not found.
413-02 Insufficient balance
24 Duplicate transaction
-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:16:04</system_timestamp>
   <response_data>
     <balance>1847.07</balance>
     <ach_transaction_id>22528</ach_transaction_id>
   </response_data>
   <processing_time>0.521</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 A status response in human readable form. 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>
  <balance></balance>
  <ach_transaction_id>
  </ach_transaction_id>
</response_data>
balance The amount of money in a savings or checking account. 5.59
ach_trans_id A unique ID for a ACH transaction. 22528
processing_time The time elapsed in processing the transaction. 1.723
echo 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. Ve8mEK6jUKulAMy7xYGu
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 createAchTransaction
# and return the json response.

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

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

$endpoint = 'https://**your-full-implementation-url**/createAchTransaction';
$params = array('apiLogin'=>'AbC1234-9999', 'apiTransKey'=>'9845dk-39fdk3fj3-4483483478', 'transactionId'=>'45k-dk3fj3-44478', 'accountNo'=>'074103447228', 'achAccountId'=>'354656', 'amount'=>'25.50', 'debitCreditIndicator'=>'D');

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

require 'uri'
require 'net/http'

uri = URI("https://**your-full-implementation-url**/createAchTransaction")
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', amount: '25.50', debitCreditIndicator: 'D'}.to_json
response = https.request(request)
puts response