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
processOrderCollection
API. However, the appropriate locale code is passed to thegetPaymentStatusList
API to retrieve the localized payment status. - Payment references:
The
getPaymentTypeList
retrieves the payment type and thegetCommonCodeList
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.
- If there are credit card transactions, the payment type belongs
to the
- Charges and Refunds: The
processOrderCollection
API returns charge transactions with theChargeType
asTRANSFER_OUT
with theOrderPurpose
asREFUND
. 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 theChargeType
asTRANSFER_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 theTransferFromDetails
element of thegetPaymentInquiryDetails
API. - Credit Towards Exchanges: The
processOrderCollection
API returns charge transactions with theChargeType
asTRANSFER_OUT
with theOrderPurpose
asEXCHANGE
. 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 theTransferToDetails
element ofgetPaymentInquiryDetails
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.