Search

Are you looking for test card numbers?

Would you like to contact support?

Point-of-sale icon

Cashback

Obtain a small amount of cash from a card with a purchase or without a purchase (cashout).

The cashback feature lets shoppers get cash in hand from their account, either with their purchase or without a purchase. Cashback without a purchase is often called cashout.

This feature is supported for:

  • eftpos debit cards in Australia
  • girocard debit cards in Germany

In the near future, we will also support cashback with Mastercard cards in specific countries.

Before you begin

Contact our POS Support Team to enable cashbacks.

Issue a cashback

  1. Determine the following values that you'll need to pass in your payment request:

    • The cashback amount.
    • The sum of the cashback amount and the amount due for the shopper's purchases.

  2. Make a POST request to a Terminal API endpoint, specifying:

    • PaymentTransaction: The total and cashback amounts:

      Parameter Required Description
      AmountsReq.RequestedAmount -white_check_mark- The total amount to be paid by the shopper: the amount for the purchase plus the amount for the cashback.
      AmountsReq.CashBackAmount The cashback amount.

    The example below shows how you would make a request if a shopper purchased goods for 10 AUD, and wants to obtain a cashback of 2 AUD:

    {
      "SaleToPOIRequest": {
        "MessageHeader": {
          "ProtocolVersion": "3.0",
          "MessageClass": "Service",
          "MessageCategory": "Payment",
          "MessageType": "Request",
          "ServiceID": "0501160930",
          "SaleID": "POSSystemID12345",
          "POIID": "P400Plus-540004072"
        },
        "PaymentRequest": {
          "SaleData": {
            "SaleTransactionID": {
              "TransactionID": "3375",
              "TimeStamp": "2018-05-01T14:09:30+00:00"
            }
          },
          "PaymentTransaction": {
            "AmountsReq": {
              "Currency": "AUD",
              "RequestedAmount": 12.00,
              "CashBackAmount": 2.00
            }
          }
        }
      }
    }
    String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
    String saleID = "YOUR_CASH_REGISTER_ID";
    String POIID = "YOUR_TERMINAL_ID";
    String transactionID = "YOUR_UNIQUE_TRANSACTION_ID";
    
    SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
    MessageHeader messageHeader = new MessageHeader();
    messageHeader.setProtocolVersion("3.0");
    messageHeader.setMessageClass( MessageClassType.SERVICE );
    messageHeader.setMessageCategory( MessageCategoryType.PAYMENT );
    messageHeader.setMessageType( MessageType.REQUEST );
    messageHeader.setServiceID(serviceID);
    messageHeader.setSaleID(saleID);
    messageHeader.setPOIID(POIID);
    saleToPOIRequest.setMessageHeader(messageHeader);
    
    PaymentRequest paymentRequest = new PaymentRequest();
    SaleData saleData = new SaleData();
    TransactionIdentification saleTransactionID = new TransactionIdentification();
    saleTransactionID.setTransactionID(transactionID);
    saleTransactionID.setTimeStamp(DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()));
    saleData.setSaleTransactionID(saleTransactionID);
    paymentRequest.setSaleData(saleData);
    
    PaymentTransaction paymentTransaction = new PaymentTransaction();
    AmountsReq amountsReq = new AmountsReq();
    amountsReq.setCurrency("AUD");
    amountsReq.setRequestedAmount( BigDecimal.valueOf(12.00) );
    amountsReq.setCashBackAmount( BigDecimal.valueOf(2.00) );
    paymentTransaction.setAmountsReq(amountsReq);
    paymentRequest.setPaymentTransaction(paymentTransaction);
    saleToPOIRequest.setPaymentRequest(paymentRequest);
    terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
  3. When you receive the payment response, note the authorised cashback amount in the PaymentResult.AmountsResp.CashBackAmount field and hand that amount to the shopper in cash.

    Payment response with cashback
    {
        "SaleToPOIResponse": {
            "PaymentResponse": {
                "POIData": {
                    "POITransactionID": {
                        "TimeStamp": "2018-05-01T14:09:30.000Z",
                        "TransactionID": "u6W7001525183770000.9815251837923768"
                    }
                },
                "SaleData": {
                    "SaleTransactionID": {
                        "TimeStamp": "2018-05-01T14:09:30.000Z",
                        "TransactionID": "3375"
                    }
                },
                "PaymentResult": {
                    "AuthenticationMethod": [
                        "OnlinePIN"
                    ],
                    "PaymentAcquirerData": {...},
                    "PaymentInstrumentData": {
                        "CardData": {
                            "EntryMode": [
                                "MagStripe"
                            ],
                            "PaymentBrand": "eftpos_australia_sav",
                            "MaskedPan": "637204 **** 0025",
                            "SensitiveCardData": {
                                "ExpiryDate": "1220"
                            }
                        },
                        "PaymentInstrumentType": "Card"
                    },
                    "AmountsResp": {
                        "AuthorizedAmount": 12,
                        "CashBackAmount": 2,
                        "Currency": "AUD"
                    }
                },
                "Response": {
                    "Result": "Success",
                    "AdditionalResponse": "...cashBackAmountValue=200"
                }
            },
            "MessageHeader": {...}
        }
    }

See also