This extension supports CiviXero but has been written so that it could also support different accounting synchronisations in the hope it will encourage greater collaboration. It is a dependency of CiviXero
- tables for storing event sync info - in particular civicrm_account_contact & civicrm_invoice_contact
- apis for storing data in these tables
- hooks civicrm_accountPullPreSave & civicrm_accountPushAlterMapped
- api invoice.getderived. This turned out to be a fairly important api as the line items for a given contact id are not easily retrieved. If the contribution is for a participant_payment then the participant entity rather than the contribution entity links to the civicrm_line_item table. I may not have used the best process to build this 'invoice' entity but it's a much better starting place for accounts interaction. It also resolves all accounting codes with is relevant for accounts interaction
- api to update civicrm contributions based on related invoice status
- api for cancelling payments based on civicrm_account_invoice - ie taking those items where the status in accounts is cancelled & not in CiviCRM
GOTCHA - cancelling an invoice via the API doesn't cancel the event registraion - feature ? bug?