iPOS Transact API
Prerequisites
- 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 support@dejavoo.io
How to Generate an Auth Token
- Step 1 : Login to your merchant account and go to settings.
- Step 2 : Under the Generate Ecom/TOP Merchant Keys section, search for and select your TPN from the drop-down menu and click Generate Token.
Card Token Usage
- Sale Transactions:
-
To use a card token for sale transactions, integration with HPP or SPIn API is mandatory.
-
If you’ve already implemented HPP or SPIn API using the same TPN, you cannot create a new token. You must reuse the token generated by the HPP or SPIn API.
- Void and Refund Transactions:
-
If you are implementing the iPOS Transact API only for void and refund transactions, HPP API is not required.
-
Instead, you need to generate a new ECOM token and use it in the iPOS Transact API.
Parameters Required for Transactions
- Void and Refund Transactions:
To process void or refund payments, the following details are required:
- TPN Number
- RRN Number (Retrieval Reference Number): Available on the receipt of the sale.
- Amount: Mandatory for partial refunds.
- Sale Transactions Using Card Token:
To perform sale transactions with a card token, you need:
- TPN Number
- Card Token
- Amount
Indicator | Description |
---|---|
* | Mandatory |
** | Required only under specific conditions. |
Supported Transaction Types
The iPOS Transact API allows you to perform the following transactions:
- Sale
- Pre Auth
- Void
- Refund
- Ticket
- Tip Adjust
- Incremental Auth
- Open Batch
- Batch Settlement
Transaction Type: Sale/PreAuth (Using Card Token/Payment Token/GooglePay)
Sale: A sale transaction is a regular transaction where the entered amount is processed and sent to the processor after the batch has been settled.
Pre Auth: A Pre Auth transaction allows the user to temporarily reserve a specific amount of money for a transaction. This feature is handy for businesses that need to collect an upfront payment. The amount held in Pre Auth can be retrieved by performing a Ticket transaction.
For example, hotels use this type of transaction to collect an amount from guests and later add taxes, fees, and tips for any additional purchases or services during their stay. These additional charges are combined with the initial amount during checkout.
ipos-transact API request contains 3 primary objects
Objects | Description |
---|---|
Token | Required: Contains AuthToken information to be included in the request header. |
merchantAuthentication | Required: Includes merchant authentication details, such as the TPN number and unique transaction reference ID. |
transactRequest | Required: Contains details such as transaction type, card token, amount, fee calculation, etc. |
preferences | Required: Specifies whether AVS (Address Verification Service) verification is needed or if an e-receipt should be sent via SMS/email to the end user. |
AVS | Required: Provides AVS details, including street number and ZIP code. |
Request Method
HTTPS Request Method | POST |
---|
iposTransact API Endpoint
Objects | Description |
---|---|
Sandbox URL * | https://payment.ipospays.tech/api/v1/iposTransact |
Production URL * | https://payment.ipospays.com/api/v1/iposTransact |
Request Parameters
- Request Parameters (Header)
Objects | Description |
---|---|
token | AuthToken (can be obtained from portal settings). |
JSON Content-Type | application/json |
- Request Parameters (Body)
Field | Type | Description | ||
---|---|---|---|---|
merchantAuthentication ( Obj ) | ||||
merchantId * | Number | TPN number registered on the portal. Example Value: 139322815010 Length: 12 digits | ||
transactionReferenceId * | string | Merchant's unique transaction reference ID. Format: Alphanumeric Length: Must be 20 characters or fewer. | ||
transactRequest ( Obj ) | ||||
amount | String | Amount (in USD) to be charged. Multiply the USD amount by 100. Length: 8 characters Format: 12525 (e.g., $125.25 × 100). | ||
transactionType * | Number | Type of transaction to be processed. Default: 1 Values: 1 – Sale (using card token) 5 – PreAuth (using card token). | ||
cardToken* * | String | Tokenized card value/string used to capture the specified amount for the tokenized card. Format: Encrypted token string. | ||
paymentTokenId* * | String | Tokenized payment value/string used to capture the specified amount for the tokenized card. (Applicable only for Sale transactions.) Format: Encrypted token string. | ||
applySteamSettingTipFeeTax * | String | Determines if tips, fees, and taxes should be calculated based on what is configured in S.T.E.A.M → Edit Parameter and add to the base amount to charge the customer. Values: true or false Default: false Note: If set to true: The iposTransact API will calculate tips, fees, and taxes based on S.T.E.A.M parameters and add them to the base amount. If set to false: The iposTransact API will treat the amount in the request payload as the total amount. | ||
preferences ( Obj ) | ||||
eReceipt * | Boolean | To send payment status notifications to customers via SMS and/or email. Values: true or false. | ||
customerName | String | The customer’s email address to which payment status will be sent if requested. Format: Alphabets and spaces Length: Up to 25 characters Note: This field is required if eReceipt is set to true. | ||
customerEmail | String | Customer e-mail id to which payment status will be notified if requested Format: Valid email address Note: This field is required if eReceipt is set to true. | ||
customerMobile | String | Customer mobile number to which payment status will be sent if requested. Format: +<country-code><number> Example: +18989898989 Length: 13 characters Note: This field is required if eReceipt is set to true. | ||
requestCardToken | Boolean | Indicates whether to send tokenized card details to the integrator for the requested customer. Values: true or false. | ||
GooglePay | String | Encrypted Request Received from Google under Dejavoo PSP Key. Values : Encrypted Data from Google Note : If GooglePay Object is passed then PaymentTokenId and CardToken should be null | ||
AVS ( Obj - Use v2 version for this future ) | ||||
StreetNo | String | Street number of the customer's address. | ||
Zip | String | Zip code of the customer’s address. |
Response Parameters
Field | Type | Description | ||
---|---|---|---|---|
iPOS-TransactResponse ( Obj ) | ||||
responseCode * | Number | iPOS-Transact response code. Values: 200 – Successful, 400 – Declined | ||
responseMessage * | string | iPOS-Transact response message. Values: Successful, Declined | ||
errResponseCode* * | Alphanumeric | PG error response code. Values: PG error response code or payment processor error response code. Length: Up to 2 characters Example: 00, 05, … | ||
errResponseMessage* * | string | PG error response message. Values: PG error response message or payment processor error response message. | ||
transactionReferenceId * | string | Merchant's unique transaction reference ID. Format: Alphanumeric Length: Up to 20 characters | ||
transactionType * | Number | Type of transaction to be processed. Values: 1 – Sale 2 – Void 3 – Refund | ||
amount | Float | Amount voided/refunded. Format: xxxxxx.xx | ||
responseApprovalCode | string | Response Approval Code. Format: Alphanumeric Length: 6 characters | ||
RRN | Number | Unique retrieval reference number. Length: 12 characters | ||
transactionId * | Number | PG response unique transaction ID. Length: 32 characters | ||
transactionNumber | Number | Invoice or transaction number. Length: 4 digits | ||
batchNumber | Number | Batch number. Length: 3 digits | ||
totalAmount | Float | Total amount charged to the customer. Format: xxxxxx.xx Length: Up to 8 characters | ||
customFee | Float | Custom fee charged to the customer. Format: xxxxxx.xx | ||
chdToken | String | Tokenized card data, sent in response if the requestCardToken field is set to true in the request. Format: Alphanumeric |
iposTransact API – Sale using Token – JSON Request Sample
{
"token": ""
};
{
"merchantAuthentication": {
"merchantId": "",
"transactionReferenceId": ""
},
"transactionRequest": {
"transactionType": 1, // Sale (using token)
"amount": "", // Amount to be refunded, example 1000 for 10$ i.e. 10x100
"cardToken": "", // Transactions initiated from iPOS Transact API (Optional for GooglePay and PaymentTokenId)
"paymentTokenId": "", // Transactions initiated from Freedom to Design (Optional for GooglePay)
"applySteamSettingTipFeeTax": true/false
},
"preferences": {
"eReceipt": true/false,
"customerName": "Customer_Name",
"customerEmail": "Customer_Email",
"customerMobile": "Customer_mobile_number_with_ISD_code"
},
"Avs": {
"StreetNo": "23453",
"Zip": "12344"
},
"GooglePay": "<GooglePay-Token>"
}
iposTransact API – Sale using Token – JSON Response Sample
{
"errors": [
{
"field": "merchantAuthentication.merchantId",
"message": "Invalid Merchant Id"
},
{
"field": "transactionRequest.RRN",
"message": "Invalid RRN number"
},
...
]
}
Payment Processor Response - Upon sale transaction success or decline
{
"iposTransactResponse": {
"responseCode": "iPOS-HP response code like 200, 400, ...",
"responseMessage": "Successful/Declined",
"errResponseCode": "Error response code",
"errResponseMessage": "Error response message",
"transactionReferenceId": "merchant unique transaction reference id sent on request",
"transactionType": 1, // Sale
"transactionId": "Unique transaction Id of payment processor",
"transactionNumber": "4 digits of transaction number from payment processor",
"batchNumber": "3 digits of batch number from payment processor",
"amount": "base amount or total amount charged",
"customFee": "custom fee",
"totalAmount": "total amount charged",
"responseApprovalCode": "response approval code from processor ex: TAS164",
"RRN": "retrieval reference number from processor #219313501821"
}
}
iPOS Transact API – Sale transaction Using Token (Postman Simulator URL)
URL | yet to share sandbox postman URL |
---|
Transaction Type: Void | Refund | Ticket and Tip Adjust
-
A Void transaction is used to cancel a previously authorized transaction before the batch is closed and sent to the processor.
-
A Refund transaction is used to refund the amount back to the customer after the batch has been settled. The refund amount is then sent to the processor.
-
A Ticket transaction is used to retrieve and process the amount that was temporarily held in the Pre Auth transaction.
-
Tip Adjust enables users to modify the tip amount on a transaction before the batch is settled and sent to the processor. This feature is available only if the tip option is enabled for the TPN on the portal.
ipos-transact API request contains 3 primary objects
Objects | Description |
---|---|
Token | Required: Includes the AuthToken information to be sent in the request header. |
merchantAuthentication | Required: Contains merchant authentication details, such as the TPN number and a unique transaction reference ID. |
transactRequest | Required: Includes details such as transaction type, RRN, and the amount for processing payments, voids, or refunds. |
Request Method
HTTPS Request Method | POST |
---|
iposTransact API Endpoint
Objects | Description |
---|---|
Sandbox URL * | https://payment.ipospays.tech/api/v1/iposTransact |
Production URL * | https://payment.ipospays.com/api/v1/iposTransact |
Request Parameters
Request Parameters (Header)
Objects | Description |
---|---|
token | AuthToken. It can be generated in the Settings section of the portal. |
JSON Content-Type | application/json |
Request Parameters (Body)
Field | Type | Description | ||
---|---|---|---|---|
merchantAuthentication ( Obj ) | ||||
merchantId * | Number | TPN number registered on the portal. TPN Number registered in iPOS. Example Value: 139322815010 Length: 12 digits | ||
transactionReferenceId * | string | Merchant's unique transaction reference ID. Format: Alphanumeric Length: ≤ 20 characters | ||
transactRequest ( Obj ) | ||||
amount | String | Amount (in USD) to be voided or refunded. This amount can be equal to or less than the settled amount. Details: Multiply the USD amount by 100. Length: Up to 8 characters Format: 12525 (for $125.25 × 100) | ||
RRN * | Number | Unique retrieval reference number. Length: 12 characters | ||
transactionType * | Number | The type of transaction to be processed. Default: 3 Values: 1 – Sale 2 – Void 3 – Refund 6- Ticket 7-TipAdjust |
Response Parameters
Field | Type | Description | ||
---|---|---|---|---|
iPOS-TransactResponse ( Obj ) | ||||
responseCode * | Number | iPOS-Transact response code Values: 200 – Successful 400 – Declined | ||
responseMessage * | string | iPOS-Transact response message Values: Successful, Declined | ||
errResponseCode* * | Alphanumeric | PG error response code or payment processor error response code. Values: PG error response code or payment processor error response code (e.g., 00, 05, etc.). Length: Up to 2 characters Note: Error code & message details are shared at the end of this document. | ||
errResponseMessage* * | string | PG error response message or payment processor error response message. Values: PG error response message / Payment processor error response message Note: Error code & message details are shared at the end of this document. | ||
transactionReferenceId * | string | Merchant unique transaction reference id Format: Alphanumeric Length: <=20 chars required | ||
transactionType * | Number | Type of transactions to be processed. Note: 1 – sale, 2 – void, 3 – refund | ||
amount | Float | Amount voided/refunded Format: xxxxxx.xx | ||
responseApprovalCode | string | Response Approval Code Format: Alphanumeric Length: 6 chars | ||
RRN | Number | Unique retrieval reference number Length: 12 characters | ||
transactionId * | Number | PG response unique transaction id Length: 32 characters | ||
transactionNumber | Number | Invoice of Transaction number Length: 4 digits | ||
batchNumber | Number | Batch Number Length: 3 digits |
iposTransact API – JSON Request Sample
{
"token": ""
};
{
"merchantAuthentication": {
"merchantId": "",
"transactionReferenceId": ""
},
"transactionRequest": {
"transactionType": <2-void / 3-refund / 6-ticket, 7-tipadjust>,
"rrn": "<rrn Number>", // RRN number received for original Transaction
"amount": "" // Amount to be refunded | TipAdjust | Ticket, example 1000 for $10 i.e. 10x100
}
}
iposTransact API – JSON Response Sample
{
"errors": [
{
"field": "merchantAuthentication.merchantId",
"message": "Invalid Merchant Id"
},
{
"field": "transactionRequest.RRN",
"message": "Invalid RRN number"
},
...
]
}
Payment Processor Response - Upon transaction success or decline
{
"iposTransactResponse": {
"responseCode": "iPOS-HP response code like 200, 400",
"responseMessage": "Successful/Declined",
"errResponseCode": "Error response code from PG",
"errResponseMessage": "Error response message from PG",
"transactionReferenceId": "merchant unique transaction reference id sent on request",
"transactionType": "2 - void, 3 - refund, 6 - ticket, 7 - tipadjust",
"transactionId": "Unique transaction Id of PG",
"amount": "amount or total amount refunded",
"responseApprovalCode": "response approval code from processor ex: TAS164",
"rrn": "retrieval reference number from processor #219313501821",
"transactionNumber": "4 digits of transaction invoice number from processor",
"batchNumber": "3 digits of batch number from processor"
}
}
iposTransact API – (Postman) Simulator URL
URL | https://documenter.getpostman.com/view/21863361/2s83tCKYRA (opens in a new tab) |
---|
Transaction Type: Incremental Auth
Incremental Authorization allows merchants to easily adjust a Pre Auth transaction when a customer exceeds the initial amount, without having to void and reprocess the transaction. This is especially useful in dynamic environments like bars or restaurants, where customer spending may fluctuate. Merchants can add up to five incremental auth, where each increment will be added to the original Pre-Auth amount
Use Case Example:
Imagine a customer at a bar buys drinks and the merchant performs a Pre Auth transaction of $50 for their drinks. Throughout the evening, they order more, and their bill exceeds the pre-authorized amount. Traditionally, the merchant would have to void the original transaction and start a new one for the higher total. With Incremental Auth, the merchant can simply increase the authorized amount without interrupting the payment process or causing inconvenience to the customer.
Objects | Description |
---|---|
Token | Required: Includes the AuthToken information to be sent in the request header. |
merchantAuthentication | Required: Contains merchant authentication details, such as the TPN number and a unique transaction reference ID. |
transactRequest | Required: Includes details such as transaction type |
Request Method
HTTPS Request Method | POST |
---|
iposTransact API Endpoint
Objects | Description |
---|---|
Sandbox URL * | https://payment.ipospays.tech/api/v1/iposTransact |
Production URL * | https://payment.ipospays.com/api/v1/iposTransact |
Request Parameters
Request Parameters (Header)
Objects | Description |
---|---|
token | AuthToken. It can be generated in the Settings section of the portal. |
JSON Content-Type | application/json |
Request Parameters (Body)
Field | Type | Description | ||
---|---|---|---|---|
merchantAuthentication ( Obj ) | ||||
merchantId * | Number | TPN Number registered on the portal. Length: 12 digits Example Value: 139322815010 | ||
transactRequest ( Obj ) | ||||
amount | Number | Request amount for Incremental Auth | ||
RRN | Number | Original Pre Auth RRN number | ||
transactionType * | Number | The type of transaction to be processed. Default: 4 Values: 4 – Batch Settlement | ||
preferences ( Obj ) | ||||
eReceipt * | Boolean | Request amount for Incremental Auth | ||
customerName | String | Original Pre Auth RRN number | ||
customerEmail | String | The type of transaction to be processed. Default: 4 Values: 4 – Batch Settlement | ||
customerMobile | String | The type of transaction to be processed. Default: 4 Values: 4 – Batch Settlement |
Response Parameters
Field | Type | Description | ||
---|---|---|---|---|
iPOS-TransactResponse ( Obj ) | ||||
responseCode * | Number | iPOS-Transact response code Values: 200 – Successful 400 – Declined | ||
responseMessage * | string | iPOS-Transact response message Values: Successful, Declined | ||
errResponseCode* * | Alphanumeric | PG error response code Values: PG error response code or payment processor error response code Length: Up to 2 characters Processor Response Code: 2 characters. Example: 00, 05, … Note: Error code & message details are shared at the end of this document. | ||
errResponseMessage* * | string | PG error response message Values: PG error response message / Payment processor error response message | ||
transactionReferenceId * | string | Merchant's unique transaction reference ID. Format: Alphanumeric Length: <=20 characters required | ||
transactionType * | Number | Type of transactions to be processed. Values: 1 – sale 2 – void 3 – refund | ||
amount | Float | Amount voided/refunded Format: xxxxxx.xx | ||
responseApprovalCode | string | Response Approval Code Format: Alphanumeric Length: 6 characters | ||
RRN | Number | Unique retrieval reference number Length: 12 characters | ||
transactionId * | Number | PG response unique transaction id Length: 32 characters | ||
transactionNumber | Number | Invoice of Transaction number Length: 4 digits | ||
batchNumber | Number | Batch Number Length: 3 digits |
{
"merchantAuthentication": {
"merchantId": "962923571839",
"transactionReferenceId": "87813a46a578216876a3"
},
"transactionRequest": {
"transactionType": 8,
"amount": "500",
"rrn": "412308501306"
},
"preferences": {
"eReceipt": true,
"customerName": "Sujith",
"customerEmail": "schennur@denovosystem.com",
"customerMobile": "+919030427945"
}
}
{
"iposhpresponse": {
"responseCode": "200",
"responseMessage": "Success",
"errResponseCode": "",
"errResponseMessage": "",
"transactionReferenceId": "87813a46a578216876a3",
"transactionType": "11",
"transactionId": "64488977724057183920240503023758",
"amount": "500",
"responseApprovalCode": "TAS437",
"rrn": "412308501306",
"transactionNumber": "19",
"batchNumber": "318",
"totalAmount": "500",
"customFee": "",
"localTax": "",
"stateTax": ""
}
}
Transaction Type: Open Batch
An Open Batch allows merchants to view all transactions, review the batch summary, and void transactions before they are settled and sent to the processor.
Objects | Description |
---|---|
Token | Required: Includes the AuthToken information to be sent in the request header. |
merchantAuthentication | Required: Contains merchant authentication details, such as the TPN number and a unique transaction reference ID. |
transactRequest | Required: Contains details such as transaction type, RRN, and amount for processing void or refund. |
Request Method
HTTPS Request Method | POST |
---|
iposTransact API Endpoint
Objects | Description |
---|---|
Sandbox URL * | https://payment.ipospays.tech/api/v1/iposTransact |
Production URL * | https://payment.ipospays.com/api/v1/iposTransact |
Request Parameters
Request Parameters (Header)
Objects | Description |
---|---|
token | AuthToken. It can be generated in the Settings section of the portal. |
JSON Content-Type | application/json |
Request Parameters (Body)
Field | Type | Description | ||
---|---|---|---|---|
merchantAuthentication ( Obj ) | ||||
merchantId * | Number | TPN Number registered on the portal. Length: 12 digits Example Value: 139322815010 | ||
transactRequest ( Obj ) | ||||
transactionType * | Number | The type of transaction to be processed. Default: 9 Values: 9 – Open Batch |
Response Parameters
Field | Type | Description | ||
---|---|---|---|---|
iPOS-TransactResponse ( Obj ) | ||||
total_without_fee * | Decimal | Total Amount without Fee Values: 1.00 | ||
batch_number * | String | Batch Number for Settlement Batch Values: 423 | ||
batch_profiles | Object | Batch Profiles Data | ||
withoutLocalTaxAmount | Decimal | Total Amount without Local Tax Values: 1.00 | ||
without_tax | Decimal | Total Amount without Tax Values: 1.00 | ||
batch_summary | Object | Batch Summary Information | ||
inx | String | Batch Summary Index Value : 1 | ||
amount | Decimal | Total Batch Settlement Amount Value : 96.94 | ||
profileId | String | Profile Number Register with TPN Value: 01 | ||
type * | String | Type of Transaction Value: SALE | ||
txName | String | Type of Transaction Value: SALE | ||
transaction_no | Number | Transaction Number Value : 2 | ||
batch_number | String | Batch Number Value : 2 | ||
fee | Decimal | Fee Amount Value : 3.63 | ||
batch_details | Object | Batch Detail Information | ||
surcharge | Number | Surcharge | ||
reducedTaxFee | String | Reduced Tax Fee | ||
groupType | String | Group Type | ||
approvalCode | String | Transaction Approval Code Value : TAS996 | ||
externalRefId | String | External Transaction Id | ||
tagValue | String | Tag Value | ||
discount | Number | Discount Amount | ||
appCode | String | Transaction Approval Code Value : TAS996 | ||
type | String | Transaction Type Value : Sale | ||
voidFlag | String | Void Status Value : N/Y | ||
posRequestTime | String | Transaction Request Time | ||
invoiceNumber | String | Invoice Number | ||
onlyTipAmt | Number | Tip Amount | ||
customFee | Number | Custome Fee | ||
approvedAmount | Decimal | Approved Txn Amount | ||
commercialTaxAmount | Number | Commercial Tax Amount | ||
reducedTax | Number | Reduced Tax Amount | ||
tagLabel | String | Tag Label Value | ||
serviceFee | Decimal | Service Fee Amount | ||
amount | Decimal | Transaction Amount | ||
tipAmount | Decimal | Tip Amount | ||
merchantFee | Decimal | Merchant Fee | ||
transactionId | String | Unique Transaction generated per Request | ||
stateTaxAmount | Decimal | State Tax Amount | ||
baseAmount | Decimal | Base Amount | ||
rrn | String | Transaction Unique Number | ||
localTaxAmount | Decimal | Local Tax Amount | ||
feeAmount | Decimal | Fee Amount | ||
profileId | String | Profile Id | ||
adjustedTipAmount | Decimal | Adjusted Tip Amount | ||
totalTaxAmount | Decimal | Total Tax Amount | ||
posRequestDate | String | Pos Request Date | ||
account | String | Transaction Initiated PAN | ||
card | String | Card Type | ||
discount | Decimal | Discount Amount | ||
settleDate | String | Settled Date | ||
batchBase | Decimal | Batch Base Amount | ||
Batch Total Amount | Decimal | Discount Amount | ||
stateTaxAmount | Decimal | State Tax Amount | ||
withoutStateTaxAmount | Decimal | Without State Tax Amount | ||
localTaxAmount | Decimal | Local Tax Amount | ||
without_discount | Decimal | Without Discount | ||
profile_name | String | Profile Name | ||
without_tip | String | Without Tip Amount | ||
profileCode | String | Profile Code | ||
tip | Decimal | Tip Amount | ||
without_fee | Decimal | Without Fee Amount | ||
taxAmount | Decimal | Tax Amount | ||
transaction_no | Number | Transaction Number | ||
processorData | Object | Processor Information | ||
Agent | String | Agent Number | ||
Chain | String | Chain Number | ||
TermNo | String | Terminal Number | ||
Agent_FIID | String | Agent Id | ||
Mid | String | Terminal Registered under Merchant Number | ||
Store | String | Registered Store Number | ||
dsGroup | String | Terminal Number | ||
TermId | String | Registered under Bank | ||
ABA_No | String | |||
total_transactions | Number | Number of transaction Settle | ||
total_fee | Decimal | Total Fee Amount | ||
cash_payment | Object | Cash Payment Transactions | ||
data | Object | Cash Payment Transactions Data | ||
cash_payment_total | Number | Total Cash Payments | ||
cash_txn_count | Number | Total Cash Txn Count | ||
alter_payments | Object | Alter Payment under TPN | ||
alter_txn_count | Number | Alter Payment Txn Count | ||
approvalCode | String | Approval Code | ||
txTimeq | String | Transaction Time | ||
DiscountFee | Decimal | Discount Fee | ||
createdAt | String | Transaction Requested Date | ||
posResponseCode | String | Pos Response Code | ||
invoiceNumber | String | Invoice Number | ||
onlyTipAmt | Decimal | Tip Amount | ||
cashDiscount | Decimal | Cash Discount Amount | ||
txName | String | Transaction Name | ||
updatedAt | String | Transaction Response Updated Date | ||
serviceFee | String | Service Fee Amount | ||
hostResponseCode | String | Host Response Code | ||
maskedPan | String | Masked PAN number | ||
additionalDetails | String | Additional Details | ||
transactionId | String | Transaction Id generated per request | ||
destType | String | Destination Name | ||
txAmount | Decimal | Transaction Amount | ||
rrn | String | Unique Transaction Number from Processor | ||
transactionType | Decimal | Type of Transaction | ||
totalAmount | Decimal | Total Amount | ||
tpn | String | Merchant Id | ||
sourceType | String | Requested Source Name | ||
commonMode | String | Mode of Request Received | ||
txDate | String | Transaction Date | ||
alter_payment_total | Decimal | Alter Payments Total Amount | ||
total_tip | Decimal | Total Tip Amount | ||
batch_total | Decimal | Batch Total Amount |
{
"merchantAuthentication": {
"merchantId": "258823860131"
},
"transactionRequest": {
"transactionType": 9
}
}
{
"iposhpresponse": {
"total_without_fee": 93.31,
"batch_number": "432",
"batch_profiles": [
{
"withoutLocalTaxAmount": 82.58,
"without_tax": 75.4,
"batch_summary": [
{
"inx": "1",
"amount": 96.94,
"profileId": "01",
"type": "SALE",
"txName": "SALE",
"transaction_no": 2
}
],
"batch_number": "432",
"fee": 3.63,
"batch_details": [
{
"surcharge": 0,
"reducedTaxFee": "",
"groupType": null,
"approvalCode": "TAS996",
"externalRefId": "0",
"tagValue": null,
"discount": 0,
"appCode": "TAS996",
"type": "SALE",
"voidFlag": "N",
"posRequestTime": "05:33:38",
"invoiceNumber": "000001",
"onlyTipAmt": 0,
"customFee": 0,
"approvedAmount": 20.65,
"commercialTaxAmount": 0,
"reducedTax": 0,
"tagLabel": null,
"serviceFee": 0,
"amount": 20.65,
"tipAmount": 0,
"merchantFee": 0,
"transactionId": "18019819047186013120240502053338",
"stateTaxAmount": 1.59,
"baseAmount": 15.88,
"rrn": "412305501499",
"localTaxAmount": 3.18,
"feeAmount": 0,
"profileId": "01",
"adjustedTipAmount": 0,
"totalTaxAmount": 4.77,
"posRequestDate": "2024-05-02",
"account": "424242******4242",
"card": "VISA"
}
],
"discount": 0,
"settleDate": null,
"batchBase": 71.77,
"batch_total": 96.94,
"stateTaxAmount": 7.18,
"withoutStateTaxAmount": 89.76,
"localTaxAmount": 14.36,
"without_discount": 96.94,
"profile_name": "with fee",
"without_tip": 96.94,
"profileCode": "01",
"tip": 0,
"without_fee": 93.31,
"taxAmount": 21.54,
"transaction_no": 2,
"processorData": {
"Agent": "000000",
"Chain": "111111",
"TermNo": "1515",
"Agent_FIID": "8954",
"Mid": "888000003338",
"Store": "5999",
"dsGroup": "894895618956",
"TermId": "75091651",
"ABA_No": "894789561"
}
}
],
"total_transactions": 2,
"total_fee": 3.63,
"cash_payment": {
"data": [],
"cash_payment_total": 0,
"cash_txn_count": 0
},
"alter_payments": {
"alter_txn_count": 27,
"data": [
{
"approvalCode": "00",
"txTime": "12:36:41",
"DiscountFee": 0,
"createdAt": "2024-05-02T07:06:46.000Z",
"posResponseCode": "00",
"invoiceNumber": null,
"onlyTipAmt": 0,
"id": "9fed09f6-4c97-4ce4-8974-2d22c4dea69c",
"cashDiscount": 0,
"txName": "SALE",
"updatedAt": "2024-05-02T07:07:12.000Z",
"serviceFee": 0,
"hostResponseCode": "00",
"maskedPan": "0000000011101010",
"additionalDetails": null,
"transactionId": "66349652588238601311714633606512",
"destType": "ACH",
"txAmount": 15.45,
"rrn": "204180145",
"transactionType": "CHECK",
"totalAmount": 15.45,
"tpn": "258823860131",
"sourceType": "ACH",
"commonMode": "WIFI",
"txDate": "2024-05-02T08:36:41.000Z"
}
],
"alter_payment_total": 410.08
},
"total_tip": 0,
"batch_total": 96.94
}
}
{
"iposhpresponse": {
"field": "IPOS_BATCH_001",
"message": "no open batch for this TPN"
}
}
Transaction Type: Batch Settlement
At the end of the business hours, when a merchant is ready to close, all transactions processed during their operating hours must be submitted to the processor to ensure the funds are transferred to their bank account.
A batch is a collection of transactions that have been processed but not yet settled. When a transaction is approved, it is added to the batch. If the batch has not yet been settled, it is considered an open batch. Transactions within an open batch can still be voided or reversed if necessary.
ipos-transact API request contains 3 primary objects
Objects | Description |
---|---|
Token | Required: Includes the AuthToken information to be sent in the request header. |
merchantAuthentication | Required: Contains merchant authentication details, such as the TPN number and a unique transaction reference ID. |
transactRequest | Required: Includes details such as transaction type |
Request Method
HTTPS Request Method | POST |
---|
iposTransact API Endpoint
Objects | Description |
---|---|
Sandbox URL * | https://payment.ipospays.tech/api/v1/iposTransact |
Production URL * | https://payment.ipospays.com/api/v1/iposTransact |
Request Parameters
Request Parameters (Header)
Objects | Description |
---|---|
token | AuthToken. It can be generated in the Settings section of the portal. |
JSON Content-Type | application/json |
Request Parameters (Body)
Field | Type | Description | ||
---|---|---|---|---|
merchantAuthentication ( Obj ) | ||||
merchantId * | Number | TPN Number registered on the portal. Length: 12 digits Example Value: 139322815010 | ||
transactionReferenceId * | string | Merchant's unique transaction reference ID. Format: Alphanumeric Length: ≤ 20 characters | ||
transactRequest ( Obj ) | ||||
transactionType * | Number | The type of transaction to be processed. Default: 4 Values: 4 – Batch Settlement |
Response Parameters
Field | Type | Description | ||
---|---|---|---|---|
iPOS-TransactResponse ( Obj ) | ||||
responseCode * | Number | iPOS-Transact response code Values: 200 – Successful 400 – Declined | ||
responseMessage * | string | iPOS-Transact response message Values: Successful, Declined | ||
errResponseCode* * | Alphanumeric | PG error response code Values: PG error response code or payment processor error response code Length: Up to 2 characters Processor Response Code: 2 characters. Example: 00, 05, … Note: Error code & message details are shared at the end of this document. | ||
errResponseMessage* * | string | PG error response message Values: PG error response message / Payment processor error response message | ||
transactionReferenceId * | string | Merchant's unique transaction reference ID. Format: Alphanumeric Length: <=20 chars required | ||
transactionType * | Number | Type of transactions to be processed. Values: 1 – sale 2 – void 3 – refund | ||
amount | Float | Amount voided/refunded Format: xxxxxx.xx | ||
responseApprovalCode | string | Response Approval Code Format: Alphanumeric Length: 6 characters | ||
RRN | Number | Unique retrieval reference number Length: 12 characters | ||
transactionId * | Number | PG response unique transaction id Length: 32 characters | ||
transactionNumber | Number | Invoice of Transaction number Length: 4 digits | ||
batchNumber | Number | Batch Number Length: 3 digits |
iposTransact API – Batch Settlement – JSON Request Sample
{
"token": ""
};
{
"merchantAuthentication": {
"merchantId": "",
"transactionReferenceId": ""
},
"transactionRequest": {
"transactionType": 4 // Batch settlement
}
}
iposTransact API – Batch Settlement – JSON Response Sample
{
"errors": [
{
"field": "merchantAuthentication.merchantId",
"message": "Invalid Merchant Id"
},
{
"field": "transactionRequest.transactionType",
"message": "Invalid Transaction Type"
},
...
]
}
Payment Processor Response - Upon batch settlement transaction success or decline response
{
"iposTransactResponse": {
"responseCode": "iPOS-HP response code like 200, 400, ...",
"responseMessage": "Successful/Declined",
"errResponseCode": "Error response code",
"errResponseMessage": "Error response message",
"transactionReferenceId": "merchant unique transaction reference id sent on request",
"transactionType": 4, // batch settlement
"transactionId": "Unique transaction Id of payment processor",
"transactionNumber": "4 digits of transaction number from payment processor",
"batchNumber": "3 digits of batch number from payment processor",
"amount": "base amount or total amount charged",
"responseApprovalCode": "response approval code from processor ex: TAS164",
"RRN": "retrieval reference number from processor #219313501821"
}
}
iposTransact API – Batch Settlement Transaction (Postman URL)
URL | yet to share sandbox postman URL |
---|
Error Response Code & Messages
For a complete list of error codes and their explanations, please visit our Error Codes Reference Page.