You can create the keys using Security section, public keys are the keys that you are going to share it with us and private keys are going to be used in generating the JWT to communicate with NearPay when using any function like purchase , refund , etc.
You need to share the package name for the Android project with the NearPay team.
You can define the environment in Nearpay project
val nearpay = NearPay(this, jwt, Locale.getDefault(), Environments.SANDBOX)
We have three main environments:
SandBox : where you integrate the SDK on Sandbox Environment.
Testing : we will test your app with Saudi Payment and get it approved
Production : here you can go live.
You can use it with android 10 or higher.
  • You need to have an NFC in your device.
  • You need to allow location.


Please follow the instructions here.
JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.
NearPay Team will send you a client uuid once we have received the public key and the android package name.
When NearPay service is no longer needed .
For example when the users logout from your app , they need to logout from NearPay service as well so they can not use the service when they are logged out .


Payment reconciliation is an accounting process that verifies account balances to ensure all sets of records are true, consistent, and up-to-date. Businesses can reconcile their accounts daily, weekly, or monthly.
Customer reference number is a number that identifies your customer ID, so you can assign any number you want as customer reference number , also it is optional so you can leave it empty if you wish.
You can use customer reference number in Purchase and Refund.
You can just call purchase and our UI will show up to make a payment.
Yes you can, we have transaction receipt here
We have a feature to enable or disable the receipt ui and all our functions, just set enableReceiptUi to false .
You can see all transactions in client dashboard, also you can list it using the API here
You can get all the reconciliation data when you make a reconcile we will return all the data , you can find it here.
Go to Settings - > Apps - > Payment Plugin -> Version
Whenever the SDK environment is on production , if the developer mode is not off then you can not communicate with Nearpay to make any transactions .
You can get the qr_code URL from the receipt here and print it out.
No , user can not exceed the paid amount .
Multiple refunds is possible as long as it doesn’t exceed the paid amount
Refund , you can do it anytime , also you can do partial refund and you can do it more than once .
Reverse , it can be done only after the purchase within 60 seconds , and the whole amount will be reversed .

TRSMs and Terminals

There are two ways to create terminal :
1- Client Dashboard Go to TRSMs page and create a new one then create a new merchant, now you can go to terminals and create new terminals . 2- Use create terminal API here.
No, only one terminal can connect to one device at the same time.
Your backend can return JSON Web Token based on user , so every token will contain a different terminal id . For more information , you can see how the JWT can be generated here.
For example , every user in your app will have a terminal id linked to that user , so when the user login to your app , your backend will send JWT for that user to login to our SoftPOS SDK.
See figure 1.0
See figure 1.0
See figure 1.0
See figure 1.0

Figure 1.0