A bit of an embarrassing situation for us: A recurring credit-card contribution attempted to process last Wednesday (2/21), but our vendor (iATS) did not receive it (I've checked with them, no such record). CiviCRM left the transaction in a Pending:Incomplete Transaction status. The following day(2/22), Civi tried again, and the contribution went through just fine. I thought that was the end of it.

Unfortunately, the contribution processed again each day including this morning (2/27)! The donor notified us, and I took what action I knew to do -- I cancelled the recurring contribution entirely and explained we will of course refund the money. Since iATS still shows no record of the first attempt on 2018-2-21, I also marked the open Pending transaction in Civi as Failed.

Question 1: That should be the end of it, correct? Or do I need to do something else?

I'm left trying to figure out what happened, and how to prevent this from happening again.

Curiously, the recurring contribution still had a "Next Scheduled Contribution Date" of 2018-02-21 02:07:31. Each of the contributions that went through after the initial Pending attempt had a source of Offline Recurring Contribution. We've never had that source automatically before.

Question 2: Why did the Next Scheduled date not update to next month after the first successful attempt went through? (I'm assuming Civi kept charging the card because the Next Sched date was still showing 2018-2-21).

Question 3: Why would the card try again if the status of the original Pending attempt was still showing Pending and not Failed?

In hindsight, I think what I should have done was mark the Pending transaction as Failed as soon as I saw the reattempt go through correctly and then made sure the Next Scheduled Date updated to next month. That would have prevented all this theoretically, ya? Now I know.

Thanks for any help! We're using CiviCRM 4.6 LTS and iATS extension 1.5.3.

1 Answer 1


Advancing next_scheduled_date is one of the last things that happens in this sequence. So if anything goes wrong - a post_contribution hook eg - then the code can not get to the part where the date is advanced.

So look in your ConfigAndLog for clues as to what interfered with the recording/completion of that Contribution in your database.

  • Thank you, Karin. I'll dive into the logs. With the recurring cancelled, the donor's card should no longer get charged, correct? Feb 27, 2018 at 18:42
  • 1
    If the status of the series is cancelled in CiviCRM the iATS Extension will indeed not submit the token associates with the series to iATS for processing Feb 27, 2018 at 22:07
  • Let me know what you find out Feb 27, 2018 at 22:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.