Custom Program
runCip()
This method allows the API consumer to run the CIP process on a customer that has already been enrolled.
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).
Status codes
Status Code description
0 Success
2 Invalid parameter(s)
30 Invalid enrollment transaction
31 Unknown or unregistered transaction
461-01 Invalid application
461-02 Product not configured to run CIP.
461-03 Product does not have any aggregators configured.
461-04 Could not find product.
-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>2012-06-28 15:32:17</system_timestamp>
   <response_data>
     <appId>074129975749</appId>
   </response_data>
   <processing_time>0.882</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_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>
  x
</response_data>
cip_result_indicator A flag that indicates that a CIP result exists in the response. Y
cip_result A data structure that contains data fields around a CIP result. <cip>
  x
</cip>
aps Acts as a logical separator for status and model information. <aps>
  <status>
  <model_results>
</aps>
status The condition of a process or response (such as embossed card, account, freeze, and so on). Pass
model_results Acts as a logical separator between models. <model_results>
  <model>
</model_results>
model Acts as a logical separator. Relates to the template used to verify the identity of the card holder data sent to the createAccount end point. <model>
  <model_name>
  <model_version>
  <code>
</model>
model_name The details of the ID verification model, how it is scored, and what criteria are used for it. Relates to the template used to verify the identity of the card holder data sent to the createAccount end point. (This information is proprietary information shared between the CIP vendor and the issuing bank). BancorpPIDC
model_version Version number for the model used. 1
code In a model run, lists the pass number. Pass A
text Plain text description of the code value. SSN Matches Address
processing_time The time elapsed in processing the transaction. 0.973
echo A data structure that displays transaction id information. <echo>
  x
</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 runCip
# and return the json response.

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

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

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

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

require 'uri'
require 'net/http'

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