When a transaction has finished, an Intent with the following data is returned to the calling Activity:

reference_number Internal myPOS reference number for the transaction
cardholder_name Emboss name on the card
date_time Date and time of the transaction formatted as YYMMDDHHmmss
pan Obfuscated PAN, e.g. "XXXX-XXXX-XXXX-8008"
pan_hash  a hash of the PAN
status (int) one of the constants in the Transaction Processing Result Class
status_text a textual representation of the status
card_brand MASTERCARD, MAESTRO, VISA, PAYPASS, etc.
card_entry_mode

method of presenting the card:

ENTRY_MODE_MAGSTR - mag-stripe transaction
ENTRY_MODE_EMV - chip transaction
ENTRY_MODE_CONTACTLESS - contactless mag-stripe transaction
ENTRY_MODE_CONTACTLESS_MCHIP - contactless chip transaction
ENTRY_MODE_MANUAL - Manual Key Entry (MO/TO) transaction

response_code response code returned by issuer. Values, different from "00", represent the reason for a declined transaction
authorization_code authorization code returned by issuer
signature_required (boolean) true : signature row must be present on receipt,
false : signature row must not be present on receipt
TSI Transaction Status Indicator
TVR Terminal Verification Result
AID Application Identifier (card)
STAN System Trace Audit Number (unique number of transaction by TID)
CVM Cardholder Verification Method (P – PIN, S – Signature , N – NO CVM)
application_name Application Label, read from the card chip
transaction_approved (boolean) true : approved,
false : declined
dcc_available (boolean) Dynamic currency conversion (DCC) available
amount_dcc (double) Dynamic currency conversion (DCC) amount
currency_dcc Dynamic currency conversion (DCC) currency
exchange_rate (double) Dynamic currency conversion (DCC) exchange rate
TID Terminal ID
update_pending (boolean) New update is available
resp_code Payment request response code. Values, different from "00", represent the reason for a declined transaction
expire_date Payment request expire date
merchant_data

Bundle with data from your myPOS profile used for printing the receipts. It contains:

  • billing_descriptor
  • address_line1
  • address_line2
  • MID - Merchant ID
  • custom_receipt_row1
  • custom_receipt_row2
installment_data

Bundle with data if user paid in installments. It contains:

  • number (int) - selected number of installments
  • interest_rate (double) - installment interest rate
  • fee (double) - installment fee
  • annual_percentage_rate (double) - installment annual percantage rate
  • total_amount (double) - installments total amount
  • first_installment_amount (double) - first installment amount
  • subsequent_installment_amount (double) - subsequent installment amount

Note 1: Unless noted, extras in the bundle are Strings.

Note 2: Depending on the card and transaction type, some of the extras are not always present.

 

 

Transaction Process Result Class

package com.mypos.smartsdk;

public class TransactionProcessingResult {
    /**
     * Transaction completed successfully
     */
    public static final int TRANSACTION_SUCCESS  = 0;
    /**
     * User canceled the transaction
     */
    public static final int TRANSACTION_CANCELED = 1;
    /**
     * The transaction was declined for some reason (by the Host or the Issuer)
     */
    public static final int TRANSACTION_DECLINED = 2;
    /**
     * The transaction failed - because of a connection timeout or some other malfunction
     */
    public static final int TRANSACTION_FAILED   = 3;
    /**
     * The device is not activated, meaning no transactions can be performed
     */
    public static final int DEVICE_NOT_ACTIVATED = 4;
    /**
     * Some needed data was missing. Mainly used when a Void transaction is requested when there is no previous transaction data present
     */
    public static final int NO_DATA_FOUND        = 5;
    /**
     * When a currency different than the device's currency is set when calling the payment app
     */
    public static final int INVALID_CURRENCY     = 6;
    /**
     * When the amount is greater than the allowed maximum or less than the allowed minimum.
     */
    public static final int INVALID_AMOUNT       = 7;
}