The addAccount() method can be used to add accounts (products) such as savings, overdraft, virtual (no card), virtual card, or personalized for a customer.

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
prodId Yes Integer Integer Product ID 501
location No String Must be a number if type is 0. Must be less than 15 if type is 1. Unique location identifier. See location types. a455-3483
locationType No Integer 0, 1, or 2
  • 0=Galileo Location ID
  • 1=Partner Location ID
  • 2=Don't Validate
sharedBalance Conditional Boolean 0 or 1 Define whether or not an additional account will share the balance with the primary. 0=false, 1=true. This option is only available with virtual card and personalized product types. 1
Status Codes
Status Code Description
0 Success
2 Invalid parameter(s)
12 Invalid Account
24 Duplicate transaction
28 Product not allowed for this provider.
456-01 Product not supported.
456-02 Customer account balance is not sufficient.
456-03 Customer already has this product.
456-04 Cannot add this product as a savings account for this card.
456-05 The primary account is marked ineligible for this product.
-1 Indicates that the application record failed to update or return.
<?xml version="1.0" encoding="UTF-8"?>
   <system_timestamp>2011-03-21 13:40:50</system_timestamp>
     <provider_timestamp>2013-02-06 10:10:10</provider_timestamp>
Response Description Example Value
status_code The status of the response. 0
status The condition of a process or response (such as embossed card, account, freeze, and so on). Success
system_timestamp A system generated timestamp. 2011-10-07 10:25:07
response_data A structure for the response data. It can be empty but usually will contain information. response_data
pmt_ref_no A Galileo generated account number. 074129973470
product_id Galileo generated integer. 123
galileo_account_number Galileo generated integer account number, also known as balance ID. 935686
processing_time The time elapsed in processing the transaction. 0.973
echo A data 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 addAccount
# and return the json response.

curl -d '{"transactionId":"45k-dk3fj3-44478", "accountNo":"074103447228", "prodId":"501"}' \ 
-H "response-content-type: json" \ 
-H "Authorization: Bearer **your-access-token**" \ 
                    // The following Java code will make a addAccount 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("prodId", "501");
            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 addAccount
# 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', 'prodId': '501'}
r ='', data=payload, headers=headers)
                    // The following PHP code will make a addAccount call
// and prints the json response.

$endpoint = '';
$params = array('transactionId'=>'45k-dk3fj3-44478', 'accountNo'=>'074103447228', 'prodId'=>'501');

$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 addAccount 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 addAccount 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', prodId: '501'}.to_json
response = https.request(request)
puts response