public interface ITransaction extends IIngenicoApi
Usage example for a simple payment:
ITransactiontransaction = Transaction.getInstance(context); // First register to transactionDone to show up transaction result transaction.registerTransactionDoneListener(transactionListener); // Prepare transaction input dataTransactionInputDatainputData =TransactionInputData.builder() .setTransactionType(TransactionTypes.SALE) .setAmount(newBigDecimal("10.00")) .setCurrency(978L) // 978: "EUR" .addPaymentMean(PaymentMeans.CONTACT_CHIP) .setTipAmount(newBigDecimal("1.00")) .setSurchargeAmount(newBigDecimal("0.45")) .build(); // Start the transactionTransactionRequestrequest = transaction.start(inputData); // Check if request has been accepted if (request.isRequestAccepted()) { // Ok, the transaction is being processed }
Usage example for a void request:
ITransactiontransaction = Transaction.getInstance(context); // First register to transactionDone to show up transaction result transaction.registerTransactionDoneListener(transactionListener); // Prepare transaction input dataTransactionInputDatainputData =TransactionInputData.builder() .setTransactionType(TransactionTypes.VOID) .setAmount(newBigDecimal("10.00")) .setCurrency(978L) // 978: "EUR" .addPaymentMean(PaymentMeans.CONTACT_CHIP) .setTransactionId("ABCD-123") .setTipAmount(newBigDecimal("1.00")) .setSurchargeAmount(newBigDecimal("0.45")) .build(); // Start the transactionTransactionRequestrequest = transaction.start(inputData); // Check if request has been accepted if (request.isRequestAccepted()) { // Ok, the void transaction is being processed }
Usage example for a refund request:
ITransactiontransaction = Transaction.getInstance(context); // First register to transactionDone to show up transaction result transaction.registerTransactionDoneListener(transactionListener); // Prepare transaction input dataTransactionInputDatainputData =TransactionInputData.builder() .setTransactionType(TransactionTypes.REFUND) .setAmount(newBigDecimal("10.00")) .setCurrency(978L) // 978: "EUR" .addPaymentMean(PaymentMeans.CONTACT_CHIP) .setTransactionId("ABCD-123") .setStan("123-456-789") .build(); // Start the transactionTransactionRequestrequest = transaction.start(inputData); // Check if request has been accepted if (request.isRequestAccepted()) { // Ok, the void transaction is being processed }
Usage example for a cash back amount request:
ITransactiontransaction = Transaction.getInstance(context); // First register to transactionDone to show up transaction result transaction.registerTransactionDoneListener(transactionListener); // Prepare transaction input dataTransactionInputDatainputData =TransactionInputData.builder() .setTransactionType(TransactionTypes.PAYMENT_WITH_CASH_OUT) .setAmount(newBigDecimal("10.00")) .setCurrency(978L) // 978: "EUR" .addPaymentMean(PaymentMeans.CONTACT_CHIP) .setCashAmount(newBigDecimal("5.00")) .build(); // Start the transactionTransactionRequestrequest = transaction.start(inputData); // Check if request has been accepted if (request.isRequestAccepted()) { // Ok, the void transaction is being processed }
Usage example for a recover transaction request:
ITransactiontransaction = Transaction.getInstance(context); // First register to transactionDone to show up transaction result transaction.registerTransactionDoneListener(transactionListener); // Prepare start transaction input dataTransactionInputDatainputData =TransactionInputData.builder() .setTransactionType(TransactionTypes.REFUND) .setAmount(newBigDecimal("10.00")) .setCurrency(978L) // 978: "EUR" .addPaymentMean(PaymentMeans.CONTACT_CHIP) .setTransactionId("ABCD-123") .setStan("123-456-789") .build(); // Start the transactionTransactionRequestrequest = transaction.start(inputData); // Check if request has been accepted if (request.isRequestAccepted()) { // Ok, the void transaction is being processed } // Prepare recover transaction input dataRecoveryInputDatarecoverData =RecoveryInputData.create(request.getRecoveryId()); // Recover the transactionTransactionResultresult = transaction.recover(recoverData);
| Modifier and Type | Method and Description | 
|---|---|
boolean | 
abortOngoingTransaction()
Abort the started transaction in case of any event happening at the cash register after a
 start has been triggered but before the payment mean is detected. 
 | 
java.util.List<Currency> | 
getAvailableCurrencies()
Get the list of any available currencies supported by the Point Of Sale (POS) or payment
 terminal. 
 | 
