<queries> block to your AndroidManifest.xml so your app can detect and bind to PayCube Lite:<queries>
<package android:name="com.axs.paycube.lite" />
</queries>| transType | Keys included in checksum (sorted lexically) |
|---|---|
| SALE | amount, currencyCode, merchantRemarks (if present), posReference, scheme, transType |
| VOID | posReference, transType |
| QUERY | posReference, transType |
| INIT | activationCode, transType |
| Parameters | Required | Example | Remarks |
|---|---|---|---|
| transType | SALE | To trigger AXS payment app for payment | |
| scheme | CARD | Options of schemes: CARD,QR,ALIPAY,WECHAT,PAYNOW | |
| amount | 10 | Amount in cent. Example: 10 = $0.10 | |
| currencyCode | SGD | ISO 4217 currency codes | |
| posReference | 12345 | POS' unique identifier for the transaction | |
| merchantRemarks | Merchant Ref-1 | POS' merchant reference for the transaction Present only for CARD payment. | |
| checksum | 9e107d9d372bb682… | MD5 checksum value |
| Parameters | Required | Example | Remarks |
|---|---|---|---|
| transType | SALE | Echo from request | |
| transactionId | 12345 | For AXS PayCube Lite: Unique transaction ID returned from AXS payment gateway for each transaction For AXS PayCube Pro (Castle): Echo from request (posReference) Always use this value for future QUERY or VOID action | |
| transactionReference | M67890 | For AXS PayCube Lite: A unique reference ID for merchant to reconcile the record against Transaction Reference in AXS Merchant Portal For AXS PayCube Pro (Castle): Echo from request (posReference) | |
| status | SUCCESS | Status of the transaction. SUCCESS, DECLINED, ERROR | |
| errorCode | Optional, code is present only if the status is ERROR | ||
| errorHeader | Optional, header is present only if the status is ERROR | ||
| errorDescription | Connection timeout | Optional, description is present only if the status is ERROR | |
| scheme | VISA | Payment scheme. Available values: VISA, MASTERCARD, UNIONPAY, AMEX, PAYNOW, WECHAT, ALIPAY | |
| responseCode | 00 | Present only for CARD payment. Refer to gateway response code for more details | |
| tid | 10004657 | Terminal ID | |
| mid | 100023987253 | Unique Merchant ID assigned by AXS | |
| approvalCode | 831000 | Gateway approval code. Present only for CARD payment. | |
| transDateTime | YYYY-MM-DDTHH:mm:ssZ | Transaction timestamp ISO-8601 UTC | |
| retrievalReferenceNumber | 611204599707 | Gateway RRN. Present only for CARD payment. | |
| amount | 10 | Echo from request | |
| currencyCode | SGD | Echo from request |
| Parameters | Required | Example | Remarks |
|---|---|---|---|
| transType | VOID | Type of the transaction for the record: INIT, VOID, QUERY | |
| transactionId | 12345 | For AXS PayCube Lite: Unique transaction ID returned from AXS payment gateway for each transaction AXS PayCube Pro (Castle): Echo from request (posReference) | |
| transactionReference | M67890 | For AXS PayCube Lite: A unique reference ID for merchant to reconcile the record against Transaction Reference in AXS Merchant Portal For AXS PayCube Pro (Castle): Echo from request (posReference) | |
| status | SUCCESS | Status of the transaction. SUCCESS, DECLINED, ERROR | |
| errorCode | Optional, code is present only if the status is ERROR | ||
| errorHeader | |||
| errorDescription | Connection timeout | Optional, description is present only if the status is ERROR | |
| scheme | VISA | Payment scheme. Available values: VISA, MASTERCARD, UNIONPAY, AMEX, PAYNOW, WECHAT, ALIPAY | |
| responseCode | 00 | Present only for CARD payment. Refer to gateway response code for more details | |
| tid | 10004657 | Terminal ID | |
| mid | 100023987253 | Unique Merchant ID assigned by AXS | |
| approvalCode | 831000 | Gateway approval code. Present only for CARD payment. | |
| transDateTime | YYYY-MM-DDTHH:mm:ssZ | Date time in UTC ISO | |
| retrievalReferenceNumber | 611204599707 | Gateway RRN. Present only for CARD payment. | |
| amount | 10 | Echo from request | |
| currencyCode | SGD | From the SALE record |
| Parameters | Required | Example | Remarks |
|---|---|---|---|
| transType | INIT | To trigger AXS payment app for initialisation | |
| activationCode | 2345-5465-3245-2345 | Unique activation code assigned to individual terminal | |
| checksum | 9e107d9d372bb6826bd81d3542a419d6 | MD5 checksum value |
| Parameters | Required | Example | Remarks |
|---|---|---|---|
| transType | VOID | To trigger AXS payment app to void specific transaction | |
| posReference | 12345 | POS' unique identifier for the transaction sent during SALE | |
| checksum | 9e107d9d372bb6826bd81d3542a419d6 | MD5 checksum value |
| Parameters | Required | Example | Remarks |
|---|---|---|---|
| transType | QUERY | To trigger AXS payment app for query specific transaction | |
| posReference | 12345 | POS' unique identifier for the transaction sent during SALE / VOID | |
| checksum | 9e107d9d372bb6826bd81d3542a419d6 | MD5 checksum value |
| Scenario | Handling |
|---|---|
| status = ERROR | To trigger a QUERY command using posReference send during SALE / VOID action. |
| connection timeout | To trigger a QUERY command using posReference send during SALE / VOID action. |
| Error Code | Proposed Error Message | Remark/Scenario |
|---|---|---|
| 40_000 | Error Header: Initialization failed [40_000] Error Message: Please restart the app and try again. | InitSoftPosError |
| 40_001 | Error Header: Setup failed [40_001] Unable to complete setup. Please try again or contact support team. | SetupSoftPosError |
| 40_002 | Error Header: No configuration found [40_002] Error Message: Default configuration is missing. Please verify your setup. | NoDefaultConfig |
| 41_001 | Error Header: Payment result could not be processed [41_001] Error Message: Please try the transaction again. | ParsingActivityResultFailed |
| 41_002 | Error Header: Unable to retrieve payment profile [41_002] Error Message: Please check your connection and try again. | ProfileNotFound |
| 42_001 | Error Header: Card Detection timed out [42_001] Error Message: Please retry and ensure the card is held steady. | AbortedCardDetectionTimeout |
| 42_002 | Error Header: Transaction Aborted [42_002] Error Message: Transaction was cancelled manually. | AbortedManually - User press 'back' button / User press home button |
| 42_003 | Error Header: Unable to read Card. Retry limit exceeded. [42_003] Error Message: Please retry or use another payment method. | AbortedCardReadRetryCountExceeded |
| 43_001 | Error Header: Connection timed out [43_001] Error Message: Unable to reach the server. Please check your network. | ConnectionTimeout |
| 43_002 | Error Header: Request Failed [43_002] Error Message: There was an issue with the request. Please check your details and try again. | NetworkClientSideError |
| 43_003 | Error Header: Service Unavailable [49_003] Error Message: We're having trouble processing your request right now. Please try again shortly. | NetworkServerSideError |
| 49_000 | Error Header: Unexpected Error [49_000] Error Message: We received an unexpected response while processing your request. Please retry or contact support. | ResultNull |
| 49_001 | Error Header: Service Issue [49_001] Error Message: We couldn't complete the request due to a temporary system issue. Please try again. | OtherSourceError - Trigger logout from admin portal / expired |
| 49_002 | Error Header: Unexpected Error [49_002] Error Message: An error occurred while processing your request. Please try again. | OtherSourceException |
| FE1001 | Error Header: Amount Exceeds Limit [FE1001] Error Message: The transaction amount exceeds the maximum allowed limit. Please enter a lower amount. | Transaction amount exceeds the permitted limit |
| FE1002 | Error Header: Transaction Type Required [FE1002] Error Message: A transaction type is required to proceed. | transType field is absent or empty in the intent payload |
| FE1003 | Error Header: Unsupported Transaction Type - {transType} [FE1003] Error Message: The transaction type is not recognized. Please use a supported transaction type. | transType value is not one of the recognised values. Recognised values: Sale, Void, Query |
| FE1004 | Error Header: Missing Required Fields - {keys} [FE1004] Error Message: Required transaction details are missing. Please ensure required fields such as amount, currency, or transaction type are provided. | One or more mandatory fields missing from the intent payload. e.g. keys: amount, currency, transType |
| FE1005 | Error Header: Request Validation Failed [FE1005] Error Message: The transaction request could not be validated. Please verify the request and try again. | MD5 checksum in payload does not match computed value |
| FE1006 | Error Header: Transaction Not Authorized - {transType} [FE1006] Error Message: The requested transaction type is not authorised. Please contact service provider for assistance. | Merchant is not authorised for the given transaction type. Recognised values: Sale, Void, Query |
| FE1007 | Error Header: Payment Method Not Recognized - {scheme} [FE1007] Error Message: The selected payment method is not recognised. Please try another payment method. | Payment scheme is not recognised. e.g. scheme: Visa, Mastercard, PayNow |
| FE1008 | Error Header: Unable to Complete Transaction [FE1008] Error Message: An unexpected issue occurred during transaction processing. Please try again. | Unexpected exception during transaction execution. e.g. error: NullPointerException, IllegalArgumentException |
| FE1009 | Error Header: Transaction Cancelled [FE1009] Error Message: The transaction was cancelled before completion. | QR manually cancel |
| FE1010 | Error Header: QR Code Expired [FE1010] Error Message: The QR Code is no longer valid. Please generate a new QR code and try again. | QR expired |
| AN1001 | Error Header: Invalid Request [AN1001] Error Message: No transaction details were received. Please try again. | Null request bundle received in SoftPosBackgroundService - (When android receive nothing) |
| AN1002 | Error Header: Service Under Maintenance [AN1002] Error Message: The service is currently unavailable due to scheduled maintenance. Please try again later. | App is in maintenance mode |
| AN1003 | Error Header: App Update Required [AN1003] Error Message: Your app version ({current}) is below the minimum required version ({minimum}). Please update the app to continue. | e.g. current: 1.0.0, minimum: 1.2.0 → "App version 1.0.0 is below the minimum required version 1.2.0. Please update the app." |
| AN1004 | Error Header: Request Validation Failed [AN1004] Error Message: The transaction request could not be validated. Please verify the request and try again. | MD5 checksum in the request does not match computed value |
| AN1005 | Error Header: Unsupported Transaction Type - {transType} [AN1005] Error Message: The transaction type is not recognized. Please use a supported transaction type. | transType value is not recognised. Recognised values: INIT, SALE, VOID, QUERY, CAPTURE |
| AN1006 | Error Header: Missing Activation Code [AN1006] Error Message: The activation request is missing the required activation code. Please verify the request and try again. | activationCode field missing from INIT request |
| AN1007 | Error Header: Activation Already Completed [AN1007] Error Message: This device has already been activated. Initialization is not required. | INIT attempted on an already-activated device |
| AN1008 | Error Header: Request Failed [AN1008] Error Message: {API_MESSAGE} | Message comes from the API response. e.g. msg: "Invalid merchant credentials", "Merchant not found", "Server timeout" |
| AN1009 | Error Header: Device Error [AN1009] Error Message: {SDK_MESSAGE} | Message comes from the SoftPOS SDK. e.g. msg: "SDK licence expired", "Hardware not supported" |
| AN1010 | Error Header: Setup Failed [AN1010] Error Message: {SETUP_ERROR_MESSAGE} | Message comes from the setup step that failed. e.g. msg: "Failed to register device", "Configuration missing" |
| AN1011 | Error Header: POS Reference Required [AN1011] Error Message: A POS reference is required to process the void transaction. | posReference field missing from VOID request |
| AN1012 | Error Header: Activation Required [AN1012] Error Message: Device activation is required before performing this operation. | VOID attempted before device is activated |
| AN1013 | Error Header: Amount Exceeds Limit [AN1013] Error Message: The transaction amount exceeds the permitted limit. Please enter a lower amount. | Request more than the amount |
| AN1014 | Error Header: Unable to Void Transaction [AN1014] Error Message: Void is only available for same-day transactions | VOID attempted on a non-same-day transaction |
| AN1015 | Error Header: Void Failed [AN1015] Error Message: {VOID_API_MESSAGE} | Message comes from the VOID API response. e.g. msg: "Transaction already voided", "Original transaction not found" |
| AN1016 | Error Header:**POS Reference Required [AN1016]**Error Message:A POS reference is required to perform this operation. | posReference field missing from QUERY request |
| AN1017 | Error Header: Activation Required [AN1017] Error Message: Device activation is required before performing this operation. | QUERY attempted before device is activated |
| AN1018 | Error Header: Transaction Not Found [AN1018] Error Message: The transaction could not be found. Please verify the transaction details and try again. | QUERY returned no matching transaction for the given posReference |
| AN1024 | Error Header: Transaction Failed [AN1024] Error Message: An unexpected error occurred while processing the transaction. Please try again. | Unexpected exception in headless transaction flow. e.g. msg: "NullPointerException: amount is null", "IllegalStateException" |
| AN1025 | Error Header: Unexpected Error [AN1025] Error Message: We were unable to process your request. Please try again. | Fallback error for unhandled finishWithError cases |