Custom Program
createPayment()
This method enables the loading of funds to a customer account. The createPayment() method utilizes Galileo's limit and velocity verification engine and will return response information related to any limit or velocity violations.
Load Limit and Velocity Response
In the event of a load limit or velocity violation, the createPayment() method will return a response status code 26 and elements 'limit_error', 'limit_id', and 'limit_response_code' in the 'response_data' section. The 'limit_id' is an integer identifier that is to be used in trouble shooting limit and velocity violation configuration. The 'limit_response_code' values are enumerated below.
Note: A payment created using this method will not show up in a getAccountOverview() call until after several seconds have elapsed (this applies to both createAdjustment() and createPayment()).
Limit Response Codes
Return code Description
L101 Load amount is at maximum allowed amount, but is less than amount requested.
L201 Load amount is 0.0. Maximum load amount violated.
L301 Load amount is 0.0. No load can be done. Amount loaded for given period already equals or exceeds maximum amount.
L302 Load amount and previous load amount for given period will equal maximum amount but is less than total amount within time period.
L401 Load amount is 0.0. No load can be done. The maximum number of transactions are exceeded.
L501 Load amount is 0.0. No load can be done. Maximum balance has already been reached.
L502 Load amount and previous load amount will equal maximum balance but is less than amount requested.
L601 Load amount is 0.0. No load can be done. Maximum balance has already been reached.
L602 Load amount and previous load amount will equal maximum balance but is less than amount requested.
L603 This is an excluded account balance.
L701 Usage count has already been exceeded.
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).
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'.
type Yes String

2 alphanumeric characters

2

Payment types are configurable per client. Contact your account representative to determine which types you have implemented.
description No String Alphanumeric and punctuation One time payroll load. Transaction description.
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 1
  • 0=Galileo Location ID
  • 1=Partner Location ID
  • 2=Don't Validate
verifyOnly No Boolean 0 or 1 0 If a value of '1' is passed, the parameter data will be tested only. No transaction will be committed.
providerAssessedFee No Number

Monetary amount greater than 0.

2.50

Fee amount assessed by the API consumer. Value passed to Galileo only for informational purposes.
Status Codes
Status Code description
0 Success
2 Invalid parameter(s)
12 Invalid customer account
24 Duplicate transaction
25 Invalid type
26 Load limit violation
100 Success (Verify)
408-01 Success -- partial limit violation.
408-02 Success -- delayed payment.
-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-02 13:41:41</system_timestamp>
   <response_data>
     <old_balance>191.6</old_balance>
     <new_balance>196.6</new_balance>
     <fee_amount>0</fee_amount>
     <payment_trans_id>2181409</payment_trans_id>
     <transaction_id>Ve8mEK6jUKulAMy7xYGu</transaction_id>
   </response_data>
   <processing_time>1.288</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>
old_balance The balance on the account before the transaction. 186.6
new_balance The balance on the account after the transaction. 191.6
fee_amount Numeric amount. Data type can be float or integer depending on if the amount is a whole dollar amount. Example values: '550', '550.21' 0
payment_trans_id Galileo generated card payment or load transaction integer ID. 2181409
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 createPayment
# and return the json response.

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

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

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

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

require 'uri'
require 'net/http'

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