Payments and Accounting - User Stories


This is a forum post to summarise the user stories related to Payments and Accounting. There’s much more more technical detail in a thread elsewhere on what Resonate needs to do in managing payments and accounting for them including a discussion of how that could be done, but the purpose of this extract and summary is to:

  • explain the context by summarising some overall goals, principles and assumptions;
  • focus more on the various user needs, including payers/payees, in payments and accounting, recognising that although different, payments and accounting need to be considered together, as they have many interdependencies.

There is a fuller and more technical deck on the topic here:

However, this forum post is the place we are summarising the user stories in this area, it’s not a list of work in a roadmap, ‘epic’ or backlog of work within an epic - that’s a separate process


Overall Goals and Principles

Record the ‘counterparties’ (usually platform users) that we have a financial relationship with

Record balances of what we owe / are owed externally by maintaining accounts

Execute payments, receipts and transfers

Record Transactions

  • Receivables - amounts that debtors owe to us.
  • Payables -amounts that we owe to creditors.
  • Receipts - money received into our account (or wallet) that either fully or partially settles a receiveable.
  • Payments made - money paid out that either fully or partially settle a payable.
  • Transfers - money moved between accounts

Follow standard, accepted accounting principles.

Support multiple currencies and internal credits

Allow co-op officers, accountants and auditors to correctly and automatically account in corresponding co-op ledger accounts with the minimum of manual reconciliation and be able to fix things when they go wrong

Related Documents

Payments and Accounting services provide close support for the User and Membership user stories

User Stories for Payments and Accounting

role As a …. I want to ……………………. so that I can…………
P01 user As a signed in user I want to purchase some listening credit to add to my credit balance so that I can listen to paid tracks or spend it on other services.
P02 user As a (signed in) user I want to be able to choose to join as a co-op member, pay my membership subscription and purchase supporter shares or other ‘products’ or make donations so that I can ‘play fair’
P03 member As a co-op member I want to easily and securely access and maintain my personal membership data and transaction history
P04 user As a user I want to have a choice of convenient, affordable and secure methods of payment / payment services for use with Resonate
P05 user As a user I want to be able to see what I owe / am owed in simple statements, request payment / repayment where appropriate, record my attempt / intent / promise to pay and receive receipts where requested
P06 user As a user (Arist, Listener, Worker) I want to be able to transfer or gift balances of listening credits to other users (subject to AML constraints)
P07 user As a Listener when I ‘buy now’ I want to be able to award additional amounts of listening credit as a gift to artists
P08 user As a Music Maker I want to segregate earned credit from my listening credit and be able to transfer earned credit to my listening credit balance so that I can get better/earlier value for my credits than a cash payout.
P09 co-op sec As a co-op secretary I want Resonate to offer a choice of convenient and affordable methods of payment (in and out) so that we are not ‘locked in’ to one supplier of services and can add / change services easily
F01 fin controller As a fin controller I want to record the ‘counterparties’ (usually platform users) that we have a financial relationship with so that we understand our finances and comply with obligations.
F02 fin controller As a fin controller I want to record balances of what we owe / are owed externally by maintaining accounts with entries and balances for each counterparty we are dealing with financially so that we (as P01)
F03 fin controller As a fin controller I want to record Transactions: Receivables, Payables, Receipts, Payments made and Transfers according to recognised ‘double-entry’ principles so that there is no loss or creation of funds.
F04 fin controller As a fin controller I want to account for value in different currencies including listening credits and manage associated conversions and rate history so that we operate fair and consistent exchange
F05 fin controller As a fin controller I want like to maintain internal user accounts of different types (e.g. listening credits) maintain records of balances for each and support transfers and conversions.
F06 fin controller As a financial controller, I need tools to enable transaction reversibility, so that errors and failures can be corrected and properly recorded with an audit trail.
F07 auditor As an auditor I need to assure integrity of accounts with proof of automatic reconciliation to source transactions
F08 auditor As an auditor I need to ensure that approval workflows feature appropriate ‘separation of duties’ so that opportunity for fraud is minimised
Membership Finance
M01 co-op sec As a co-op secretary I need to ensure that membership records are up to date, paid if appropriate, complete, approved and accurate
M02 co-op sec As a co-op secretary and administrator I need to ensure membership renewals are paid and actioned and if not, memberships are terminated.

Great work here! These are some incredible features!

As a Member I want to renew my Membership. <— urgent

See user and membership API user stories.

Is this the link? Searching on Membership API does not reveal a place to express this story.

(It is currently impossible to renew membership. All forms are based on new Members. Challenging situation.)

Yes that is the way the old system was designed. The new dialogs reminding / prompting for renewals are in all the work done on the user and membership API. The docs are here:

And the presentation deck with proposed new flows is here


It would be nice to reach out to members to renew in lieu of the approaching General Meeting, perhaps late-September.

Is this a case where @peter or another qualified WP dev could make a quick fix?

Last year I think we discussed doing this as part of a data cleanse / conversion exercise, coupled with the newsletter mailshot. We could combine news + renewal + GDPR consent. Part of the relaunch planning. I don’t think its a quick fix.

That is the link to the relevant context and user and membership API stories created and reviewed earlier this year.

The user API development effort initially focused on the ‘user’ part deferring the ‘membership’ elements until later.

We have some options on how we can get it done in conjunction with payments and accounting.

1 Like

hey @richjensen not getting what you mean by “WP dev does a quick fix”. On what exactly?

Rather than do this in WP I’ll have a look at the payments and accounting API spec to see if put in a short term option that could support a sign-up flow, including a ‘renew now’ option, up on the new website faster. It would be Stripe-only and wouldn’t give the ‘integrated accounting’ yet. It would need to use stripe extracts and joins to make sense of the incoming payment data. If we had a ‘campaign id’ on there it would help to tie up with the outbound mailshot. The mailshot data could be extracted as part of the conversion effort. Need to allow some developer time for this.

1 Like

@peter Last August I had thought we might have been able to capture user intentions to renew (and collect fees) under a short term fix to the WP site. We never did offer an opportunity for listener members to renew their memberships prior to the AGM. Not sure if this is ready-to-go in the new site.

I think trying to manage renewals via wordpress is going to be a total mess. Possibly much more work than it will bring in. Should be part of the new system… alerts about renewals coming, automatic expiry when not renewed, etc. Needs to all be done programmatically IMHO.