Developer ZoneRecipesAPI ReferenceChangelog
Developer Zone

Payment

Transaction API supports SALE and PRE-AUTH operations. This endpoint is used to initiate a new transaction.

📘

API Parameter

Request Parameter
Response Parameters

Payment Request API

To initiate a SALE request, follow the examples below

Step 1 : Create PosRequest with Sale Intent or Auth Intent

// Sales Request
val request = PosRequest.Transaction.Sale(
  amount = BigDecimal(amount),
  posMessageId = viewModel.posMessageId,
  autoDismissResult = true
)

// Pre-Auth Request
val request = PosRequest.Transaction.Auth(
  amount = BigDecimal(amount),
  posMessageId = viewModel.posMessageId,
  autoDismissResult = true
)

Step 2 : POST the request to Payserver Transaction API

val result =
  client.post("http://${remoteIpAddress.value}:${remotePort.value}/api/v1/trans") {
    contentType(ContentType.Application.Json)
    setBody(request)
  }
val response = result.body<PosResponse<TransactionResponse>>()
{
 "rspCode" : "0",
 "rspMsg": "Success",
 "data" : {
  "tranId": "M9279873298",
  "trace": "M9279873298",
  "rrn": "897323",
  "tranType": "SALE",
  "tranStatus": "Approved",
  "approvalCode": "979384",
  "paymentMethod": "Visa",
  "cardData" : {
    "aid": "",
    "appName": "",
    "tc": "",
    "tsi": "",
    "tvr": ""
  },
  "entryMode" : "NFC",
  "maskedAccount": "**** **** **** 1234",
  "cvmPerformed": "NO_CVM",
  "acqMid": "MID98392",
  "acqTid": "0001",
  "posMessageId": "{merchant unique reference no}",
  "mchAddress": "",
  "mchName": "2C2P Pte Ltd",
  "totalAmount": 60.00,
  "createByName": "",
  "createdAt": "1744687184773",
  "updatedAt": "1744687184773"
 }
}