Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Installation & Testing

  1. Build and run the Backend Wavelet POS Software.

  2. Connect POS Terminal to the SAME Wi-Fi Network as the device running the Backend Wavelet POS Software. Note down the IPv4 Address of the POS Terminal.

    image-20241217-075034.png
  3. From the POS Terminal, go to Management > Config and then do the following:

    1. Input the System Administrator Password (This will vary, but at the time of writing was ‘88888888’)

    2. Go to EDC

    3. Scroll down to TCP/IP and note down the TCP/IP Port (Again, this will vary, but at the time of writing it was 8080).

  4. Install Postman from this link

    image-20241217-065332.png
  5. Create a WebSocket request

    1. Click on New > WebSocket

      image-20241217-065627.pngimage-20241217-081249.png
    2. Paste the URL as ws://localhost:[INSERT-YOUR-PORT-NUMBER-HERE]/revenue-terminal-websocket?terminalId=[INSERT-TERMINAL-ID-HERE] where [INSERT-YOUR-PORT-NUMBER-HERE] denotes the Port Number of the Backend Console and [INSERT-TERMINAL-ID-HERE] denotes the unique identifier for that POS Terminal.

      image-20241217-081406.png

    3. Click Connect

  6. Create HTTP requests for each endpoint.

    1. Click on New > HTTP

      image-20241217-065627.pngimage-20241217-065641.png
    2. Select the appropriate request method and enter the specific endpoint prefixed with http://localhost:[INSERT-YOUR-PORT-NUMBER-HERE] where [INSERT-YOUR-PORT-NUMBER-HERE] denotes the Port Number of the Backend Console

      image-20241217-065826.png
  7. For each of the HTTP requests created in Postman, do the following:

    1. Set the terminalIp parameter to the IPv4 Address of the POS Terminal

    2. Set the terminalPort parameter to the TCP/IP Port of the POS Terminal

    3. Set the terminalId Parameter to the unique identifier for that specific POS Terminal

    4. If there are any additional parameters for that specific HTTP request, add them.

  8. Send the respective HTTP request.

API Documentation

Swc macro
attachmentopenapi (4).yaml

GET /ping

/revenue-terminals/ping

Pings the terminal to establish a WebSocket connection.

Parameters

terminalIp: The IP address of the terminal

...

terminalId: An identifier for the terminal

WebSocket Response (OK)

Code Block
{
  "pay_resp_error_desc":"OK",
  "pay_function":"05"
}

WebSocket Response (CARD INSERT)

Code Block
{
  "pay_resp_error_desc":"Card Insert",
  "pay_function":"05"
}

POST /card-sale

/revenue-terminals/card-sale

Processes a card sale transaction.

Parameters

terminalIp: The IP address of the terminal

...

payAmount: The monetary amount of the card sale transaction (in decimal format)

WebSocket Response

Code Block
{
  "pay_resp_issuer_id":"01",
  "pay_resp_error_desc":"APPROVED",
  "pay_function":"01",
  "pay_resp_qr_txn_id":"",
  "pay_resp_invoice_no":"3",
  "pay_resp_scheme":"VISA",
  "pay_resp_batch_no":"1",
  "pay_resp_txn_date":"190902",
  "pay_resp_txn_time":"141130",
  "pay_print_receipt_id":"Y",
  "pay_resp_qr_wallet_id":"",
  "pay_resp_code":"00",
  "pay_resp_card_app_cryptogram":"8B76DB79FBAB8C56",
  "pay_resp_app_label":"VISACREDIT",
  "pay_resp_card_ref_num":"123456789012",
  "pay_camera_mode":"",
  "pay_resp_card_auth_code":"111111",
  "pay_resp_card_aid":"A0000000031010",
  "pay_resp_merch_info":"DEFAULT\n\n\n\n\n",
  "pay_resp_mid":"048800001467398",
  "pay_resp_tid":"50009643",
  "pay_resp_tvr":"0880048000",
  "pay_resp_customer_id":"",
  "pay_type":"01",
  "pay_resp_trace_no":"7",
  "pay_resp_cvm_desc":"PIN VERIFIED\nNOSIGNATURE REQUIRED",
  "pay_resp_card_no":"450920******0252",
  "pay_amount":"100"
}

POST /{paymentProvider}/card-sale

...

Processes a card sale transaction for a specified payment provider.

Parameters

paymentProvider: The specified payment provider (refer to here for the format)

