Troubleshooting
Problem
Consider the following scenario- 1. Configure a hold to be applied on an order when there are insufficient funds in customer account. 2. Enable 'Customer Account Maintained Internally’ in SBC under System Setup -> Payment rules. 3. Select hold configured in step 1 in the drop down for - Hold to be applied due to insufficient funds in customer account This is available in SBC under System set up -> Order ->Financial rules 4. Create a customer from IBM Web Center for Commerce and associate him with a customer account. Pass the account limit as 50. This can also be done using manageCustomer API 5. Use this customer to create an order of value $100. This order will now have the payment type Customer account (that has $50) 6. Run requestCollection - An authorization for 50$ is obtained 7. Run excuteCollection and requestCollection again, the order moves to AWAIT_PAY_INFO and collects 50$ but is not put on hold. The expectation is for the order to be put on the hold configured in step 1
Cause
This is due to the configurations done for payment type- Customer Account
Diagnosing The Problem
The payment type Customer Account has "Charge upto available".
The order is put to hold only when the API executeCollection has requested amount less that what is approved. Since the configuration has "Charge upto available" enabled for Customer Account , the application will not open authorization more than what it can approve .
Resolving The Problem
For the hold to be applied when ether are insufficient funds in the Customer Account, ensure that the flag "Charge upto available" is disabled for payment type Customer Account. This is available in SBC under System Setup-> Payments -> Payment Types
Was this topic helpful?
Document Information
Modified date:
16 June 2018
UID
swg22013592