I was told that I could use the Omnipay processor to detect missing payments.

I've determined that I need the API action PaymentProcessor.getmissing, and I can call this with: wp cv api PaymentProcessor.getmissing payment_processor_id=7. However, when I call that (or wp cv api PaymentProcessor.query payment_processor_id=7), I get the following error:

PHP Fatal error: Class CRM_Core_Payment_OmnipayMultiProcessor contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (CRM_Core_Payment::doDirectPayment) in /home/members/healthcarenow/sites/dev.healthcare-now.org/web/wp-content/civicrm/extensions/nz.co.fuzion.omnipaymultiprocessor/CRM/Core/Payment/OmnipayMultiProcessor.php on line 34

What am I doing wrong? How can I successfully call this API?

  • would be interested to know if something recent has caused you to need to audit this. We have been bitten recently by finding that editing Recurs via the civi UI triggers a factor in a.net that results in nothing being passed back to civi successfully and does not get caught by getmissing or retry so we weren't even seeing them failing - though they exist in _system_log
    – petednz - fuzion
    Commented Feb 28, 2018 at 23:25
  • Nope - this was a 4.6 site that had recurring payment issues due to deadlocks fixed in 4.7. I wanted to use Omnipay to audit the issues - but of course OmniPay for CiviCRM is 4.7 only. Commented Mar 1, 2018 at 17:44

2 Answers 2


What version of CiviCRM are you on? It should work on the latest 4.7 - & it's working for me (I'm using latest of github) - but there might be something more or less forgiving in the config

  • I forgot to post back that yes - I hadn't realized I had a CiviCRM/Omnipay version mismatch. This is the correct solution :) Commented Mar 1, 2018 at 17:43

The below works for me in case that points to anything that might help you

drush cvapi PaymentProcessor.getmissing sequential=1 is_recur=1 payment_processor_id=9 start_date_time="2018-01-08" end_date_time="2018-01-09" contribution_status_id=1 lazy_logging=1

followed eg by

 cvapi PaymentProcessor.retrymissing start_date_time=2017-03-01 end_date_time=2017-04-01 payment_processor_id=9 contribution_status_id=1 is_recur=1

Note: grab the latest code of lazy logging doesnt' work for you (output table format)

Warning: the above are in use on site that has multiple a.net processors involved so has extra parameters to cope with that

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.