...

payAmount: The monetary amount of the card sale transaction (in decimal format)

POST /cancel-sale

/revenue-terminals/cancel-sale

Cancels the current sale transaction.

Parameters

terminalIp: The IP address of the terminal

...

terminalId: An identifier for the terminal

WebSocket Response

Code Block
{
  "pay_function":"07",
  "pay_resp_code":"00"
}

POST /void-sale

/revenue-terminals/void-card-sale

Voids the current sale transaction.

Parameters should be passed as query parameters.

terminalIp

The IP address of the terminal

terminalPort

The port number of the terminal for the connection

terminalId

An identifier for the terminal

traceNo

The trace number of the transaction to be voided

payAmount

The monetary amount of the sale transaction to be voided (in decimal format)

WebSocket Response

Code Block
{
  "pay_resp_issuer_id":"01",
  "pay_resp_error_desc":"APPROVED",
  "pay_function":"02",
  "pay_resp_qr_txn_id":"",
  "pay_resp_invoice_no":"3",
  "pay_resp_scheme":"VISA",
  "pay_resp_batch_no":"1",
  "pay_resp_txn_date":"190902",
  "pay_resp_txn_time":"141638",
  "pay_print_receipt_id":"Y",
  "pay_resp_qr_wallet_id":"",
  "pay_resp_code":"00",
  "pay_resp_card_app_cryptogram":"8B76DB79FBAB8C56",
  "pay_resp_app_label":"VISACREDIT",
  "pay_resp_card_ref_num":"123456789012",
  "pay_resp_card_auth_code":"111111",
  "pay_resp_merch_info":"DEFAULT\n\n\n\n\n",
  "pay_resp_mid":"048800001467398",
  "pay_resp_tid":"50009643",
  "pay_resp_tvr":"0880048000",
  "pay_resp_customer_id":"",
  "pay_type":"01",
  "pay_resp_trace_no":"9",
  "pay_resp_cvm_desc":"NO PIN\nNO SIGNATUREREQUIRED",
  "pay_resp_card_no":"450920******0252",
  "pay_amount":"100"
}

POST /settlement

/revenue-terminals/settlement

Processes a settlement request.

Parameters should be passed as query parameters.

terminalIp

The IP address of the terminal

terminalPort

The port number of the terminal for the connection

terminalId

An identifier for the terminal

POST /qr-sale

/revenue-terminals/qr-sale

Processes a QR sale transaction.

Parameters should be passed as query parameters.

terminalIp

The IP address of the terminal

terminalPort

The port number of the terminal for the connection

terminalId

An identifier for the terminal

payAmount

The monetary amount of the QR sale transaction (in decimal format)

WebSocket Response

Code Block
{
  "pay_resp_issuer_id":"80",
  "pay_resp_error_desc":"SUCCESS",
  "pay_function":"01",
  "pay_resp_qr_txn_id":"2020090222001476870501103854",
  "pay_resp_invoice_no":"2",
  "pay_resp_scheme":"ASP",
  "pay_resp_batch_no":"1",
  "pay_resp_txn_date":"190902",
  "pay_resp_txn_time":"143023",
  "pay_print_receipt_id":"Y",
  "pay_resp_qr_wallet_id":"202009021430236557",
  "pay_resp_code":"00",
  "pay_resp_card_app_cryptogram":"",
  "pay_resp_app_label":"",
  "pay_resp_card_ref_num":"",
  "pay_camera_mode":"02",
  "pay_resp_card_auth_code":"",
  "pay_resp_card_aid":"",
  "pay_resp_merch_info":"DEFAULT\n\n\n\n\n",
  "pay_resp_mid":"000000000000189",
  "pay_resp_tid":"88880001",
  "pay_resp_tvr":"",
  "pay_resp_customer_id":"",
  "pay_type":"02",
  "pay_resp_trace_no":"11",
  "pay_resp_cvm_desc":"SIGNATURE ISREQUIRED",
  "pay_resp_card_no":"284424********2767",
  "pay_amount":"10"
}

POST /{paymentProvider}/qr-sale

...

Processes a QR sale transaction for a specified payment provider.

Parameters should be passed as query parameters.

paymentProvider

The specified payment provider (refer to here for the format)

terminalIp

The IP address of the terminal

terminalPort

The port number of the terminal for the connection

terminalId

An identifier for the terminal

payAmount

