registerUser, then generate a share link with generateVCShareLinks using shareMethod: EXISTING_USER. Fluz creates the virtual card immediately, at generation time — not at claim — and binds it to that one recipient. The link is still delivered and claimed the normal way; only card creation moves earlier. Funding is still drawn at claim time, same as the standard flow — from userCashBalanceId, falling back to your prepayment or rewards balance if enabled and the spend account runs short.
When to use this instead of a plain share link
- You already know exactly who the recipient is (by user ID) and want the card created and ready before you notify them, rather than waiting on them to claim it.
- You want a hard guarantee that only the intended recipient can ever view the link — not “first person to click it.”
- You’re sending to a batch of known recipients and want deterministic 1:1 mapping between recipient and card.
Before you start
You’ll need a Bearer access token. Basic auth is not accepted for either operation.
See Authentication for how to mint a scoped token.
The flow
1
Register the recipient
Call Full parameter reference: registerUser.
registerUser with the recipient’s profile, their billing address, and their acceptance of the cardholder agreement.acceptCardholderAgreement must be true — registration is rejected otherwise. Registration failures come back as HTTP 200 with success: false, not in the GraphQL errors array; always check success.Keep the returned userId — you’ll pass it into generateVCShareLinks in the next step. accountId and billingAddressId are also returned but aren’t needed for this flow.This step does not create a card or a cardholder agreement. It only creates the user record, saves the billing address, and records that the agreement was accepted. Both the virtual card and the recipient’s binding to it are created in the next step.
AUTH-0026 and AUTH-0027 are not failures. They mean the person already has a Fluz account — common, since Fluz accounts aren’t scoped to your application. Skip registration and use their existing user ID directly.2
Generate the share link
Call For multiple recipients, pass one user ID per card — order corresponds 1:1 with the generated links:Leave See funding sources for details.
generateVCShareLinks with shareMethod: EXISTING_USER and recipientUserIds set to the user ID(s) from registration (or any other known Fluz user IDs). The length of recipientUserIds must equal quantity.recipientListEmail and recipientListPhone unset — recipients are identified by recipientUserIds for this shareMethod, and Fluz already has contact details on file for each registered user.Optionally set usePrepaymentBalance and/or useRewardsBalance to true so Fluz can draw from your prepayment or rewards balance as a fallback if userCashBalanceId doesn’t cover the full amount at claim time:With fallback funding
3
Fluz creates the card and assigns the link
Unlike the standard flow, the virtual card is created now, at generation time, rather than deferred to claim. The recipient is assigned to that card and its link as soon as the call returns. Funding is still drawn at claim time, same as the standard flow — primarily from
userCashBalanceId, with your prepayment or rewards balance used as a fallback if you set usePrepaymentBalance / useRewardsBalance and the spend account runs short.Each returned link is locked to its assigned recipient: only that recipient’s Fluz account can open and claim it. If a different user opens the URL, they’re shown an access-denied state after sign-in, same as any other already-bound link.4
The link is delivered
The link is sent to the recipient the same way any hosted link is — via SMS or email, using the contact details Fluz has on file for that user. From there the recipient signs in, completes 2FA, and lands on their card. Since the card already exists, there’s no billing-address prompt or card-issuance wait at claim time — the card is funded at this point, same as the standard flow.
How this differs from the standard flow
See Send Open Loop Cards for the standard flow and Recipient Experience for the full claim walkthrough.
Notes and limitations
recipientUserIdsmust reference existing Fluz users. If the recipient isn’t registered yet, register them first withregisterUser(this flow), or use the standard hosted-link flow and let Fluz onboard them at claim time.recipientUserIdslength must equalquantity. A mismatch returns a validation error and creates no records.- Card creation moves to generation time — funding does not. The virtual card object and recipient binding are created when you call
generateVCShareLinks, but funds are still drawn at claim time, same as the standard flow: fromuserCashBalanceIdfirst, then your prepayment or rewards balance as a fallback ifusePrepaymentBalance/useRewardsBalanceare set and the spend account is insufficient. - Registration is per-application and per-environment. Permission granted for staging does not carry to production. See Deploying to Production.
- Never register real people in staging. See Staging vs. Live.
Next steps
Send Open Loop Cards
The standard flow — generate links and let Fluz issue the card at claim time.
Recipient Experience
What the recipient sees when they open and claim a hosted link.
Register Customers
Full reference for
registerUser, including error handling and fallback patterns.