Details
-
Type: Improvement
-
Status: Won't Do
-
Priority: Major
-
Resolution: Won't Do
-
Affects Version/s: 4.6
-
Fix Version/s: None
-
Component/s: None
-
Labels:None
-
Versioning Impact:Patch (backwards-compatible bug fixes)
-
Documentation Required?:None
-
Funding Source:Contributed Code
Description
CMS: Drupal 7.x
CiviCRM: 4.6.x
Payment Processor: Sagepay
Scenarios is:
When submitted a CiviCRM form and redirected to Sagepay payment page the behaviours are as following:
1. no financial_trxn is created
2. one financial_item is created with the status 3
3. no entity_financial_trxn is created
When the payment is cancelled from sagepay, Civi received the cancel signal and cancelled the contribution. Upon this:
1. no financial_trxn is created
2. no financial_item is created
3. no entity_financial_trxn is created
I guess that we treat IPN payment as instant payment which is the reason that no transaction to receivable account is created when the payment is requested. However, this is a bit problematic when comes to cancellation.
As you know that when a contribution is created in CiviCRM, an invoice number will be taken. This means as long as the payment is requested, the invoice has been posted. In the scenario above, when we run batch export, there won’t be any transaction to batch for that contribution. However, in normal accounting process, for a cancelled invoice, you would expect a transaction pointing to receivable account and another transaction cancels it out.
Another related issue is that if an IPN payment stays at incomplete (e.g. civi paypal payment process if I remember correctly it does not send cancel signal) and you would go to manually change its status to cancelled in Civi if you know it has been like that for a while. Then civi would only create one transaction for the cancellation which does not get cancelled out and will be outstanding eventually.
I think this is not a sagepay specific issue but correct me if I am wrong. I would like to fix this but it will be good to have some input regarding what should we expect in the above scenarios.