The monetary amount of the QR sale transaction (in decimal format)

POST /qr-void

/revenue-terminals/qr-void

Voids a QR sale transaction.

Parameters should be passed as query parameters.

terminalIp

The IP address of the terminal

terminalPort

The port number of the terminal for the connection

terminalId

An identifier for the terminal

payAmount

The monetary amount of the QR sale transaction to be voided (in decimal format)

WebSocket Response

Code Block
{
  "pay_resp_issuer_id":"80",
  "pay_resp_error_desc":"SUCCESS",
  "pay_function":"02",
  "pay_resp_qr_txn_id":"2020090222001476870501103854",
  "pay_resp_invoice_no":"2",
  "pay_resp_scheme":"ASP",
  "pay_resp_batch_no":"1",
  "pay_resp_txn_date":"190902",
  "pay_resp_txn_time":"143240",
  "pay_print_receipt_id":"Y",
  "pay_resp_qr_wallet_id":"202009021432433313",
  "pay_resp_code":"00",
  "pay_resp_card_app_cryptogram":"",
  "pay_resp_app_label":"",
  "pay_resp_card_ref_num":"",
  "pay_resp_card_auth_code":"",
  "pay_resp_merch_info":"DEFAULT\n\n\n\n\n",
  "pay_resp_mid":"000000000000189",
  "pay_resp_tid":"88880001",
  "pay_resp_tvr":"",
  "pay_resp_customer_id":"",
  "pay_type":"02",
  "pay_resp_trace_no":"12",
  "pay_resp_cvm_desc":"SIGNATURE IS REQUIRED",
  "pay_resp_card_no":"",
  "pay_amount":"10"
}

POST /qr-inquiry/trace-no

/revenue-terminals/qr-inquiry/trace-no

Processes a QR Sale Inquiry.

Parameters should be passed as query parameters.

terminalIp

The IP address of the terminal

terminalPort

The port number of the terminal for the connection

terminalId

An identifier for the terminal

payAmount

The monetary amount of the sale transaction (in decimal format)

(Optional) traceNo

The trace number of the transaction, if any

(Optional) invoiceNo

The invoice number of the transaction, if any

POST /my-debit-sale

/revenue-terminals/my-debit-sale

Processes a debit sale transaction.

Parameters should be passed as query parameters.

terminalIp

The IP address of the terminal

terminalPort

The port number of the terminal for the connection

terminalId

An identifier for the terminal

payAmount

The monetary amount of the my debit sale transaction (in decimal format)

payAddAmount

The monetary amount of the my debit sale transaction (in decimal format) to be added

WebSocket Response

Code Block
{
  "pay_amount":"150",
  "pay_add_amount":"50",
  "pay_function":"04",
  "pay_type":"",
  "pay_camera_mode":"",
  "pay_print_receipt_id":"Y",
  "pay_resp_txn_date":"",
  "pay_resp_txn_time":"",
  "pay_resp_invoice_no":"7",
  "pay_resp_trace_no":"12",
  "pay_resp_batch_no":"1",
  "pay_resp_scheme":"MYDEBIT",
  "pay_resp_tid":"02286949",
  "pay_resp_mid":"550002000001546",
  "pay_resp_card_auth_code":"023811",
  "pay_resp_card_ref_num":"000012087649",
  "pay_resp_card_no":"519603******0175",
  "pay_resp_issuer_id":"15",
  "pay_resp_card_aid":"A0000006150001",
  "pay_resp_card_app_cryptogram":"FC9CD0C750E70FB6",
  "pay_resp_qr_txn_id":"",
  "pay_resp_qr_wallet_id":"",
  "pay_resp_customer_id":"",
  "pay_resp_code":"00",
  "pay_resp_error_desc":"APPROVED",
  "pay_resp_merch_info":"OCBC TESTING V5 u3\nWISMA REVENUE\nNO.12, JALAN UDANGHARIMAU2\nKEPONGBUSINESSPARK\n51200KUALA LUMPUR\n00.00.05_20200625",
  "pay_resp_tvr":"8000048000",
  "pay_resp_cvm_desc":"",
  "pay_resp_app_label":"MyDebit"
}

POST /installment

/revenue-terminals/installment

Processes an installment sale transaction.

Parameters should be passed as query parameters.

terminalIp

The IP address of the terminal

terminalPort

The port number of the terminal for the connection

terminalId

An identifier for the terminal

