This is a documentation for the DirectCashier API, a service within the Payment Management Solution set of the GIDX Platform.
This set of documents serves as the integration guide for implementing services of the GIDX Platform API within the operator’s environment. The following pages outline the Customer Insight access points, security, methods, and parameters. As always, please contact us at devteam@tsevo.com any time if further explanation is needed.
An official SDK for the GIDX Platform API is available at GitHub.com and via NuGet (GIDX.SDK) located at the URL below. This SDK can be installed directly into your C# project using the NuGet Package Manager.
SDK LocationBelow are descriptions of the methods exposed by the GIDX Platform DirectCashier Service. For details about the parameters associated with these methods please see the Class Reference section below.
The following parameters are used in every DirectCashier Method Request and Responses. They are labeled within the methods below as Standardized Request Parameters and Standardized Response Parameters.
Making a Request
Each API method has a corresponding Request object used to transport the request parameters as shown below.
Using the Response
Each Response object returned from the method Request will contain properties you can use to determine the status of the methods service.
Use the IsSuccess property along with the ResponseCode and ResponseMessage values to detect if the Request completed without a problem.
4QhgWWJxRlqVctrc7SxHEQ
VpGYLoXhSS+WgU9N415IJQ
Fc+k5kRDSAOrh38e21vt0w
m+2XHlcIR0O1C+iBeNzfvA
VV4XTc3tRi6g1EYLOazn0g
xHhSS+WglqVctrc7-t7SEQrc
4QhgWWJxRlqVctrc7SxHEQ
v3.0
VpGYLoXhSS+WgU9N415IJQ
xHhSS+WglqVctrc7-t7SEQrc
0
No Errors
This method should be called to create a new Direct Cashier Session within the GIDX system for payments.
ABC-123
66.249.76.138
1113201405343
1113201405343_1
Default value is PAY
True
MONTHLY
2021-09-07
CustomerRegistrationRequest Object
["NFL-HOU", "NFL-ATL"]
https://yourserver.com/GidxRedirect
https://yourserver.com/GidxCallback
['DFP-HR','ID-EX']
xHhSS+WglqVctrc7-t7SEQrc
This method should be called to finalize and execute a payment that was started with CreateSession.
1113201405343_1
CashierPaymentAmount Object
True
['DFP-HR','ID-EX']
xHhSS+WglqVctrc7-t7SEQrc
1113201405343_1
True
Array of PaymentDetails Objects
92.3
Receiving callbacks from GIDX
When a session expires or a transaction status changes, a callback will be made to the CallbackURL you provided in CreateSession.
The callback will be an HTTP POST with a JSON request body.
An example of the callback JSON is on the right side of this page.
Responding to callbacks
You must respond to the callback correctly, or we will retry the callback up to 5 times over the next 2 hours.
An example of the response JSON is on the right side of this page.
0
No Errors
xHhSS+WglqVctrc7-t7SEQrc
['DFP-HR','ID-EX']
xHhSS+WglqVctrc7-t7SEQrc
98.5
1113201405343_1
Pending
Once the DirectCashier has been successfully completed the merchant may call this method to retrieve the full transaction details for the payment.
1113201405343_1
1113201405343_1
Array of PaymentDetails Objects
92.3
[“LL-GEO-US-NV”,“ID-VERIFIED”,“ID-EX”]
Update the status of a payment. Currently only available to cancel recurring payments.
1113201405343_1
1113201405343_1
Array of PaymentDetails Objects
Add or update a payment method. You can call this method from the user's device without supplying your API Key as long as you pass the same MerchantSessionID of a currently active DirectCashier session.
True
Other Identity & Location Methods are located in the CustomerIdentity API located at the endpoint below.
You can view the details of these additional Customer Identity related methods by clicking on the links below.
The Object documented below are returned within the Response of Method Request within the GIDX Platform DirectCashier Services. When applicable an Object may be shared by among other Method Responses as indicated in the listings below.
Objects are always returned in JSON format.
This object provides information on actions that need to be taken within the merchant application to complete the transaction.
https://join.iad.actumprocessing.com/Signup/signupLoad.cgi;jsessionid=17E3594FE483C833536AD344A6C1C43A
AWipigSApGaGTWxWxT9THkVKql7K2NfGr5fkOrRwuHiSqpQsSylhU9fD4u1bOIQL4Hj142-6DrqeaWJ2
1KG986478G427540U
PaymentDetails object is currently a work in progress. Subject to change.
This object contains the detailed data of a transaction that has taken place within the DirectCashier CreateSession Request.
101.08
true
MM/DD/YYYY hh:mm:ss (UTC)
MM/DD/YYYY hh:mm:ss (UTC)
MM/DD/YYYY hh:mm:ss (UTC)
MM/DD/YYYY hh:mm:ss (UTC)
96.2
Approvely
61452378
200
DECLINED
This object contains the payment amount information. For deposits, the user will be charged PaymentAmount + FeeAmount + TaxAmount.
For FeeAmount and TaxAmount, if you don't provide them yourself, we will calculate them based on your settings.
200.00
50.00
New Customer Bonus!
2.00
3.10
True
This object is used to both submit and retrieve payment method information.
6CADB8D0-6FAE-40DE-937E-03BA3EC9A7A5
Visa (...1111)
John Smith
7131234567
4111111111111111
123
11/2024
XYi1pplo2XITHfJdT21SweFz1us=
05
d65e93c3-35ab-41ba-b307-767bfc19eae3
Visa
123456789
999999999
A list of these objects is returned by CreateSession to show you what PaymentMethodTypes you have available.
Only Paypal and GooglePay have additional settings (as shown below), but CreateSession will return an object for every PaymentMethodType you have available. For types other than Paypal and GooglePay, the object will just have a single Type property.
AWipigSApGaGTWxWxT9THkVKql7K2NfGr5fkOrRwuH...
TEST or PRODUCTION
acceptblue
gp_05b140932dd7a938dd4e47654d419cf3
12345
5940 Main St.
Suite A
Las Vegas
77587
This object should contain the location data derived from the Devices GPS information.
For more information on collecting this data from the Device please click here to see the table below for both iOS and Android.
Device GPS Property | Class | Property | Declaration |
---|---|---|---|
Latitude & Longitude | CLLocation | coordinate | CLLocationCoordinate2D |
latitude | CLLLocationDegrees | ||
longitude | CLLLocationDegrees | ||
Radius | CLLocation | horizontalAccuracy | CLLocationAccuracy |
Altitude | CLLocation | altitude | CLLocationDistance |
Speed | CLLocation | speed | CLLocationSpeed |
DateTime | CLLocation | timestamp | NSDate |
Device GPS Property | Class | Property |
---|---|---|
Latitude | Location | getLatitude() |
Longitude | Location | getLongitude() |
Radius | Location | getAccuracy() |
Altitude | Location | getAltitude() |
Speed | Location | getSpeed() |
DateTime | Location | getTime() |
The DateTime in Android is a "ticks" and needs to be converted to the dateTime format MM/DD/YYYY HH:MM:SS.000 |
36.169727
-115.141801
600.999
22.9871
45.999
10/01/2013 12:42:15 GMT
The information documented below provides clarification of the codes used within the GIDX Platform DirectCashier Services.
The PaymentStatusCode will be provided when a GIDX service is updating you about a transaction DirectCashier Callback and/or the PaymentDetails method is being called because details/status of the transaction is needed.
In most instances, the PaymentStatus of Pending, Complete, or Failed will be provided, for example...
The following PaymentStatus are less common and have specific caveats to their inclusion, for example...
The PayActionCode has the following rules for usage...
When the PayActionCode value equals PAYOUT the following CashierPaymentAmount variables are ignored: BonusAmount, BonusDetails, BonusExpirationDateTime.
ISO 3166-1 is part of the ISO 3166 standard published by the International Organization for Standardization (ISO), and defines codes for the names of countries, dependent territories, and special areas of geographical interest.
http://en.wikipedia.org/wiki/ISO_3166-1
ISO 3166-2:US is the entry for the United States in ISO 3166-2, part of the ISO 3166 standard published by the International Organization for Standardization (ISO), which defines codes for the names of the principal subdivisions (e.g., provinces or states) of all countries coded in ISO 3166-1.
http://en.wikipedia.org/wiki/ISO_3166-2:US
The ISO 4217 code list is used in banking and business globally. In many countries the ISO codes for the more common currencies are so well known publicly that exchange rates published in newspapers or posted in banks use only these to delineate the different currencies, instead of translated currency names or ambiguous currency symbols.
https://en.wikipedia.org/wiki/ISO_4217
For the latest list of Reason Codes and their description please go to the following URL.
View Reason Codes
Below are descriptions of how each Payment Method is handled by CompleteSession.
ACH payments are not immediate and will be left in a Pending state at first. In the live environment, you will get a callback when the status is changed. In sandbox, you can manually set the status to Complete in the dashboard and you will receive a callback.
Expected Actions: None
Actum Authentecheck allows the user to login to their bank and select their bank account instead of typing the account and routing numbers themselves.
Sending a blank ACH payment method (no AccountNumber and RoutingNumber) will return an Open Action with a URL that you need to open in a new window or tab on the user's device in order to complete the payment.
The selected bank account will be saved for re-use. They will not need to login to their bank on future transactions.
Expected Actions: Open
Pass a RedirectURL in your CreateSession request if you want the user to be redirected to your site at the end of the Authentecheck process.
The following values will be appended as query string values to the RedirectURL: MerchantSessionID, MerchantTransactionID
In your RedirectURL, you can make an API call to PaymentDetail to get the status.
You can use the test bank login below. This specific test bank requires you to confirm the Routing and Account Numbers, but that's not how most major banks will behave.
When using a saved credit card, you must ask the user to re-enter their CVV and pass it in the request as shown in the sample.
Expected Actions: None
To use 3DS for credit card deposits, you should populate the ThreeDS object in the PaymentMethod. ThreeDS is only used in the CompleteSession API. It is ignored when sent to any other API endpoint.
You can get these 3DS values by integrating into a Javascript SDK that provides them:
Expected Actions: None
Paypal deposits will require you to use Paypal's SDK (JS, iOS, or Android) after you call CompleteSession, using the OrderID returned in the Action.
When any of the SDKs ask for a Client ID, make sure you are using the one associated with the GIDX app within your Paypal developer account.
Expected Actions (Deposits): Paypal
Expected Actions (Payouts): None
First, add a Paypal button to your page.
The JS for the button should look like this:
paypal.Buttons({
createOrder: (data, actions) => {
//Call CompleteSession and return the OrderID that is inside the Paypal Action
return getCompleteSessionResponse()
.then(function (response) {
return response.Action.OrderID;
});
},
onApprove: (data, actions) => {
//There is no need to manually capture the order here as shown in Paypal's own sample.
//GIDX will be notified when the order is approved and automatically capture it.
//Here, you can call PaymentDetail to get the latest transaction status and inform the user.
}
}).render('#paypal-button-container');
First, add the Native Checkout SDK to your iOS app.
Add a Paypal button, or programmatically start the SDK.
Follow the instructions in their Server-Side Integration section to set CreateOrder and OnApprove callbacks like this:
Checkout.setCreateOrderCallback { createOrderAction in
//Call CompleteSession and use the OrderID that is inside the Paypal Action
createOrderActions.set(orderID)
}
Checkout.setOnApproveCallback { approval in
//There is no need to manually capture the order here as shown in Paypal's own sample.
//GIDX will be notified when the order is approved and automatically capture it.
//Here, you can call PaymentDetail to get the latest transaction status and inform the user.
}
First, add the Native Checkout SDK to your Android app.
Add a Paypal button, or programmatically start the SDK.
Follow the instructions in their Server-Side Integration section to set CreateOrder and OnApprove actions like this:
paymentButton.setup(
new CreateOrder() {
@Override
public void create(@NotNull CreateOrderActions createOrderActions) {
//Call CompleteSession and use the OrderID that is inside the Paypal Action
String orderID;
createOrderActions.set(orderID);
}
}
);
paymentButton.setup(
new OnApprove() {
@Override
public void onApprove(@NotNull Approval approval) {
//There is no need to manually capture the order here as shown in Paypal's own sample.
//GIDX will be notified when the order is approved and automatically capture it.
//Here, you can call PaymentDetail to get the latest transaction status and inform the user.
}
}
);
Apple Pay deposits will require you to use Apple's SDK (JS, or iOS) after you call CreateSession. You will then serialize the Payment object returned by Apple to a JSON string, and pass it to CompleteSession.
Expected Actions: None
Google Pay deposits will require you to use Google's SDK (JS, or Android) after you call CreateSession. You will then serialize the PaymentData object returned by Google to a JSON string, and pass it to CompleteSession.
Expected Actions: None