--- title: "Cashback" description: "Obtain a small amount of cash from a card with a purchase or without a purchase (cashout)." url: "https://docs.adyen.com/point-of-sale/cashback-and-cash-out" source_url: "https://docs.adyen.com/point-of-sale/cashback-and-cash-out.md" canonical: "https://docs.adyen.com/point-of-sale/cashback-and-cash-out" last_modified: "2023-08-10T12:42:00+02:00" language: "en" --- # 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 page shows how to make a Terminal API cashback request and interpret the response. ## Requirements Before you begin, take into account the following requirements, limitations, and preparations. | Requirement | Description | | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | | **Integration type** | This feature is supported with a [Terminal API integration](/point-of-sale/get-started) with payment terminals. | | **Limitations** | [Support](#support) for the feature is limited to specific cards and countries/regions. | | **Setup steps** | Before you begin, contact our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other) to enable cashbacks. | ## Issue a cashback 1. Determine the following values that you will 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 payment request](/point-of-sale/basic-tapi-integration/make-a-payment), including: * The [PaymentTransaction](https://docs.adyen.com/api-explorer/terminal-api/latest/post/payment#request-PaymentTransaction) object with the total and cashback amounts: | Parameter | Description | | ---------------------------- | --------------------------------------------------------------------------------------------------------------- | | `AmountsReq.RequestedAmount` | The total amount to be paid by the shopper. That is the amount of the purchase plus the amount of the cashback. | | `AmountsReq.CashBackAmount` | The cashback amount. | The example below shows the request for a shopper who purchased goods for **10** AUD, and wants to get a cashback of **2** AUD: #### JSON ```json { "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 } } } } } ``` #### Java ```java 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, check the [PaymentResponse.Response.Result](https://docs.adyen.com/api-explorer/terminal-api/latest/post/payment#responses-200-Response-Result): * **Success** means the issuer authorized both the payment and the cashback.\ The amount in the `PaymentResult.AmountsResp.CashBackAmount` field is the amount that you need to pay to the shopper in cash. * **Partial** means the issuer authorized the payment but not the cashback. **Payment response with cashback** ```json { "SaleToPOIResponse": { "PaymentResponse": { "POIData": { "POITransactionID": { "TimeStamp": "2018-05-01T14:09:30.000Z", "TransactionID": "u6W7001525183770000.NC6HT9CRT65ZGN82" } }, "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": {...} } } ``` ## Supported cards and countries/regions Cashback is supported for: * **eftpos** debit cards in Australia. * **girocard** debit cards in Germany. Only with a purchase. * **Mastercard** in Europe. Only with a purchase, and only in specific countries/regions. Contact our [Support Team](https://ca-test.adyen.com/ca/ca/contactUs/support.shtml?form=other) to learn for which countries/regions cashback can be enabled. * **Visa** in Europe. Only with a purchase ## See also * [Capture payments](/point-of-sale/capturing-payments) * [Payment methods](/point-of-sale/what-we-support/payment-methods)