installmentTenure

The length of time for which the sale transaction will be paid over in installments.

payAmount

The monetary amount of the sale transaction (in decimal format)

WebSocket Response

Code Block
{
  "pay_resp_issuer_id":"",
  "pay_resp_error_desc":"APPROVED",
  "pay_function":"08",
  "pay_resp_qr_txn_id":"",
  "pay_resp_invoice_no":"3",
  "pay_resp_scheme":"VISA_IPP",
  "pay_resp_batch_no":"1",
  "pay_resp_txn_date":"190902",
  "pay_resp_txn_time":"165146",
  "pay_print_receipt_id":"Y",
  "pay_resp_qr_wallet_id":"",
  "pay_resp_code":"00",
  "pay_resp_card_app_cryptogram":"753DD5A7FC59B21B",
  "pay_resp_app_label":"VISACREDIT",
  "pay_first_amount":"0",
  "pay_resp_card_ref_num":"123456789012",
  "pay_camera_mode":"",
  "pay_resp_card_auth_code":"111111",
  "pay_resp_card_aid":"A0000000031010",
  "pay_monthly_amount":"0",
  "pay_resp_merch_info":"DEFAULT\n\n\n\n\n",
  "pay_resp_mid":"000000000000000",
  "pay_resp_tid":"00000000",
  "pay_resp_tvr":"0880048000",
  "pay_installment_tenure":"6",
  "pay_resp_customer_id":"",
  "pay_type":"",
  "pay_resp_trace_no":"16",
  "pay_resp_cvm_desc":"PIN VERIFIED\nNO SIGNATUREREQUIRED",
  "pay_resp_card_no":"490281******7095",
  "pay_amount":"50000"
}

POST /pre-auth

/revenue-terminals/pre-auth

Processes a pre-authorization request.

Parameters should be passed as query parameters.

terminalIp

The IP address of the terminal

terminalPort

The port number of the terminal for the connection

terminalId

An identifier for the terminal

payAmount

The monetary amount of the sale transaction (in decimal format)

POST /sale-completion

/revenue-terminals/sale-completion

Processes a sale completion.

Parameters should be passed as query parameters.

terminalIp

The IP address of the terminal

terminalPort

The port number of the terminal for the connection

terminalId

An identifier for the terminal

payAmount

The monetary amount of the sale transaction (in decimal format)

payAuthCode

The authorization code of the sale transaction

POST /sale-with-pos-txn-id

/revenue-terminals/sale-with-pos-txn-id

Processes a sale transaction with POS Transaction ID.

Parameters should be passed as query parameters.

terminalIp

The IP address of the terminal

terminalPort

The port number of the terminal for the connection

terminalId

An identifier for the terminal

payAmount

The monetary amount of the sale transaction (in decimal format)

posTxnId

The identifier for the POS Transaction

WebSocket Response

Code Block
{
  "pay_amount":"14",
  "pay_add_amount":"",
  "pay_function":"01",
  "pay_type":"",
  "pay_camera_mode":"01",
  "pay_print_receipt_id":"Y",
  "pay_resp_txn_date":"",
  "pay_resp_txn_time":"",
  "pay_resp_invoice_no":"4",
  "pay_resp_trace_no":"6",
  "pay_resp_batch_no":"1",
  "pay_resp_scheme":"VISA",
  "pay_resp_tid":"80000092",
  "pay_resp_mid":"000018888888888",
  "pay_resp_card_auth_code":"111111",
  "pay_resp_card_ref_num":"123456789012",
  "pay_resp_card_no":"450920******0252",
  "pay_resp_issuer_id":"01",
  "pay_resp_card_aid":"A0000000031010",
  "pay_resp_card_app_cryptogram":"7B65CBF9C995D720",
  "pay_resp_qr_txn_id":"",
  "pay_resp_qr_wallet_id":"",
  "pay_resp_customer_id":"",
  "pay_resp_code":"00",
  "pay_resp_error_desc":"APPROVED",
  "pay_resp_merch_info":"OCBC TESTING V5 u3\nWISMA REVENUE\nNO.12, JALAN UDANG HARIMAU2\nKEPONGBUSINESSPARK\n51200 KUALA LUMPUR\n00.00.05_20200625",
  "pay_resp_tvr":"0000000000",
  "pay_resp_cvm_desc":"",
  "pay_resp_app_label":"VISA CREDIT"
}

...