Integration Guide, Preparation, Workflow, and API Reference.
Preparing for your merchant integration will include the following prerequisite items be implemented within your merchant environment. Regardless of your implementation type, services, or integration plan these items will be critical to the success of your integration with the GIDX Platform.
The merchants system needs to have a solution for data management (Database, Tables, Stored Procedures, Views, etc.) so that you can store, track, and manage the information and interaction between the merchants environment and the GIDX Platform.
We have a "best practice" schema designed for this data store environment which can viewed below. This design model can be modified based on any existing data store design that may already be in place within your environment.
Please review the information below regarding the set-up and configuration of your server environment as well as your account within the GIDX Portal.
Access to the most common code base for integration can be found within the GitHub and NuGet repositories following the links below.
The following steps will help you with accessing your system credentials and setting up your account for use of the GIDX Environment.
If your development environment (or later your production environment) is not hosted behind a static IP address, like in the case of load-balancers etc. you can use the following instructions to set your system up securly for restricted IP access.
AWS: Amazon Web Services HostingMicrosoft Azure: Cloud Web Services / Hosting
Google: Cloud Web Services / Hosting
The merchants client side interface has several HTML, META TAG, and JavaScript related requirements that must be in place in order for the GIDX Service to operate properly.
To view a completed sample HTML file click the button below. This example has all of the HTML, META TAG, and JavaScript items within a single file format to use as a guide when building your own client side interface.
In order to properly integrate GIDX services you will need to collect data from the customers device. The two primary pieces of data that need to be collected from the customer for each visit that they make to your site/app are their current IP Address and their Device GPS data.
Customer Access Approval
The first thing you must do is get approval from the customer that you may access data from their device.
You can do this by calling the getCurrentPosition()
method using javascript and the browsers embeded Geo-Location API.
Learn more about this process by going to this page https://www.w3schools.com/html/html5_geolocation.asp.
The customers' device IP Address should be collected using server side code and accessing the information found in the browsers hearder-request to your server. The header value you should be accessing is the "X-Forwarded-For" value.
Device Data: Device GPSThe customers' Device GPS data should be collected using client side JavaScript Geo-Location API, you can learn more about this by going to https://w3c.github.io/geolocation-api/.
The function gidxServiceStatus(service, action, json)
provides real-time updates to the client interface regarding the customers activity during a Web Session.
An example of this function is in the HTML Code Example and the values passed into the function variables are listed below.
The gidxServiceStatus javascript function below is for !EXAMPLE ONLY! and contain variables specific to this example which may not be applicable to your specific code/implementation and may cause errors if you have not edited the information to match your specific scenario.
window.gidxServiceStatus = function (service, action, json) { if (json && json.length) { for (var i = 0; i < json.length; i++) { for (var key in json[i]) { if (json[i].hasOwnProperty(key)) { //Here you can look at the key and value to make decisions on what you would //like to do with the client side interface. var sItem = key; var sValue = json[i][key]; //Example if(sItem == "TransactionAmount"){ document.getElementById("DepositAmountDisplay").innerText(sValue); } } } } } };
The variables to work with in this function are the "service", "action", and "json" values.
Below is a list of the service, action, and corresponding json values that you could encounter during the Payment process of the WebCashier Service.
Service | Action | JSON | Example Data |
---|---|---|---|
cashierPaymentAmount-plate | start | UTCDateTime | Wed, 12 Nov 2016 00:01:19 GMT |
end | UTCDateTime | Wed, 12 Nov 2016 00:01:20 GMT | |
select | TransactionAmount | 50 | |
TransactionBonus | 10 | ||
cashierPaymentMethod-plate | start | UTCDateTime | Wed, 12 Nov 2016 00:01:19 GMT |
end | UTCDateTime | Wed, 12 Nov 2016 00:01:19 GMT | |
select | PaymentMethod | eCheck (ACH) | |
SelectAction | ExistingPaymentMethod | ||
AddNewPaymentMethod | |||
cashierAddMethod-plate | start | UTCDateTime | Wed, 12 Nov 2016 00:01:19 GMT |
end | UTCDateTime | Wed, 12 Nov 2016 00:01:19 GMT | |
select | SelectAction | AddAddress | |
cashierAddMethodAddress-plate | start | UTCDateTime | Wed, 12 Nov 2016 00:01:19 GMT |
end | UTCDateTime | Wed, 12 Nov 2016 00:01:19 GMT | |
cashierFinalize-plate | start | UTCDateTime | Wed, 12 Nov 2016 00:01:19 GMT |
end | UTCDateTime | Wed, 12 Nov 2016 00:01:19 GMT | |
cashierComplete-plate | start | UTCDateTime | Wed, 12 Nov 2016 00:01:19 GMT |
end | UTCDateTime | Wed, 12 Nov 2016 00:01:19 GMT |
Below is a list of the service, action, and corresponding json values that you could encounter during the Payment process of the WebReg Service.
Service | Action | JSON | Example Data |
---|---|---|---|
idInitiate-plate | start | UTCDateTime | Mon, 24 Jul 2017 22:48:27 GMT |
end | UTCDateTime | Mon, 24 Jul 2017 22:48:52 GMT | |
idValidation-plate | start | UTCDateTime | Mon, 24 Jul 2017 22:48:52 GMT |
end | UTCDateTime | Mon, 24 Jul 2017 22:49:25 GMT | |
idDocumentVerify-plate | start | UTCDateTime | Mon, 24 Jul 2017 22:49:25 GMT |
end | UTCDateTime | Mon, 24 Jul 2017 22:51:26 GMT | |
idAcctComplete-plate | start | UTCDateTime | Mon, 24 Jul 2017 22:48:27 GMT |
The function gidxServiceSettings()
is required so that you can control parts of the UX/UI of the WebSession service.
An example of this function is in the HTML Code Example and the variables set in this function are listed below.
window.gidxServiceSettings = function () { window.gidxContainer = "#GIDX_Service_Container"; window.gidxBuildTimer = false; window.gidxBuildSteps = false; };
The variables to work with in this function are "gidxContainer", "gidxBuildTimer", and "gidxBuildSteps".
true
or false
, setting the value to true
will add a timer to the UI that counts down from 20 minutes. This is the length of time that the customer has to complete the session service.gidxServiceStatus
function if you would like to display a heading for the customers current "step" in the session.
The function gidxErrorReport()
alerts you to any Errors/Issues stemming from UX/UI of the WebSession service.
An example of this function is in the HTML Code Example and the variables set in this function are listed below.
window.gidxErrorReport = function (error, errorMsg) { //error is the ID of the Error that is being fired. //errorMsg is the text description of the Error. };
The variables to work with in this function are "error" and "errorMsg". Below is the library of ErrorID and ErrorMsg you will receive from the service for both the WebCashier service and the WebReg (Customer Identity Verification) service. NOTE: On non-verified customers you may experience both of these services within the WebCashier CreateSession API call.
WebReg Service: WebReg -gidxErrorReport(error, errorMsg)
error
:errorMsg
:error
:errorMsg
:error
:errorMsg
:error
:errorMsg
:error
:errorMsg
:error
:errorMsg
:error
:errorMsg
:error
:errorMsg
:gidxErrorReport(error, errorMsg)
error
:errorMsg
:error
:errorMsg
:error
:errorMsg
:error
:errorMsg
:error
:errorMsg
:error
:errorMsg
:error
:errorMsg
:error
:errorMsg
:When using GIDX Platform Services the merchant will need to make decisions on how to assess Customers, Transactions, and Operations based on the Response, Callback, and Notification data provided; we refer to these decisions/actions as the "Merchant Rules".
An example of one of these Merchant Rules would be as follows...
Scenario: Customer Identify Verification
The ReasonCode value of the Response contains the following items ID-VERIFIED, LL-GEO-US-AL, ID-UA-19, DFP-HR, ID-EX
These ReasonCodes indicate that the customer...
ID-VERIFIED
LL-GEO-US-AL
ID-UA-19
DFP-HR
ID-EX
Based on these ReasonCodes the merchant will now need to decide how they would like proceed with this customer...
The customer's identity is Verified ID-VERIFIED
, but their age indicates that they are under the age of 19 ID-UA-19
, when the customer is considered "under age"
based on their current location then the appropriate action needs to be taken during this Session. Other indicators such as ID-EX
will tell you that this customer account
already exist, you can get a list of the other Customers that match this customer account by doing another API call using this current customer's ID. The DFP-HR
ReasonCode
should also be noted on the customers account within the merchant's system, this means that the device that the customer is currently using has been involved in some high-risk behavior.