Create a bill payment transaction related to an existing billing registration.
Parameter Required Data type Pattern Notes Example value
transactionId Yes String 60 characters or less 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. 9845dk-39fdk3fj3-4483483478
accountNo Yes String PAN or PRN Can be either a PAN (the 16 digit card number) or PRN (a unique 12 digit account identifier). 074103447228
amount Yes Amount Monetary amount 0 or greater. Currency amounts passed as whole or fractional amounts, examples: '100.00', '100', or '100.73'. 25.50
billerId Yes Integer Positive integer value Positive integer value of a customer configured biller. Biller IDs are retrieved using the getBillers() method. 37323
processDate No Date YYYY-MM-DD Date in the future to process the payment. 2016-01-01
memo No String Alphanumeric including punctuation characters; up to 50 characters in length. Character string to be printed in the memo fields of printed paper checks. For baby sitting
Status Codes
Status Code description
0 Success
2 Invalid parameter(s)
12 Invalid customer account.
24 Duplicate transaction
433-01 Unknown biller
433-02 Invalid payment date.
433-03 Invalid amount
433-04 Transaction amount exceeds configured maximum bill payment amount.
433-05 Transaction amount plus fee exceeds customer available balance.
-1 Indicates that the application record failed to update or return.
<?xml version="1.0" encoding="UTF-8"?>
   <system_timestamp>2011-10-07 10:25:07</system_timestamp>
     <provider_timestamp>2013-02-06 10:10:10</provider_timestamp>
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>
billpay_transaction_id An ID assigned to a bill payment transaction. 4251
old_balance The balance of the account before the payment is processed. 1796.08
new_balance The balance on the account after the payment is processed. 1786.08
process_date The date the payment was processed. 2018-02-28
fee_amount The fee amount assessed for this bill payment record. .45
maximum_amount In createBillPayment(), a dollar limit on each bill-pay transaction. 250
processing_time The time elapsed in processing the transaction. 1.723
echo A structure that displays transaction ID information. <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 createBillPayment
# and return the json response.

curl -d '{"transactionId":"45k-dk3fj3-44478", "accountNo":"074103447228", "amount":"25.50", "billerId":"37323"}' \ 
-H "response-content-type: json" \ 
-H "Authorization: Bearer **your-access-token**" \ 
                    // The following Java code will make a createBillPayment call
// and print the json response.

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");
           params.put("amount", "25.50");
           params.put("billerId", "37323");
            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(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
            byte[] postDataBytes = postData.toString().getBytes("UTF-8");

            URL url = new URL("");

            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestProperty("response-content-type", "json");
            conn.setRequestProperty("Authorization", "Bearer **your-access-token");
            conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));

            String xmlOutput;

            Reader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
            for (int c; (c = >= 0;) {
        } catch (MalformedURLException e) {
        } catch (IOException e) {
                    # The following Python code will call createBillPayment
# 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', 'amount': '25.50', 'billerId': '37323'}
r ='', data=payload, headers=headers)
                    // The following PHP code will make a createBillPayment call
// and prints the json response.

$endpoint = '';
$params = array('transactionId'=>'45k-dk3fj3-44478', 'accountNo'=>'074103447228', 'amount'=>'25.50', 'billerId'=>'37323');

$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);
$json = new json_decode($result, true);

                    // The following C# code will make a createBillPayment call
// and print the json response.

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

byte[] data = Encoding.ASCII.GetBytes(
WebRequest request = WebRequest.Create("");
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();
                    # The following Ruby code will make a createBillPayment call
# and print the json response.

require 'uri'
require 'net/http'

uri = URI("")
https =, uri.port)
https.use_ssl = true
request =
request['response-content-type'] = 'json'
request['Authorization'] = 'Bearer **your-access-token**'
request.body = {transactionId: '45k-dk3fj3-44478', accountNo: '074103447228', amount: '25.50', billerId: '37323'}.to_json
response = https.request(request)
puts response