Skip to content

feat(payments): add Paystack subaccount revenue sharing support#96

Merged
musale merged 3 commits into
mainfrom
feat/subaccounts
May 26, 2026
Merged

feat(payments): add Paystack subaccount revenue sharing support#96
musale merged 3 commits into
mainfrom
feat/subaccounts

Conversation

@musale

@musale musale commented May 26, 2026

Copy link
Copy Markdown
Contributor
  • Add subaccount fields to ServiceProduct model (bank, percentage, bearer)
  • Add create_subaccount, list_banks, update_subaccount service functions
  • Wire subaccount params into initialise_transaction for split payments
  • Add Revenue Sharing section to product create form with dynamic bank dropdown
  • Add subaccount status card to product detail page with retry button
  • Add /dashboard/services/banks/ endpoint (cached 24h)
  • Add /dashboard/services//create-subaccount/ endpoint
  • Rename sidebar nav 'Products' to 'Payments'
  • Update PRODUCT_PAYMENTS.md with revenue sharing documentation
  • Change dev DB port from 5433 to 5483 to avoid conflicts

musale added 3 commits May 27, 2026 00:07
- Add subaccount fields to ServiceProduct model (bank, percentage, bearer)
- Add create_subaccount, list_banks, update_subaccount service functions
- Wire subaccount params into initialise_transaction for split payments
- Add Revenue Sharing section to product create form with dynamic bank dropdown
- Add subaccount status card to product detail page with retry button
- Add /dashboard/services/banks/ endpoint (cached 24h)
- Add /dashboard/services/<slug>/create-subaccount/ endpoint
- Rename sidebar nav 'Products' to 'Payments'
- Update PRODUCT_PAYMENTS.md with revenue sharing documentation
- Change dev DB port from 5433 to 5483 to avoid conflicts
- Harden: Replace inline event handlers with addEventListener
- Harden: Add aria-expanded/aria-controls on toggle disclosure
- Harden: Use <fieldset disabled> to prevent hidden field submission
- Harden: Add required attrs on revenue sharing fields
- Adapt: Responsive input sizing (input-sm on mobile, input-md on desktop)
- Adapt: Buttons scale up on larger viewports (btn-sm → btn-md)
- Clarify: Add loading spinner for bank dropdown
- Clarify: Show bank count and error states with status text
- Polish: Bump helper text contrast from /30 to /40
- Polish: Add aria-hidden to decorative SVGs
- Polish: Add role=alert on error div, role=note on info callout
- Polish: Add inputmode=numeric on account number field
- Polish: Focus management after toggle reveal
…ication

Detail page (harden, adapt, clarify, polish):
- Remove all inline onclick handlers, use addEventListener with IIFE
- Replace confirm() with inline confirmation pattern (click-twice)
- Add aria-label on status dots, copy buttons, action buttons
- Add aria-hidden='true' to all decorative SVGs
- Bump helper text contrast from /40 to /50
- Add proper for/id associations on form labels
- Responsive input sizing (input-sm sm:input-md)
- Copy buttons upgraded from btn-xs to btn-sm (44px touch target)
- Copy feedback: text changes to 'Copied!' with success color
- Add mobile card view for webhook delivery logs table
- Regenerate button responsive (btn-xs sm:btn-sm)

Apple Pay domain verification:
- Add verification file at .well-known/apple-developer-merchantid-domain-association
- Add ApplePayDomainVerificationView serving the file
- Add URL route for the verification endpoint
@musale musale merged commit 6cb6052 into main May 26, 2026
2 checks passed
@musale musale deleted the feat/subaccounts branch May 26, 2026 21:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant