Manual Override - Network Disconnect

Spice provides a workflow in the event of a permanent disconnection during a transaction.

This workflow is trigged when a transaction is initiated from the POS through Spice and onto the EFTPOS terminal successfully. If a permanent network disconnection occurs at this point. The transaction can still be completed by the EFTPOS terminal using its mobile SIM but the transaction response cannot be returned to the POS via the adaptor. In this event the adaptor will attempt to recover. If it cannot recover the adaptor will prompt the user to check if the transaction was successful or if it failed. This check can be completed on the EFTPOS terminal. The user is then asked to confirm the outcome of the transaction with the below screen.

The choice of the user will result in two potential responses back to the POS.

Transaction Successful: If the user is confident that the transaction was successful they will select "Yes" on the adaptor pop-up. This will return a successful transaction response but without the receipt block. The response will also include an "user_override" flag which identifies it as a transaction that has been manually overridden. If the transaction has been marked as successful by the user, the POS should close the sale.

Transaction Failed: If the user is confident that the transaction was unsuccessful they will select "No" on the adaptor pop-up. This will return a transaction failed response. The response will also include an "user_override" flag which identifies it as a transaction that has been manually overridden. If the transaction has been marked as successful by the user, the sale should remain open.

Examples of these responses are available below:

{
    "Response": {
        "pos_ref_id": "95eb8f60-f3b8-48fd-96c5-f792431f43a4",
        "purchase_amount": 1200,
        "tip_amount": 0,
        "cash_amount": 0,
        "prompt_for_cashout": false,
        "surcharge_amount": 0,
        "customer_receipt_header": "",
        "customer_receipt_footer": "",
        "merchant_receipt_header": "",
        "merchant_receipt_footer": "",
        "success": true,
        "user_override": true
    }
}
{
    "Response": {
        "pos_ref_id": "153285c0-7728-4f40-957d-5743d7a246cc",
        "purchase_amount": 1200,
        "tip_amount": 0,
        "cash_amount": 0,
        "prompt_for_cashout": false,
        "surcharge_amount": 0,
        "customer_receipt_header": "",
        "customer_receipt_footer": "",
        "merchant_receipt_header": "",
        "merchant_receipt_footer": "",
        "success": false,
        "user_override": true
    }
}

Sequence Diagram

Here is a sequence diagram which demonstrates the workflow for the manual override in the event of a network disconnect.

Certification Testing

Testing: This workflow is tested as part of the POS certification process. POS developers are required to implement the correct behaviour as outlined in the certification test suite which can be found here.