Is there any way a user contact can add currency/money in his wallet and try to pay event registration or membership from wallet instead re-entering card details everytime?


  1. User adds $20 in his wallet
  2. Registers for event for $1 using wallet. That $1 is then removed from their $20 wallet.
  3. When it's run out, they can add another $5/10/20 or any amount into their wallet.

Do we already have any extension available to achieve above use case? If not any thoughts on ideal solution for this? Create wallet as payment processor?



  • and presumably if registering for a $2 event, and only having $1 in wallet, assume it gives option to 'top up wallet' or 'pay for event directly.
    – petednz - fuzion
    Commented Aug 5, 2021 at 20:35

1 Answer 1


Thinking out loud, but I think that the idea of using a wallet payment processor is a good lead.

Maybe something along the lines of:

  • Record a payment for the user
  • Then record a credit note
  • Create a payment processor which uses the credit notes.

I have to admit that refunds/credits is something that is sometimes not very well defined in CiviCRM, so I'm not sure how easy this is.

From an accounting point of view, I kind of like the idea of using credits, since you want to make sure that the accounting sync does not record the income twice.

Another option is to use a payment processor that supports card-on-file (such as iATS). It's not worth it for $1 transactions (because of fees), but might be worth it for $5 and more.

Depending on the jurisdiction, you may need to be careful about laws regarding deposits.

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.