Welcome to integration questions! Get familiar with API integration process.

Updated on June 5, 2017

Q1. How can I use the API? Where are the library files?

You do not require any library files for API Integration. You will find all the information required for API Integration within the API Documentation available here


Q2. When we click “pay now”, does the client get redirected to PayTabs server to complete the payment or do I need to host it on my server?

The customer gets redirected to PayTabs page to processes the payment.


Q3. If the payment is done from your side what is the link to redirect with our API values.

Once the payment is complete, the customer will be redirected to the URL that you specify in the API Call.


Q4. Do you have any solutions or set of classes built in for CodeIgniter Framework?

Our solution is based in PHP, so you can use it to integrate with CodeIgniter framework. We do not have any specific solution for CodeIgniter.


Q5. Why this message shows during payment: The information you have entered on this page will be sent over an insecure connection and could be read by a third party.Are you sure you want to send this information?

This shows up when the merchant’s website doesn’t have SSL Certificate (https) installed.
When the payment is attempted from payment page (which is https) and then gets redirected to the merchant’s website (non-https), most browsers give this warning. It is just information that the user is moving from https to http. This will not show up once the merchant installs an SSL certificate on his/her website.


Q6. I keep getting this error “Site URL does not match”. How do I fix this?

The API V 2.0 requires that the requesting website be exactly the same as the website/URL associated with your PayTabs Merchant Account.
The merchant can see this SITE URL on his dashboard, under “My Profile”.
For Demo Users:
– You can edit your site URL by clicking going to “My Profile” and clicking on edit,enter your correct site URL and click on Save.
For Live Merchants:
– You can use the website that you have submitted in the Go-Live application. If you need to edit/change the site URL, you can send a request to customercare@paytabs.com


Q7. I am getting this below code with URL for the payment, how can I use the response to redirect to the payment page from my website?

You should receive the response from the create paypage API call, parse it and then redirect your customer to the paypage URL that you received in the response.


Q8. Is it mandatory to pass the correct customer IP?

IP information needs to be correct, else it may be tagged as rejected or fraudulent.


Q9. What is the difference between payment reference, p_id and invoice id?

These values are in fact the same and refer to the paypage id that was created from the API call.


Q2. How can I detect customer IP in .Net?

formContent += ip_customer=
string IPHost = Dns.GetHostName();string IP = Dns.GetHostByName(IPHost).AddressList[0].ToString();

Q1. Does the Express CheckOut support all languages?

The Express CheckOut only supports English and Arabic. Setting the language variable to anything else will default to English.


Q2. Express CheckOut does not give me any result, just a blank screen! What do I do?

Make sure you are using the latest version of Express CheckOut.
PayTabs releases updates to the various services from time to time.
Information of these updates is sent to merchants via the blog and monthly newsletter.


Q3. I can see a progress/loading bar that never stops loading! What do I do?

After integration, if you get a progress/loading bar that never stops loading, kindly debug your page. The following are the possible causes and their solutions:
1.  Error on authentication:
– Check for any leading or trailing spaces in your secret key or email address and remove them.
2.  404: Page not found error:
– Make sure to use the complete and exact site URL .
– Make sure to add a trailing “/” to the site URL.
– Ensure that your siteurl and url_redirect begin with “https” only if you are using an SSL Certificate.
If you do not have an SSL certificate installed,then kindly begin the URLs with “http”.


Q4. I am getting an error “Error: No 'Access-Control- Allow-Origin' header is present on the requested resource.”

Make sure that you have entered the correct links for the siteurl and url_redirect variables.
Use “https” only if you have an SSL certificate installed.Also make sure to add the “www”.
Your URL structure should look similar to this:
With SSL : https://www.mywebsite.com/
Without SSL : http://www.mywebsite.com/.


Q5. I am getting the following error “Transaction Error: The currency is not a valid ISO-Certified currency. Please use 3 digit ISO-Certified currency code.

This is usually caused due to some incorrect configuration on your server. You will need to recheck that your server has been properly configured with all the pre-requisites required for Express CheckOut V2.0:
– cURL.
– PHP 5.0 or greater.


Q6. I can see a progress/loading bar that never stops loading!

After integration, if you get a progress/loading bar that never stops loading, kindly debug your page. If you find a 404 error, you will need to make sure that your Express CheckOut button can find your library folder. Check the following:
a. Ensure that the library folder is placed on the root of your website.
b. Make sure that the value for the “siteurl” is correct.

Q1. We would like to make integration to our ERP. When there is a Successful Payment, our ERP will automatically be updated.

In order to update your ERP systems, you can make use of our IPN Service. You can find the documentation here.

Q1. Where I can find SDK Documentation?

You can find the Android SDK documentation here.
You can find the iOS SDK documentation here.


Q2. Does your iOS SDK work on simulators?

No, it does not. You can test your SDK integration on actual devices only.


Q3. How do I get the response code from the iOS SDK?

To view transaction_id and response code please add the following code in your application.
NSLog(@"transaction Id %@",[[NSUserDefaults standardUserDefaults]
NSLog(@"Response Code %@", [[NSUserDefaults standardUserDefaults]
NSLog(@'Description %@', [[NSUserDefaults standardUserDefaults] objectForKey:@'pt_description']);

The possible values for the response code variable are as follows:

Error Code Description
100 Payment is completed Successfully.
481 This transaction may be suspicious, your bank holds for further confirmation. Payment Provider has rejected this transaction due to suspicious activity; Your bank will reverse the dedicated amount to your card as per their policy.
Important Note: These transactions are rejected by our fraud monitoring tools;
however the transactions are only authorized (Not settled). In case you verify the transaction is genuine you can contact us to force accept the transaction after checking if it is not fraud and we might ask verification documents like ID card and front side of credit card used showing only name and last 4 digits, otherwise the transaction amount will be released back to the cardholder according to the issuing bank policy.
In case you are using IPN, it will post the response once the transaction is force Accepted from our side.
Any other response code Any other response means that the transaction has been rejected and the rejection reason is the description of the corresponding response.
** The Complete list of response codes and their description can be found in Merchant Dashboard > Help > Reason Codes.

Credit Card Plugins

PayTabs Plugins, allows you to accept payments via PayTabs. When the order goes through, the user is taken to PayTabs to make a secure payment. After payment the order is confirmed and the user is taken to the transaction result page.
You can find the documentation and plugin here

Q1. Where I can find Tokenization Documentation?

You can find the Tokenization documentation here.