DvPayLite Deep Linking Integration - URI Mode
Version History
| Date | Version | Details |
|---|---|---|
| 17/12/24 | 1.0.0 | Initial Version |
| 19/06/25 | 1.0.1 | Tags updated for features that support optional transaction status screen and IsvId |
| 26/11/25 | 1.0.2 | Updates: Gift payment types added |
Prerequisites
- iPOSpays-powered Dejavoo terminal
- Login credential to iPOSpays (opens in a new tab)
- The host application must be listed on DvStore. If you haven't done so already, please fill out the necessary form to list your application. List now
For Sandbox (UAT)
Users should be onboarded on iPOSpays sandbox(UAT) environment as a merchant and have a valid CloudPOS TPN.
For Production (Live)
Users should be onboarded on iPOSpays production environment as a merchant and have a valid CloudPOS TPN.
If you do not have a TPN, contact your ISO or devsupport@dejavoo.io
Set Up the Developer Environment
1. Android Studio IDE
Download and set up Android Studio from developer.android.com (opens in a new tab).
2. Develop an Android Application
- Create a new Android project or use an existing one.
- Follow the steps outlined below:
- Set the scheme as "denovopay" when creating the URI.
- Update the host based on the type of transaction.
- Refer to the Perform Transaction API section in this document for transaction types and sample input requests.
Install DvPayLite Application
Ensure the DvPayLite application is installed on the payment terminal. If it is not installed, complete the installation before proceeding with the integration.
Version Control and Updates
Non-Breaking Changes
- We will continue to enhance the API by adding new functionality and fixing bugs over time.
- These updates may include:
- New endpoints
- Additional attributes for existing objects
- Such changes will not require a new API version. Ensure your code can handle new attributes gracefully and does not rely on the order of returned records unless explicitly specified in the documentation.
Breaking Changes
- We aim to maintain the current API version for the foreseeable future.
- In the event of changes that break the current API's functionality, a new version number will be released to ensure backward compatibility with existing integrations
- Refer to the Version History to review the version history of this document.
High-level flow
The following is a high-level flow to communicate with the DvPay Lite Application.

