POS Integration Guide
POS Integration using QRCode
Introduction
Are you a merchant partner looking to integrate octifi in your Application/POS terminal?
Welcome
Integrate OctiFi by integrating a dynamic qrcode within your App.
Step 1: Create a dynamic qrcode by passing a bill {} to LatitudePay api (details below). Show the qrcode on your terminal.
Step 2: Customer scans the qrcode pay using octifi App

ο»Ώ
Step 3: If you need updates on the order use the status api (details below)
Staging vs Live Environment
- This document only covers the staging environment api's.
Authorization
- The api to create the dynamic qrcode requires an authorization key.
- Include the following header:
HTTP_AUTHORIZATION: Api-Key <your public key>
Apis
How to generate dynamic QRCode
{
"metadata": {
"key1":"value1",
"key2":"value2"
},
"merchant": {
"merchant_id": "",
"store_id": "6",
"terminal_id": "7",
"public_key": "demo_hardcoded_public_key_btL7eqg9_fixed_my"
},
"bill": {
"merchant_order_id":"f0f73318-73d8-4df6-b801-0d0096da082b",
"display_name": "string",
"tax_amount": 0.0,
"total_amount": 100,
"currency": "MYR",
"reference_id": "string",
"pre_checkout_token": "string",
"type": "OFFLINE",
"version": "v2"
},
"customer": {
"phone_number": "+65599017300",
"email": "[email protected]"
}
}Example Curl command
curl --location --request POST 'https://latitudepay.me/api/v2/partner/qrcode/' \
--header 'Authorization: Api-Key demo_hardcoded_public_key_btL7eqg9_fixed_my' \
--header 'Content-Type: application/json' \
--data-raw '{
"metadata": {
"key1":"value1",
"key2":"value2"
},
"merchant": {
"merchant_id": "",
"store_id": "string",
"terminal_id": "string",
"public_key": "demo_hardcoded_public_key_btL7eqg9_fixed_my"
},
"bill": {
"merchant_order_id": "67baeb37-904f-4bc8-9b31-61cf25f12c7e",
"display_name": "Macbook Pro 2020",
"tax_amount": 0.0,
"total_amount": 2400.99,
"currency": "MYR",
"reference_id": "string",
"pre_checkout_token": "string",
"type": "OFFLINE",
"version": "v2"
},
"customer": {
"phone_number": "+60599625033",
"email": "[email protected]"
}
}'Response:
- Note down the qrcode text (which is a deep link) to be shown as a Qrcode Text
2. Note down the qrcode_id which can be used next in the status api.
Status Api
We provide the status API as well to check the status of the QRCode above.
Result:
Keep calling the /status api until status changes to "SUCCESS".
These are valid values for status:
- PENDING : meaning order is still pending customer payment
- SUCCESS : customer payment is complete
- FAILED : customer payment is failed.
Timeout in status
- We recommend that you keep calling the status api with 5second delay for upto 10mins to 15mins (until customer has made the final payment).
ο»Ώ
WebHooks
ο»Ώ