SCOPING: support for participant compensation - direct payments
- Dominant language
- Python
- Stars
- 12
- Forks
- 21
- Avg merge
- 5d 19h
- Merged PRs (30d)
- 5
Description
## Summary
Having researchers provide an e-gift card as compensation is not always ideal. One option is to provide 'points' for participation, which families could choose to redeem for things that we provide/facilitate (see #137), though that option would also require some admin overhead for managing the purchases/requests. So another option would be to support compensation as a bank transfer/deposit.
## Implementation
Payment provider:
- Stripe
- Paypal
- Square
Database:
- New table for storing every transaction: payment processor ID, user ID, amount, success/failure status
- New table for storing each compensation amount granted from researchers, which could be used to calculate the family's total account balance: study ID, response ID, child ID, amount, approving researcher ID, paid/unpaid status (or amount)
Views:
- Family-facing: balance, payment processing, payment history
- Researcher-facing: compensation page
## Issues/limitations
Do these providers support international payments? What about currency conversion charges?
Charges per transfer:
- Stripe/Square: 2.9% + 30¢, International cards cost an additional 1.5%, currency conversion adds 1%
- Paypal:
Is there a way to minimize these charges? E.g. by having a running balance per family, which they can redeem when it reaches a certain amount?
Contributor guide
Research direction
Start by reading issue #137 and comparing the listed payment providers' support for international payments, currency conversion, and transfer fees. The issue proposes transaction and compensation records plus family and researcher views, but names no files or tests. Done requires an agreed provider, data model, payment flow, and handling of balances, fees, and international payments.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, payments
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100