APIs
Device Register API
The Device Register API is used to download terminal and merchant configuration data from the backend application into the DvPayLite application.
Host: “register”
Intent will return transactionResult in the activity result.
Request Parameters:
| Field | Description | Sample |
|---|---|---|
| tpn | It’s a Unique 12-digit code. This value is unique for each merchant. | 123456789012 |
| applicationType | The application type is used to identify the application | DVPAYLITE |
Response Parameters:
| Field | Description | Sample |
|---|---|---|
| transactionResult | It is a string that provides responses as Success and failure | Success/Failure |
| transactionResult Json | It is a json string that contains response tags of the transaction |
Response(transactionResultJson) Details:
- if success
| Field | Description | Sample |
|---|---|---|
| message | It’s a Unique 12 digit code. This value is unique for each merchant. | Terminal Added Successfully |
| isValidTPN | Indicates whether the TPN is valid | true |
| assignedBuildNumber | Build number assigned to this transaction or request | (Empty in this case) |
- if failure
| Field | Description | Sample |
|---|---|---|
| error_code | Error code indicating the type of error | 15 |
| error_message | Message describing the error | TPN is not Configured |
Snippet code:
jsonRequest = {
“tpn”:”123456789012”,
“applicationType”:”DVPAYLITE”
}sample - scheme + "://" + host + "?data=" + Request (Passing Request as Url encoded(UTF-8))
Perform Transaction API
This API is used to invoke the DvPayLite application to perform a transaction. It supports the following transaction types: SALE, REFUND, VOID, PRE_AUTH, INC_AUTH, TICKET, ACTIVATE, INQUIRE, REDEEM, REISSUE, REFUND, VOID.
For pin-based transactions, keys must be injected into the terminal. To inject the keys, please contact the developer support team at devsupport@denovosystem.com.
Host: “pay”
The Intent will return transactionResult in the activity result.
Request parameters
| Field | Description | Sample |
|---|---|---|
| type | Transaction type. Possible values: [SALE, REFUND, VOID, PRE_AUTH, INC_AUTH, TICKET, ACTIVATE, INQUIRE, REDEEM, REISSUE] | SALE |
| paymentType | Payment type. Possible values: [CREDIT, DEBIT, EBT_Food, EBT_Cash, GIFT, LOYALTY] | CREDIT |
| amount | Transaction amount | 10.00 |
| tip | Transaction tip amount (applicable only for SALE and TICKET) | 1.00 |
| applicationType | Application type used to identify the application | DVPAYLITE |
| refId | Transaction reference ID. Must be unique for SALE, REFUND, and PRE_AUTH. For VOID and TICKET refund, it should be the original sale reference ID. | 1234567890 |
| receiptType | Type of receipt. Possible values: [Merchant, Customer, Both, No] | Merchant |
| isTxnStatusScreenRequired | Controls whether the transaction status screen is displayed. Possible values: [Yes, No] | Yes |
| IsvId | Unique ID provided to each ISV during integration. Contact support or sales to obtain this ID. | 432423434 |
| showBreakupScreen | Controls whether the breakup screen is displayed during transaction processing (must be enabled in TPN configuration). Possible values: [Yes, No] | Yes |
| showTipScreen | Controls whether the tip screen is displayed during transaction processing. Possible values: [Yes, No] | Yes |
| reconId | Used for reconciliation purposes. Applicable only for Fiserv North transactions. Optional alphanumeric ID that links the transaction to its settlement record in Fiserv. | FSRV12345A |
| MerchantId | When Multi MID (MMID) is enabled, MerchantId must be provided. This should be the TPN through which the transaction is processed. | 123456789012 |
| TPN | Optional. Provide the default TPN. If MultiMID is enabled, provide the Master TPN. | 12121121212 |
Response Parameters:
| Field | Description | Sample |
|---|---|---|
| transactionResult | Indicates whether the transaction was successful or failed | Success / Failure |
| transactionResultJson | JSON string containing detailed response tags of the transaction |
Response(transactionResultJson) Details
| Field | Description | Sample |
|---|---|---|
| authCode | Authorization code received from the payment processor | DSC058 |
| LTaxAmount | Local tax amount | 2.40 |
| STaxAmount | State tax amount | 1.20 |
| extData | Extended data related to the transaction (e.g., partial approval info, void status) | {"dueAmnt":"0.00",
"approvedAmnt":"",
"isPartialApprovalTxn":false,
"voided":"false"} |
| cardHolderName | Name of the cardholder | Steve Rogers |
| batchNo | Batch number associated with the transaction | 444 |
| card_type | Type of card used (e.g., VISA, MASTER, DISCOVER) | JCB |
| merchant | Data to be printed on merchant receipt with format and alignment in XML format [C - Center, R - Right, L - Left, N - Normal, B - Bold] | |
| customer | Data to be printed on customer receipt with format and alignment in XML format [C - Center, R - Right, L - Left] | |
| expDate | Card expiry date | 12/25 |
| emvTVR | EMV Terminal Verification Results | 0000008000 |
| emvTC | EMV Transaction Certificate | F23A1C0D45678910 |
| emvTSI | EMV Transaction Status Indicator | E800 |
| emvAppName | EMV application name | VISA CREDIT |
| emvAID | EMV application identifier | A0000000041010 |
| date | Transaction date | 2024-10-01 |
| disclaimer | Statement confirming cardholder receipt of goods and agreement to obligations | Cardholder acknowledges receipt of goods |
| fee | Custom fee associated with the transaction | 0.62 |
| iPOSToken | Token generated for the transaction | FDBD45C65D2CCB28BE42BAF72D1D7F13A6894F146D70AD17 |
| invoice_no | Invoice number | 2 |
| last_4_digits | Last four digits of the card number | 5859 |
| mask_pan | Masked primary account number (PAN) | 3530145859 |
| pinMode | PIN mode [0 = No PIN, 1 = PIN verified] | 0 |
| refId | Reference ID from the original request | DL305734142454 |
| respCode | Processor response code [00 = Success, others = Failure] | 00 |
| respMsg | Processor response message | APPROVAL DSC058 |
| rrn | Retrieval Reference Number | 427510500684 |
| sign | Customer signature in Base64 format (if captured) | |
| status | Transaction status | Approved |
| time | Transaction time | 06:28:39 |
| tipAmount | Tip amount | 3.60 |
| tipLine | Tip line indicator [0 = No, 1 = Yes] | 0 |
| totalAmount | Total amount including tax, tip, and fees | 19.82 |
| transId | Transaction ID | 000004 |
| transaction_id | Same as transId | 000004 |
| transaction_title | Transaction title (e.g., SALE, REFUND) | SALE |
| transaction_mode | Transaction mode [1 = Swipe, 2 = Chip, 3 = Contactless, 4 = Manual] | 1 |
| transaction_type | Transaction type [1 = Credit, 2 = Debit, 3 = EBT, 6 = Gift] | 1 |
| amount_paid | Base transaction amount paid | 12.00 |
Snippet Code:
const jsonRequest = {
"type": "SALE",
"amount": "10.00",
"tip": "1.00",
"applicationType": "DVPAYLITE",
"refId": "1234567890",
"isTxnStatusScreenRequired": "Yes",
"IsvId": "124234234234",
"showBreakupScreen": "Yes",
"showTipScreen": "Yes",
"reconId": "FSRV12345A",
"MerchantId":"123456789012"
};Example : scheme + "://" + host + "?data=" + Request (Passing Request as Url encoded)
Batch Settlement API
A batch is a group of transactions that have been processed but have yet to be settled. When a transaction is approved, it is added to the batch. When a batch hasn't been settled yet, it is called an open batch, and transactions in the batch can still be voided and reversed if needed.
Host: “settle”
The Intent will return transactionResult in the activity result.
Request parameters
| Field | Description | Sample |
|---|---|---|
| type | Transaction type [SETTLE] | SETTLE |
| applicationType | Application type used to identify the application | DVPAYLITE |
| MerchantId | When Multi MID (MMID) is enabled, MerchantId must be provided. This should be the TPN through which the transaction is processed. | 123456789012 |
| TPN | Optional. Provide the default TPN. If MultiMID is enabled, provide the Master TPN. | 12121121212 |
Response Parameters:
| Field | Description | Sample |
|---|---|---|
| transactionResult | Overall result of the batch settlement transaction | Success / Failure |
| transactionResultJson | JSON string containing detailed batch settlement response fields |
Response(transactionResultJson) Details
| Field | Description | Sample |
|---|---|---|
| assignedBuildNumber | Build number assigned to this request | (Empty in this case) |
| TPN | Terminal Processing Number (unique terminal identifier) | 132423805864 |
| resultCode | Result code indicating the outcome (0 = Success) | 0 |
| message | Message corresponding to the resultCode | Success |
| ExtData | Extended data with details about the batch settlement | App=DvPayLite, ResultCode=0, BatchNum=443, Rsp=BATCH SETTLED, Status=GB, TipAmt=39.60, TotalAmt=218.06, SHFee=6.86, NumTrans=2 |
| Receipt | Formatted receipt data (terminal, merchant, and batch totals) | Date: 2024/10/02, Time: 06:28:39, Terminal: 132423805864, Merchant: 888000003338, Batch#: 443, Status: GB, etc. |
| TransReport | Summary report of transactions in the batch | App=DvPayLite, TrnsCnt=2, SaleAmt=218.06, ReturnAmt=0.0, VoidAmt=0.0, AuthAmt=0.0, TicketAmt=0.0, TotalAmt=218.06 |
| HostResponseCode | Host response code indicating settlement status | 00 |
| HostResponseMessage | Host response message confirming batch settlement | BATCH SETTLED |
| isValidTPN | Indicates whether the TPN is valid | true |
| overallMessage | Overall batch settlement outcome message | Batch settled successfully |
Snippet Code
settleReq = {
“type”:”SETTLE”,
“applicationType”:”DVPAYLITE”
}Example : scheme + "://" + host + "?data=" + Request (Passing Request as Url encoded)
Tip Adjust API
This API is used to perform a tip adjustment on a sale transaction.
Tip adjustments are allowed only for credit transactions by processors and are not permitted for other transaction types.
Host: “pay” The intent will return transactionResult in the activity result.
Request parameters
| Field | Description | Sample |
|---|---|---|
| type | Transaction type [TIP ADJUST] | TIP ADJUST |
| amount | Base amount of the original sale transaction | 10.00 |
| tip | Tip amount to be adjusted | 1.00 |
| applicationType | Application type used to identify the application | DVPAYLITE |
| refId | Reference ID of the original sale transaction | 1234567890 |
| MerchantId | When Multi MID (MMID) is enabled, MerchantId must be provided. This should be the TPN through which the transaction is processed. | 123456789012 |
| TPN | Optional. Provide the default TPN. If MultiMID is enabled, provide the Master TPN. | 12121121212 |
Response Parameters
Same as Perform Transaction API
Snippet Code
jsonRequest =
{“type”:”TIP ADJUST”,
“amount”:”10.00”,
“tip”:”1.00”,
“applicationType”:”DVPAYLITE”,
“refId”:”1234567890”}Example : scheme + "://" + host + "?data=" + Request (Passing Request as Url encoded)
Get TPN API
This API is used to retrieve the TPN (Terminal Processing Number) of a device.
Host: “get”
The intent will return transactionResult in the activity result.
Request parameters
| Field | Description | Sample |
|---|---|---|
| type | String that specifies get TPN | getTPN |
| applicationType | The application type is used to identify the application | DVPAYLITE |
Response Parameters
| Field | Description | Sample |
|---|---|---|
| transactionResult | It is a string that provides responses as Success and failure | Success/Failure |
| transactionResult Json | It is a json string that contains response tags of the transaction |
Response Details
| Field | Description | Sample |
|---|---|---|
| message | Application type is used to identify the application. | DvPayLiteTPN |
| tpn | Terminal Processing Number (unique identifier) | 132423805864 |
Snippet Code
jsonRequest =
{"applicationType":"DVPAYLITE",
"type":"getTPN"}Example: scheme + "://" + host + "?data=" + Request (Passing Request as Url encoded)
Device detail API
This API is used to obtain the details of the device.
Host: “get”
The intent will return transactionResult in the activity result.
Request parameters
| Field | Description | Sample |
|---|---|---|
| applicationType | The application type is used to identify the application | DVPAYLITE |
Response Parameters
| Field | Description | Sample |
|---|---|---|
| transactionResult | It is a string that provides responses as Success and failure | Success/Failure |
| transactionResult Json | It is a json string that contains response tags of the transaction |
Response parameters
| Field | Description | Sample |
|---|---|---|
| model | Model of the device | P3 |
| manufacture | Manufacturer of the device | Kozen |
| sNo | Serial number of the device | B1791E1XL8080062 |
| tpn | Terminal Processing Number (unique identifier) | 132423805864 |
| respCode | Response code indicating the outcome of the request | 00 |
| respMessage | Message corresponding to the response code | Success |
Snippet Code
jsonRequest =
{"applicationType":"DVPAYLITE",
"type":"getDevice"}Example : scheme + "://" + host + "?data=" + Request (Passing Request as Url encoded)
Status Check API
This API is used to retrieve the current transaction status.
Host: “pay”
The intent will return transactionResult in the activity result.
Request parameters
| Field | Description | Sample |
|---|---|---|
| refId | Transaction reference id of original sale transaction | 1234567890 |
| type | Type of the transaction [STATUS] | STATUS |
| applicationType | The application type is used to identify the application | DVPAYLITE |
| MerchantId | When Multi MID (MMID) is enabled, MerchantId must be provided. This should be the TPN through which the transaction is processed. | 123456789012 |
| TPN | Optional. Provide the default TPN. If MultiMID is enabled, provide the Master TPN. | 12121121212 |
Response Details
Same as Perform Transaction API
Snippet Code
jsonRequest =
{“type”:” STATUS”,
“applicationType”:”DVPAYLITE”,
“refId”:”1234567890”}Example : scheme + "://" + host + "?data=" + Request (Passing Request as Url encoded)
Administrative Txn API
This API is used to retrieve card numbers.
For this to function, the administrative transaction type must be enabled in STEAM:
- Navigate to Edit Parameters.
- Go to the Transaction tab.
Host: “pay” The intent will return transactionResult in the activity result.
Request parameters
| Field | Description | Sample |
|---|---|---|
| type | Type of the transaction [ADMINISTRATIVE_TXN] | ADMINISTRATIVE_TXN |
| applicationType | The application type is used to identify the application | DVPAYLITE |
| MerchantId | When Multi MID (MMID) is enabled, MerchantId must be provided. This should be the TPN through which the transaction is processed. | 123456789012 |
| TPN | Optional. Provide the default TPN. If MultiMID is enabled, provide the Master TPN. | 12121121212 |
Response Parameters:
| Field | Description | Sample |
|---|---|---|
| transactionResult | It is a string that provides responses as Success and failure | Success/Failure |
| transactionResult Json | It is a json string that contains response tags of the transaction |
Snippet Code
jsonRequest =
{“type”:” ADMINISTRATIVE_TXN”,
“applicationType”:”DVPAYLITE”}Example : scheme + "://" + host + "?data=" + Request (Passing Request as Url encoded)
Go Live Requirements
The following are the Go Live activities:
- All third-party app integrations with DvPay Lite via deep-linking will be hosted in our DvStore application, which is provided as a default app in the firmware of production terminals.
- To host an application in the app market, please contact the Dev Support team using the email provided below.
- Once the application is hosted in the DvStore app, it can be downloaded to terminals and updated by hosting newer versions of the app.
- Applications can be tested in test environments before being uploaded to production environments.
Help
For any questions or suggestions, email us directly at devsupport@dejavoo.io.