We're using the API to create multiple event registrations via a single form, then send the user to Quickbooks Payments after submission for those who wish to pay a deposit online. The bookkeeper sends the back office staff a weekly QB report of all payments received that week (online, checks, cash, etc), which they then enter into Civi manually.

Is there an "invoice number" or some other unifying ID we could use to help staff easily find the appropriate payments from the bookkeeper's report and create them on the correct Civi registrations? I see a Cart ID in the civicrm_participants table, but the cart functionality doesn't have an API, so I can't insert in a safe way. Should I just go with the Source field, or a custom field?


Why don't you create a contribution (using the api) and connect the participant to it?

I'd create that contribution with the right financial type and status pending and update with the QB report. On that topic, it probably needs some tuning and work to import the file, but https://github.com/Project60/org.project60.banking would make it possible to automatically match most of the payments and let your staff focus on the ones that are a bit weird (eg. where the amount or reference quite doesn't match)

  • 1
    I like the idea of a pending contribution, but the organization is very lax about when they take payment, and how much. A parent could pay a deposit, the entire amount due, or anything in between. They can use any combination of online, check, or cash payments. Are you thinking I should create a $0 contribution to tie all of a transaction's participants together?
    – Nicholai
    Apr 30 '15 at 13:28
  • You can still create an initial contribution of participant x price as the initial pending one, and let them update the contribution when paying to reflect the proper amount paid.
    – Xavier
    Apr 30 '15 at 13:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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