I am using these 2 observers -
1 - sales_quote_collect_totals_after
2 - sales_order_place_before
Custom discount(which is 3%) is working fine when customer do order from Cash on delivery but customer pay via online then it is not working.
I am using USAePay payment method.
Note:Discount(10% using coupon code) is working fine for both cash on delivery and USAePay payment.