Skip to main content
The standard hosted-link flow defers everything to the recipient: you mint a link, and Fluz doesn’t create the virtual card until the recipient opens it, verifies themselves, and claims it. This flow inverts that for recipients you’ve already identified. You register the recipient’s identity and billing address yourself with 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.
User registration is not enabled by default. registerUser is a restricted mutation — your application must be explicitly approved by Fluz before it can create users. Contact your Fluz sales rep or account manager to have it enabled. Calls from an unapproved application fail with AUTH-0022.If the recipient already has a Fluz account, you can skip registration and go straight to generateVCShareLinks with their existing recipientUserIds.
See Authentication for how to mint a scoped token.

The flow

1

Register the recipient

Call 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.
Full parameter reference: registerUser.
2

Generate the share link

Call 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.
For multiple recipients, pass one user ID per card — order corresponds 1:1 with the generated links:
Leave 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
See funding sources for details.
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

  • recipientUserIds must reference existing Fluz users. If the recipient isn’t registered yet, register them first with registerUser (this flow), or use the standard hosted-link flow and let Fluz onboard them at claim time.
  • recipientUserIds length must equal quantity. 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: from userCashBalanceId first, then your prepayment or rewards balance as a fallback if usePrepaymentBalance / useRewardsBalance are 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.