Hey there! Another short status update on BitPal.
These are the main things we worked on:
Multiple address and transaction tracking was merged. (But not live on our demo site just yet.)
Large refactoring of our internal invoice handling in the same merge request. The focus can now shift towards more features, although some things will still change in the core.
We split out the demo code to a separate repo and setup a repo for the server, which will be the thing you'll actually run. Most of the work will still be in the BitPal elixir library for the foreseeable future.
I've also thinking of how best to design our REST API. We could copy an existing API (like how BTCPayServer copied BitPay) or we could go our own way completely.
The benefit of copying an existing API is that it would be easier to adapt various integrations (just copy and do minor modifications). The drawback is that they might not do exactly what we want, and they might come with lots of technical debt. For instance, BitPay doesn't expose overpaying or underpaying in their API, as they handle that centrally.
Going our own way is enticing, as it's much quicker to get everything going. But lose out on the ease of integration and we risk designing a bad API (it's easy to make something crappy).
So I think the way forward is to follow Stripe's API where it makes sense (as it seems to be the most well regarded payment API out there), and in the future we can adding adapters/stubs to make it easier to reuse existing Stripe integrations. (Of course, it's also possible to add a BitPay compatible layer on top if we want to.)
Things are moving forward. If you want to follow the development, GitHub is the way to go.