Custom Receipts
IMPORTANT
The PayButton Integration (Android) is in maintenance mode. For Android integrations, please use the new
Default UI Integration SDK.
Should you require more flexibility than the
ready-made receipts provide, you can also send or print custom receipts, including the payment-related data.
Make sure that your custom receipt contains all of the required receipt information and that you are able to also send receipts for successful refunds.
Required Receipt Information
A sample receipt with required information and its placement is shown below. Actual receipt content can vary, depending on acquirer and payment method.
Full address of the merchant, including the country. Iterate over each line item
getMerchantDetails()
returns and print what the
getValue()
method returns.
getReceiptType().getValue()
getTransactionType().getValue()
getAmountAndCurrency().getValue()
The payment details, e.g. the masked account number. Iterate over each line item
getPaymentDetails()
returns and print what the
getLabel()
and
getValue()
methods return.
getStatusText().getValue()
getDate().getValue()
and
getTime().getValue()
The clearing details, e.g. the merchant identifier. Iterate over each line item
getClearingDetails()
returns and print what the
getLabel()
and
getValue()
methods return.
If
isTipLineRequired()
is
true
, then you have to print Tip and Total Amount lines on your receipts.
If
isSignatureLineRequired()
is
true
, then you have to print a signature line on your merchant receipt.
The receipts are already embedded in the transaction reference that you receive after a successful transaction. The transaction object provides access to both the merchant and customer receipts.
Receipts are only attached if the transaction did not fail, so make sure to check the transaction and both receipt properties before accessing them.
How to access receipt data:
// For the Merchant Receipt
Receipt receipt = transaction.getMerchantReceipt();
// For the Customer Receipt
// Receipt receipt = transaction.getCustomerReceipt();
Log.d("RECEIPT", "MERCHANT DETAILS");
for (ReceiptLineItem lineItem : receipt.getMerchantDetails())
Log.d("RECEIPT", lineItem.getLabel() + ": " + lineItem.getValue());
Log.d("RECEIPT", " ");
Log.d("RECEIPT", receipt.getReceiptType().getLabel() + ": " + receipt.getReceiptType().getValue());
Log.d("RECEIPT", receipt.getTransactionType().getLabel() + ": " + receipt.getTransactionType().getValue());
Log.d("RECEIPT", receipt.getAmountAndCurrency().getLabel() + ": " + receipt.getAmountAndCurrency().getValue());
Log.d("RECEIPT", " ");
Log.d("RECEIPT", "PAYMENT DETAILS");
for (ReceiptLineItem lineItem : receipt.getPaymentDetails())
Log.d("RECEIPT", lineItem.getLabel() + ": " + lineItem.getValue());
Log.d("RECEIPT", " ");
Log.d("RECEIPT", receipt.getStatusText().getLabel() + ": " + receipt.getStatusText().getValue());
Log.d("RECEIPT", receipt.getDate().getLabel() + ": " + receipt.getDate().getValue());
Log.d("RECEIPT", receipt.getTime().getLabel() + ": " + receipt.getTime().getValue());
Log.d("RECEIPT", " ");
Log.d("RECEIPT", "CLEARING DETAILS");
for (ReceiptLineItem lineItem : receipt.getClearingDetails())
Log.d("RECEIPT", lineItem.getLabel() + ": " + lineItem.getValue());
Log.d("RECEIPT", " ");
// --- Optional
Log.d("RECEIPT", receipt.getIdentifier().getLabel() + ": " + receipt.getIdentifier().getValue());
// ---
// When offering Tip Adjust
if(receipt.isTipLineRequired())
{
Log.d("RECEIPT", "TIP : ___________________");
Log.d("RECEIPT", "TOTAL : ___________________");
}
// --- Only for the Merchant Receipt
if(receipt.isSignatureLineRequired())
{
Log.d("RECEIPT", "Customer Signature");
Log.d("RECEIPT", "___________________");
}