Inquire payment details
Sometimes, a customer might inquire a user about the charges that are applied on an order, any refunds, or pending charges to be paid due to transfers, returns, and exchanges in the order. In such situations, the user must be able to view all the transactions that impact the order through transfers, returns, and exchanges.
Solution
This section describes APIs, user exits, services, and other components.
The user can access the Payment Inquiry screen by using the "Why was I charged?" related task in the Order Summary screen as well as the Order Line Summary screen. You can do the same task from a Return Summary or Return Line Summary screens as well.
The getPaymentInquiryDetails API
is called to display the details in the Payment Inquiry screen.
The getPaymentInquiryDetails API uses the information
that is returned by the processOrderCollection API
to standardize the display of the charge transactions.
processOrderCollection API
retrieves all the information necessary to display the payment details
for the transactions that are associated with the order. However,
to handle few localization issues, the payment details are retrieved
by calling the getPaymentTypeList, getCommonCodeList, getPaymentStatusList APIs.
The values that are returned by these APIs are combined to populate
the details in the Payment Inquiry screen. - The order total, pending charges, and payment status are returned
by the
processOrderCollectionAPI. However, the appropriate locale code is passed to thegetPaymentStatusListAPI to retrieve the localized payment status. - Payment references:
The
getPaymentTypeListretrieves the payment type and thegetCommonCodeListretrieves the credit card type.- If there are credit card transactions, the payment type belongs
to the
CREDIT_CARDpayment type group. The credit card type (VISA, Master, and so on) is concatenated with the last 4 digits of the credit card number. For example, VISA - 1111 - If there is a transfer of funds from the customer's account, the
payment type belongs to the
CUSTOMER_ACCOUNTpayment type group. The payment type is concatenated with the last 4 digits of the customer's account number. For example, Customer Account - 9348 - The payments that are made by using Stored Value Card, Cheques, and so on, are displayed in a similar manner.
- If there are credit card transactions, the payment type belongs
to the
- Charges and Refunds: The
processOrderCollectionAPI returns charge transactions with theChargeTypeasTRANSFER_OUTwith theOrderPurposeasREFUND. It also returns the invoice type and the invoice number, if exists for the transaction. This could also be an invoice for a return order. If there are multiple invoices for the transaction, then a bundle record that comprises multiple invoices is displayed as Multiple_Invoices. If there are no invoices that are associated to the charge transaction, this field is blank.Based on the information that is returned by the API, the charge details, which includes the processed date, transferred amount, payment method, and any associated invoice for the current order are displayed.
- Credit From Returns: The
processOrderCollectionAPI returns charge transactions with theChargeTypeasTRANSFER_IN. Based on the information that is returned by the API, the charge details, which include the amount that is transferred, date of collection, and the return order number are retrieved in theTransferFromDetailselement of thegetPaymentInquiryDetailsAPI. - Credit Towards Exchanges: The
processOrderCollectionAPI returns charge transactions with theChargeTypeasTRANSFER_OUTwith theOrderPurposeasEXCHANGE. Based on the information that is returned by the API, the charge details, which include the amount that is credited, date of collection, and the exchange order number are retrieved in theTransferToDetailselement ofgetPaymentInquiryDetailsAPI.
Implementation
The following section describes the rules that you must configure.
Inquiring the payment details is a permission controlled task. You can do this task only if you belong to a user group that is assigned the necessary permissions. For information about administering user group permissions, see Administering user group permissions.
For more information about the APIs and user exits, refer to the Javadoc.
End-user impact
The user can inform the customer about the charges applicable to the order.