Route charges via on_behalf_of=WKQ on new Stripe platform #508
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ldraney/basketball-api#508
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type
Feature
Lineage
Depends on
forgejo_admin/westside-accounting#11(WKQ Connect activated) and#13(coaches re-onboarded). Unblocks ISS account drain and archive (westside-accounting#14).Repo
forgejo_admin/basketball-apiUser Story
As a parent paying Westside online, I need my card statement to show
WESTSIDE(notPAL-E) and Stripe's 1099-K to correctly name WKQ as the merchant.Context
Today basketball-api creates PaymentIntents on the platform account (ISS-owned), making ISS the merchant of record. Under the new architecture, Pal Enterprises is the platform and WKQ is the connected merchant — charges must be created with
on_behalf_of=<WKQ_account_id>(and typicallytransfer_data[destination]=<WKQ_account_id>for destination-charge semantics).Coach compensation continues via
transfercalls from the platform, now targeting each coach's NEW Express Connect account ID (mapping established inwestside-accounting#13).File Targets
src/basketball_api/stripe_client.py— swap platform API key to new, update charge creation to includeon_behalf_ofsrc/basketball_api/routes/checkout.py(or equivalent) — update PaymentIntent creationsrc/basketball_api/routes/transfers.py(or equivalent) — update coach transfer logic to use new Express account IDssrc/basketball_api/webhooks.py— update webhook endpoint secret; register new webhook on new platformAcceptance Criteria
on_behalf_of=<WKQ>Test Expectations
on_behalf_ofassertionpytest tests/test_stripe_client.py tests/test_checkout.py -vConstraints
order_id,player_id,parent_email,product_id) — accounting reconciliation depends on itwestside-accounting#13; do not hardcode old IDsChecklist
Related
westside-accounting— entity stack migration