hcb icon indicating copy to clipboard operation
hcb copied to clipboard

[Card grants] Top up grants via donations

Open 3kh0 opened this issue 1 month ago • 4 comments

Describe the problem

Users in YSWS programs enjoy topping up their cards. If they have domain credits, they often like to add a few extra dollars to cover domain costs or similar things. The current top-up process is slow because it requires the organizer to manually add funds to the card after the user makes a donation. Automating this process would reduce administrative work and provide a much easier experience for the end user.

Describe the feature/solution (optional)

The proposed flow for handling this would be to add a button to the grant menu that directly allows the user to top up their card with their own payment method.

Card grant with added button Image

This can directly open up a new page (this could be as simple as embedding a param to the donation page to make the funds flow directly to the card rather than into the main account) to refill the grant card attached.

This option would be hidden behind an admin toggle, so HCB admins must enable grant cards AND automated top-ups for it to be available to the end user.

Additional options to consider

  • Adding a check box on the grant sending screen to specify if the end user can top up the grant card.
Card sending screen with additional check box Image
  • Allowing the card creation v4 API to specify if the end user can top up the grant card.
Example code
begin
  HCBService.create_card_grant(
    email: "[email protected]",
    amount_cents: 1500,                  # $15.00
    merchant_lock: "Cloudflare credits", # optional: lock spend to a merchant
    keyword_lock: nil,                   # optional
    purpose: "Cloudflare",               # optional
    pre_authorization_required: false,   # this is a grant card, not required
    one_time_use: false,                 # this is a grant card, not required
    top_ups_allowed: true,               # User can top up their card as they please
    instructions: "Please spend at cloudflare"
  )
end

3kh0 avatar Nov 13 '25 18:11 3kh0

Linking https://github.com/hackclub/hcb/pull/11536 since it's on a somewhat similar topic

garyhtou avatar Nov 13 '25 18:11 garyhtou

We are not a personal banking platform - implementing this would lead to us becoming one essentially. We should not do this.

sampoder avatar Nov 13 '25 19:11 sampoder

I disagree. Yes, we are not a personal banking platform, but implementing this will not make us one.

I think adding a one-time top-up and then further limiting that up to 25% or 50% (decided by YSWS org) of the total value of the card is possible and will make YSWS org's lives so much easier. I see this has around 30% of the time with grants, where we have to separately process grant top-ups.

Plus, Grants are only allowed for Hq orgs, meaning that implementing safeguards for this is easily possible.

JaytirthJOSHI avatar Nov 16 '25 18:11 JaytirthJOSHI

This functionality is already supported by the v4 API—HQ organizers could configure automatic disbursements based on donations using v4 API calls. I don't think we should support this as a built-in feature though, for reasons mentioned by Sam.

YodaLightsabr avatar Nov 16 '25 19:11 YodaLightsabr