My church uses Aplos Accounting. It's a web-based accounting package aimed at non-profits (www.aplos.com). They have recently implemented an api (www.aplos.com/api). I am interested in doing some syncing from Civi to Aplos to automate some things.

Our thoughts were to have an extension that implemented a scheduled job that would run daily and create a Civi accounting batch for the previous day. That batch would include all financial transactions that civiCRM processed that would be deposited into the bank account.

That total would then be posted to Aplos as a Deposit transaction with the Civi Accounting batch ID located in the comments of the transaction. That way if there was ever any question we could cross reference between the two.

Also, if a refund is processed through Civi then that would be posted as a Debit to Aplos with the Payee just being REFUND and in the comments it would notate the details.

What are you thoughts on this and do you have suggestions?



I think an extension is a good idea, but a quick glance at the aplos API and it looks like aplos wants each transaction mapped to an aplos contact id. This seems like a lot of work that is not necessary. My advice is to see if you can upload a batch at a time through CiviCRM export (maybe a custom search or report) and see how that works first. the effort level will be a lot less.

I don't know aplos, but many of the small accounting packages assume that they are the transaction system of record and need the contact id passed with each transaction - this appears to the case with aplos. What you are asking is for a batch transfer with CiviCRM as the sub ledger and using Aplos as the general ledger. This works fine with larger systems like Dynamics. I don't see any aplos documentation on JE imports and my guess is that they have not implemented it yet.

it would be a great extension and many we get aplos to fund it (seems like a biz dev opportunity for Josh of the core team)

  • Yes, Aplos does want a contact for each transaction (it will take either contact id or contact name). I think though that if you pass a Contact Name to the Aplos api and it doesn't exist it automatically creates a contact with that name. I use a generic "DEPOSIT" contact for all deposits. Aplos is a very friendly company to work with. They are also much cheaper than Xero by about half.
    – frTommy
    Sep 9 '15 at 1:32
  • I did confirm with Aplos the following: If you do not pass a contact id, the system will attempt to find a matching contact. If nothing is found, a new contact will be created. This applies to contacts throughout the API.
    – frTommy
    Sep 9 '15 at 22:41
  • Looking at the Accounting Batch a little more deeply it doesn't look like utilizing that would be the best option (or will it?). It doesn't allow one to specify accounting codes for the Batch so Aplos wouldn't know how to code the transaction. Neither would the extension be able to identify how to code it. But i still think, at least for our purposes, that getting the contributions into Aplos via a batch transaction rather than each one individually is best. So maybe have to create the "batch" via the extension and create the Aplos transaction as a split transaction.
    – frTommy
    Sep 10 '15 at 0:10
  • You can added multiple accounting codes in a batch and in the custom search/report. I still recommend building the custom search/report first before going through creating an extension. Take the small step first, learn, then once you have what you want create an extension if you think it will be a good generic solution. :) Sep 10 '15 at 1:22
  • If I do an import of the contributions into Aplos it will import each line item as a separate transaction. That is not how we work. We deposit batches of items as a single deposit to the bank. Having each line item posted to Aplos would be a headache to reconcile. Also, the whole purpose of this is to automate things as much as possible. If the option to do an export from civi and then import to Aplos is where we're left then there's no point. It'd be easier to enter things manually rather than having multiple line items.
    – frTommy
    Sep 10 '15 at 2:16

Makes sense. Not sure if the total as a deposit transaction to Aplos is good enough, especially aif you want to register refunds. It might be worth posting each transaction in Aplos?

  • Can you elaborate on why it might not be good enough? My thinking is that is how it will show up in the bank. One deposit for the day and then I'd there is a refund it'd be a separate transaction.
    – frTommy
    Sep 7 '15 at 11:32
  • Not sure, I am no financial expert :-) Jus thought it would be easier to reconcile if I can spot each transaction in my financial system. Sep 7 '15 at 11:35

I suggest you look at the existing options for accounting package integration, including Eileen's CiviXero extension (github, description).

This will give you a concrete example of how accounting integration can be done, and possibly even a leg up implementing your own - yay open source!

Don't forget to contribute your end results back to the community :)

Another document worth reviewing is this wiki page on Finance and Accounting.

  • I'm not a programmer. I've reached out to several to inquire about a quote but wanted to have a discussion about this with the wider community so that whatever I did would be something that could be contributed back. Not getting much feedback or interest though. So it looks like I might just find some random bloke and piece something together that will work for me. I've looked at Eileen's Xero integration but to me it's overkill for what we need. That's why I'm trying to engage the community in this discussion to determine what will be best.
    – frTommy
    Sep 8 '15 at 23:54
  • @frTommy - I received your request for a quote - but it was also clear that it had gone out to a wide range of shops, so I decided not to respond. Sending to a large number of folks often discourages high-quality shops from submitting a bid, because there's always an offshore company who will promise the moon for half of what we charge. Consider approaching JMA or Fuzion directly, possibly AGH too - they're the top Civi accounting folks! Sep 9 '15 at 2:18
  • Also, may I suggest widening the hiring pool from "bloke" to include both halves of the population? :) Sep 9 '15 at 2:20
  • @JonG I sent the email to multiple companies/people from the CiviCRM professionals page. I went through the list and selected those companies that I thought were knowledgeable and reputable.
    – frTommy
    Sep 9 '15 at 2:25
  • @ChrisBurgess No offense was meant by the use of bloke. I'm an equal opportunity guy. So far the only quote i've gotten has said between 10,000 to 15,000 and that seems outrageous to me. (is it?) I got a response from a couple of the ones you named but they either couldn't take it on right now or haven't gotten back to me after the initial contact. OH and the other one wanted $130 and hour just to talk about the project to decide if they'd do it.
    – frTommy
    Sep 9 '15 at 2:31

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.