java.util.List<java.lang.Integer> | 
getAvailablePaymentMeans()
Get the list of any available payment means supported by the POS such as swipe, smart card,
 contactless, QR Code... 
 | 
java.util.List<TransactionType> | 
getAvailableTransactionTypeList()
Get the list of any available transaction types supported by the POS. 
 | 
java.util.List<java.lang.Integer> | 
getAvailableTransactionTypes()
Deprecated. 
 
since 2.15.0, use  
ITransaction.getAvailableTransactionTypeList(). | 
TransactionResult | 
recover(RecoveryInputData inputData)
Start a transaction recovering to the parameter filled in recoverId field. 
 | 
void | 
registerTransactionDoneListener(ITransactionDoneListener listener)
Register a new listener for TransationDone event sent within a transaction result. 
 | 
TransactionRequest | 
start(TransactionInputData inputData)
Start a transaction according to the parameters filled in inputData field. 
 | 
void | 
unregisterTransactionDoneListener(ITransactionDoneListener listener)
Unregister an existing transaction listener. 
 | 
connect, disconnect, isConnectedTransactionRequest start(TransactionInputData inputData) throws IngenicoException
inputData - transaction parametersjava.io.IOException - when the start transaction call failsIngenicoExceptionTransactionResult recover(RecoveryInputData inputData) throws IngenicoException
inputData - transaction recovering parametersjava.io.IOException - when the recover transaction call failsIngenicoExceptionjava.util.List<Currency> getAvailableCurrencies() throws IngenicoException
Usage example:
ITransactiontransaction = Transaction.getInstance(context); // Get the available currenciesList<Currency> currencies = transaction.getAvailableCurrencies(); // Check that EUR is available boolean euroIsAvailable = false; for (Currencycurrency : currencies) { if (currency.getNumericCode() == 978L) { euroIsAvailable = true; break; } } if (euroIsAvailable) { // Do things with euro }
java.io.IOException - when could not retrieve the currenciesIngenicoException@Deprecated
java.util.List<java.lang.Integer> getAvailableTransactionTypes()
                                                                    throws IngenicoException
ITransaction.getAvailableTransactionTypeList().Usage example:
ITransactiontransaction = Transaction.getInstance(context); // Get the available transaction typesList<Integer> transactionTypes = transaction.getAvailableTransactionTypes(); // Check that SALE is available boolean saleIsAvailable = false; for (IntegertransactionType : transactionTypes) { if (transactionType ==TransactionTypes.SALE) { saleIsAvailable = true; break; } } if (saleIsAvailable) { // Ok, we can proceed with a transaction sale }
java.io.IOException - when could not retrieve the transaction typesIngenicoExceptionTransactionTypes for predefined valuesjava.util.List<TransactionType> getAvailableTransactionTypeList() throws IngenicoException
Usage example:
ITransactiontransaction = Transaction.getInstance(context); // Get the available transaction typesList<TransactionType> transactionTypes = transaction.getAvailableTransactionTypeList(); // Check that SALE is available boolean saleIsAvailable = false; for (TransactionTypetransactionType : transactionTypes) { if (transactionType.getValue() ==TransactionTypes.SALE && transactionType.getLabel().equals("Sale")) { saleIsAvailable = true; break; } } if (saleIsAvailable) { // Ok, we can proceed with a transaction sale }
java.io.IOException - when could not retrieve the transaction typesIngenicoExceptionjava.util.List<java.lang.Integer> getAvailablePaymentMeans()
                                                    throws IngenicoException
Usage example:
ITransactiontransaction = Transaction.getInstance(context); // Get the available payment meansList<Integer> paymentMeans = transaction.getAvailablePaymentMeans(); // Check that CONTACT_CHIP is available boolean contactChipIsAvailable = false; for (Integermean : paymentMeans) { if (mean ==PaymentMeans.CONTACT_CHIP) { contactChipIsAvailable = true; break; } } if (contactChipIsAvailable) { // ok, we can process transactions with contact chip }
java.io.IOException - when could not retrieve the dataIngenicoExceptionPaymentMeans for predefined valuesboolean abortOngoingTransaction()
                         throws IngenicoException
Usage example:
if (!transaction.abortOngoingTransaction()) {
    // Could not abort the ongoing transaction
} else {
    // Transaction aborted, the transaction done event status will state that the
    // transaction was aborted
}
java.io.IOException - when the abort call failsIngenicoExceptionvoid registerTransactionDoneListener(ITransactionDoneListener listener)
listener - void unregisterTransactionDoneListener(ITransactionDoneListener listener)
listener -