Legacy platform

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.

The 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 processOrderCollection API. However, the appropriate locale code is passed to the getPaymentStatusList API to retrieve the localized payment status.
  • Payment references:

    The getPaymentTypeList retrieves the payment type and the getCommonCodeList retrieves the credit card type.

    • If there are credit card transactions, the payment type belongs to the CREDIT_CARD payment 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_ACCOUNT payment 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.
The panels and the APIs called to display the information in the panels are as follows:
  • Charges and Refunds: The processOrderCollection API returns charge transactions with the ChargeType as TRANSFER_OUT with the OrderPurpose as REFUND. 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 processOrderCollection API returns charge transactions with the ChargeType as TRANSFER_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 the TransferFromDetails element of the getPaymentInquiryDetails API.
  • Credit Towards Exchanges: The processOrderCollection API returns charge transactions with the ChargeType as TRANSFER_OUT with the OrderPurpose as EXCHANGE. 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 the TransferToDetails element of getPaymentInquiryDetails API.

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.