Getting started
This page includes a dedicated listing of the services assigned for processing payments. If you need your website to perform secured payments, this is the main collection of services you should be usi
Important points to pay attention to:
1. The preferred http method to use is GET.
2. Please do not use localhost urls in your requests, these might be blocked by our WAF
3. In case using languages other then english remember to urlencode any special character included in the request, we recommend using English for all requests as not all acquirers/PSPs knows how to handle languages other than english.
4. Optional fields are "Optional" on a technical level but might be required by different providers, we recommend including as much information as possible with each request that way the chances for a transaction to be approved by the providers will be higher.
5. The "Signature" is the most important part of the request, pay attention to the order of the parameters in the request and in the signature, be sure to url encode the relevant fields, each type of request include an example written in JS to show the creation process of the signature and the request string.
Requests Endpoint: https://uiservices.oobit.com/hosted/default.aspx?
Integration with some of Oobit payment services requires generating a hashed signature.
SHA256 signature is used to validate the integrity of the data, for more information on SHA256 see: http://en.wikipedia.org/wiki/SHA256
Your Personal Hash Key is managed in the Null page under Global Settings.
- Concatenate the required parameters values, the list of required parameters is explained in the signature field on the API of the service you wish to use.
- Add your Null to the end of the concatenated string.
- Apply SHA256 hash to the string.
- Convert the hash result to Base64.
- URL encode the Base64 result if using GET mode.
- Now that you have a signature, Include the result as a value of the signature field in the request.
Example with the following values:
CompanyNum = 1234567
Amount = 5.4
Currency = 1
RefTransID = 1234
PersonalHashKey = AU7E468HNF
CompanyNum + Amount + Currency + RefTransID + PersonalHashKey
"1234567" + "5.4" + "1" + "1234" + "AU7E468HNF"
Base64(SHA256("1234567115.4145800000000000001234AU7E468HNF"))
Result: "PTpzX9OACBC+V3Fd9+TNCehnwIfqMaXmnUtsZMSRyVo="
var Siganture = CryptoJS.SHA256(MerchantNumber + TransType + trans_comment + trans_refNum + trans_installments + trans_amount + trans_currency + payFor + client_email + client_fullName + client_phoneNum + client_billAddress1 + client_billAddress2 + client_billCity + client_billZipcode + client_billState + client_billCountry + PLID + disp_lng + ui_version + Brand + url_redirect + notification_url + hashtype + PersonalHashKey);
var Base64Siganture = Siganture.toString(CryptoJS.enc.Base64);
var hash = encodeURIComponent(Base64Siganture);
$val = base64_encode(hash("sha256", "1234567ABCDEFGHIJ", true));
Signature Generating Form Use the following form to compare the output signature from your code with ours.
The following examples are a basic overview on how to send data over the internet. The code shown is intended to give you the programmer a start point on how to implement the Oobit API
<form action="https://www.domain.com" method="post" name="formName1" target="fraWindow"
onsubmit="window.open('', this.target, 'scrollbars=1, width=450, height=500, resizable=0, Status=1');">
<input type="hidden" name="Field1" value="Val1">
<input type="hidden" name="Field2" value="Val2">
<input type="hidden" name="Field3" value="Val3">
<input type="submit" value="submit">
</form>
<?php
//parameters list
$merchantID = "Your merchant id";
//mandatory!
$url_redirect = "Your site's result page";
//optional
$notification_url = "Your new callback url format
//optional
$trans_comment = "";
//optional
$trans_refNum = getToken(12);
//optional
$trans_installments = "1";
//optional
$trans_amount = "99.00";
//mandatory!
$trans_currency = "EUR";
//mandatory!
$disp_payFor = "Purchase";
//optional
$disp_lng = "en-us";
//optional
$disp_mobile = "auto";
//optional
$PersonalHashKey = "Your hash key";
//signature parameters list, the order of the values must be identical to the order in the form below
$retSignature = $merchantID . $url_redirect . $notification_url . $trans_comment . $trans_refNum .
$trans_installments . $trans_amount . $trans_currency .
$disp_payFor . $disp_lng . $disp_mobile . $PersonalHashKey;
$signature = base64_encode(hash("sha256", $retSignature, true));
//mandatory!
//////////////////////////////////
function getToken($length) {
$token = "";
$codeAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$codeAlphabet.= "abcdefghijklmnopqrstuvwxyz";
$codeAlphabet.= "0123456789";
$max = strlen($codeAlphabet);
// edited
for ($i=0; $i < $length; $i++)
$token .= $codeAlphabet[random_int(0, $max-1)];
return uniqid($token);
}//
?>
<form method="GET" action="https://uiservices.oobit.com/hosted/default.aspx?">
<input type="text" style="width:400px" readonly name="merchantID" value="<?php echo($merchantID); ?>" /> <br>
<input type="text" style="width:400px" readonly name="url_redirect" value="<?php echo($url_redirect); ?>" /> <br>
<input type="text" style="width:400px" readonly name="notification_url" value="<?php echo($notification_url); ?>" /> <br>
<input type="text" style="width:400px" readonly name="trans_comment" value="<?php echo($trans_comment); ?>" /> <br>
<input type="text" style="width:400px" readonly name="trans_refNum" value="<?php echo($trans_refNum); ?>" /> <br>
<input type="text" style="width:400px" readonly name="trans_installments" value="<?php echo($trans_installments); ?>" /> <br>
<input type="text" style="width:400px" readonly name="trans_amount" value="<?php echo($trans_amount); ?>" /> <br>
<input type="text" style="width:400px" readonly name="trans_currency" value="<?php echo($trans_currency); ?>" /> <br>
<input type="text" style="width:400px" readonly name="disp_payFor" value="<?php echo($disp_payFor); ?>" /> <br>
<input type="text" style="width:400px" readonly name="disp_lng" value="<?php echo($disp_lng); ?>" /> <br>
<input type="text" style="width:400px" readonly name="disp_mobile" value="<?php echo($disp_mobile); ?>" /> <br>
<input type="text" style="width:400px" readonly name="signature" value="<?php echo($signature); ?>" /> <br>
<input type="submit" value="Pay Now" style="height: 50px ; width: 170px ; font-size: 20px; background-color: #8dc059; color: #fff;border-radius: 4px; border: 0px; background-image: url(https://https://merchants.oobit.com/Templates/Tmp_Project/images/secure-icon-white.png);background-repeat: no-repeat; background-position: 10px 10px; padding-left: 26px;">
</form>
Field | Description | Max Length | Required |
---|---|---|---|
merchantID | Your 7 digits merchant number - ####### | 7 | Yes |
trans_amount | Amount to be charge (example: 199.95) | 20 | Yes |
trans_currency | ILS = Israel New Shekel USD = US Dollar EUR = Euro GBP = UK Pound Sterling AUD = Australian Dollar CAD = Canadian Dollar JPY = Japanese Yen NOK = Norwegian Krone PLN = Polski zloty MXN = Mexican Peso ZAR = South African Rand RUB = Russian Ruble TRY = Turkish lira CHF = Swiss franc INR = Indian rupee DKK = Danish krone SEK = Swedish krona CNY = Chinese yuan HUF = Hungarian forint NZD = New Zealand dollar HKD = Hong Kong dollar KRW = South Korean won SGD = Singapore dollar THB = Thai baht BSD = Bahamian Dollar | 3 | Yes |
trans_type | 0 = Debit Transaction (Default when field is empty) | 1 | Yes |
trans_installments | Number of installments, 1 for regular transaction | 2 | Yes |
trans_refNum | Unique text used to defer one transaction from another | 100 | Optional |
trans_comment | Optional text used mainly to describe the transaction | 255 | Optional |
disp_payFor | Text shown to buyer in payment window, Usually description of purchase (Cart description, Product name) | 40 | Optional |
disp_lng | The default language for the UI text in the window. If omitted, language is taken from user's browser settings. Available values are: he-IL = עברית (ישראל) en-US = English (United States) fr-FR = français (France) es-ES = español (España, alfabetización internacional) lt-LT= lietuvių (Lietuva) ru-RU = русский (Россия) de-DE = Deutsch (Deutschland) zh = 中文 | 5 | Optional |
disp_lngList | Specifies the language(s) available to user in the Language Selector in the window. Available values are: all = all languages are available (default if the field is empty or omitted) hide = the language selector is hidden comma-separated list of codes for enabling specific language(s). For example, disp_lngList=en-us,it-it will allow user to switch between English and Italian, and disp_lngList=en-us will show English only. The available languages are listed in the disp_lng field description. | 5 | Optional |
notification_url | The URL for notifying your system with the transaction result. Must include http:// or https://. | 255 | Optional |
url_redirect | The URL to which the buyer’s browser is redirected to after completing the payment Must include http:// or https://. | 255 | Optional |
PLID | Platform user ID - A unique identifier for the user on the platform | 100 | Optional |
signature | Signature for verifying the authenticity of the request parameters. Field values to use: All parameters in the order they appear in the request, first GET then POST + PersonalHashKey. more information can be found at the Signature section in this page | 30 | Yes |
| | | |
var Siganture = CryptoJS.SHA256(MerchantNumber + 0 + trans_comment + trans_refNum + trans_installments + trans_amount + trans_currency + payFor +
client_email + client_fullName + client_phoneNum + client_billAddress1 + client_billAddress2 + client_billCity + client_billZipcode + client_billState +
client_billCountry + PLID + disp_lng + ui_version + Brand + url_redirect + notification_url + hashtype + PersonalHashKey);
var Base64Siganture = Siganture.toString(CryptoJS.enc.Base64);
var hash = encodeURIComponent(Base64Siganture);
var src = "https://uiservices.oobit.com/hosted/default.aspx?merchantId=" + MerchantNumber + "&trans_type=" + 0 + "&trans_comment=" + trans_comment +
"&trans_refNum=" + trans_refNum + "&trans_installments=" + trans_installments + "&trans_amount=" + trans_amount + "&trans_currency=" +
trans_currency + "&disp_payFor=" + payFor + "&client_email=" + client_email + "&client_fullName=" + client_fullName + "&client_phoneNum=" +
encodeURIComponent(client_phoneNum) + "&client_billAddress1=" + client_billAddress1 + "&client_billAddress2=" + client_billAddress2 +
"&client_billCity=" + client_billCity + "&client_billZipcode=" + client_billZipcode + "&client_billState=" + client_billState +
"&client_billCountry=" + client_billCountry + "&PLID=" + PLID + "&disp_lng=" + disp_lng +
"&ui_version=" + ui_version + "&Brand=" + Brand + "&url_redirect=" + encodeURIComponent(url_redirect) +
"¬ification_url=" + encodeURIComponent(notification_url) + "&hashtype=" + hashtype + "&signature=" + hash;
000 = Authorized transaction
001 = Transaction accepted, waiting authorization
xxx = Transaction was not Authorized, see unauthorized comment explanation
Last modified 10mo ago