Take payment


Once initialization is completed, you can start using the myPOS SDK Android to accept card payments.

Variant 1. Payment via internal SDK activity: Amount and transaction reference are optional parameters and can be set as null.

mPOSHandler.openPaymentActivity(
MainActivity.this /*activity*/,
REQUEST_CODE_MAKE_PAYMENT /*requestCode*/,
"10.50" /*amount*/,
UUID.randomUUID().toString()/*transaction reference*/
);

Variant 2. Payment via direct SDK method: Transaction reference is an optional parameter and can be set as null.

POSHandler.getInstance().purchase(PaymentParams.builder()
.productAmount("13.37")
.currency("EUR")
.tipAmount("1.55")
.receiptConfiguration(POSHandler.RECEIPT_PRINT_AUTOMATICALLY)
.operatorCode("1234")
.reference("asd123asd", ReferenceType.REFERENCE_NUMBER)
.preauthTransaction(false)
.motoTransaction(false)
.build());

 

Handle payment result


Variant 1. Payment via internal SDK activity:

protected void onActivityResult(int requestCode, int resultCode, Intent data){
if( requestCode == REQUEST_CODE_MAKE_PAYMENT && resultCode == RESULT_OK) {
TransactionData transactionData = data.getParcelableExtra(POSHandler.INTENT_EXTRA_TRANSACTION_DATA);
// Handle the response here
}
}

Variant 2. Payment via direct SDK method:

mPOSHandler.setPOSInfoListener(new POSInfoListener() {
@Override
public void onPOSInfoReceived(final int command, final int status, final String description) {
// Handle the response here
}
@Override
public void onTransactionComplete(final TransactionData transactionData) {
// Handle the response here
}
});
POSHandler.getInstance().setTransactionClearedListener(new PosTransactionClearedListener() {
@Override
public void onComplete(int phStatus) {
// transaction is cleared and fully completed, terminal is ready for new operations
}
});

See POS Info statuses for more information

 

Refund


With Refund, the host application could initiate a refund transaction to the customers’ card account with the specified amount.

Variant 1. Refund via internal SDK activity: Amount and transaction reference are optional parameters and can be set as null.

mPOSHandler.openRefundActivity(
MainActivity.this /*activity*/,
REQUEST_CODE_MAKE_REFUND /*requestCode*/,
"10.50" /*amount*/,
UUID.randomUUID().toString()/*transaction reference*/
);

Variant 2. Refund via direct SDK method: Transaction reference is an optional parameter and can be set as null.

POSHandler.getInstance().refund(RefundParams.builder()
.refundAmount("13.37")
.currency("EUR")
.receiptConfiguration(POSHandler.RECEIPT_PRINT_AUTOMATICALLY)
.motoTransaction(false)
.build());

 

Handle refund result


Variant 1. Refund via internal SDK activity:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if( requestCode == REQUEST_CODE_MAKE_REFUND && resultCode == RESULT_OK) {
TransactionData transactionData = data.getParcelableExtra(POSHandler.INTENT_EXTRA_TRANSACTION_DATA);
// Handle the response here
}
}

Variant 2. Refund via direct SDK method:

mPOSHandler.setPOSInfoListener(new POSInfoListener() {
@Override
public void onPOSInfoReceived(final int command, final int status, final String description) {
// Handle the response here
}
@Override
public void onTransactionComplete(final TransactionData transactionData) {
// Handle the response here
}
});
POSHandler.getInstance().setTransactionClearedListener(new PosTransactionClearedListener() {
@Override
public void onComplete(int phStatus) {
// transaction is cleared and fully completed, terminal is ready for new operations
}
});

See POS Info statuses for more information

 

Pre-authorization


Make a Pre-authorization via direct SDK method. This will lock the funds from the client's account until the pre-authorization is completed or cancelled.

POSHandler.getInstance().purchase(PaymentParams.builder()
.productAmount("13.37")
.receiptConfiguration(POSHandler.RECEIPT_PRINT_AUTOMATICALLY)
.reference("asd123asd", ReferenceType.REFERENCE_NUMBER)
.preauthTransaction(true)
.motoTransaction(false)
.build());

 

Pre-authorization completion


Make a Pre-authorization completion via direct SDK method. This will take the funds from the client's account.

POSHandler.getInstance().preAuthCompletion(PreauthorizationCompletionParams.builder()
.preauthorizationCode("1111")
.productAmount("13.37")
.build());

 

Pre-authorization cancellation


Make a Pre-authorization cancellation via direct SDK method. This will unlock the funds from the client's account and they can no longer be received with a Completion transaction.

POSHandler.getInstance().preAuthCancellation(PreauthorizationCancellationParams.builder()
.preauthorizationCode("1111")
.build());

 

MO/TO payment


Make a MO/TO payment via direct SDK method.

POSHandler.getInstance().purchase(PaymentParams.builder()
.productAmount("13.37")
.currency("EUR")
.tipAmount("1.55")
.receiptConfiguration(POSHandler.RECEIPT_PRINT_AUTOMATICALLY)
.operatorCode("1234")
.reference("asd123asd", ReferenceType.REFERENCE_NUMBER)
.preauthTransaction(false)
.motoTransaction(true)
.PAN("1234123412341234")
.expDate("1022")
.build());

 

MO/TO refund


Make a MO/TO refund via direct SDK method.

POSHandler.getInstance().refund(RefundParams.builder()
.refundAmount("13.37")
.currency("EUR")
.receiptConfiguration(POSHandler.RECEIPT_PRINT_AUTOMATICALLY)
.motoTransaction(true)
.PAN("1234123412341234")
.expDate("1022")
.build());

 

Void


Void and reverse the last transaction via direct SDK method.

POSHandler.getInstance().reversal(ReversalParams.builder()
.reason("enter reason text")
.build());

 

Reprint last receipt


With this method, the host application could request a reprint of the last transaction slip.

mPOSHandler.reprintReceipt();

 

Print random receipt


Check if the connected myPOS device has a printer hardware:

mPOSHandler.hasPrinter()

Printing an external receipt is performed by passing a ReceiptData object to the printReceipt() method

ReceiptData receiptData = new ReceiptData();
receiptData.addLogo(1 /*Logo index*/);
receiptData.addEmptyRow();
receiptData.addRow(
"HEAD" /*text*/,
ReceiptData.Align.CENTER, /* Enum align setting (LEFT, CENTER, RIGHT) */
ReceiptData.FontSize.DOUBLE /* Enum font size setting (SINGLE, DOUBLE) */
);
mPOSHandler.printReceipt(receiptData);