Documentation Index
Fetch the complete documentation index at: https://docs.joinbankroll.com/llms.txt
Use this file to discover all available pages before exploring further.
Quickstart
This guide takes you from zero to a working Bankroll Connect integration. Have your code editor and a terminal open.Step 1 — Configure your partner account
Sign in to the Partner Portal and open Settings.- Copy your Public key and Secret key.
- Configure the Webhook URL where Bankroll should deliver
deposit.completedevents.
Step 2 — Mint a Connect token
On your backend, sign a JWT with your secret key. The token uses HS256 and includes four claims:| Claim | Value |
|---|---|
iss | Your partner public key |
sub | Your stable identifier for the user (echoed back as userId in webhooks) |
aud | bankroll-connect |
exp | Expiration timestamp (recommend 30 minutes) |
Step 3 — Open the Connect URL in your app
Your app calls your backend to get a token, then opens the Connect URL in an in-app browser. Pass the deposit amount in cents as a query parameter.Step 4 — Receive the deposit webhook
When the user finishes funding, Bankroll sends adeposit.completed webhook to your configured webhook URL.
| Field | Description |
|---|---|
type | Event type. Always deposit.completed for funded deposits. |
id | Unique deposit identifier (UUID). Use it for idempotency on your side. |
source | The funding method the user picked (e.g. cashapp). |
userId | The same value you put in the JWT’s sub claim. Use it to credit the right user on your platform. |
amountCents | The funded amount in U.S. cents. |
Treat the webhook as authoritative. There is no client-side success callback when Connect closes — your in-app browser will dismiss whether the user completed payment, backed out, or hit an error. Always reconcile against the
deposit.completed webhook before crediting the user’s account.Step 5 — Test it
Run the flow end-to-end with a test user. You should see:- The Connect intro screen with your partner name and logo.
- The phone-number entry screen.
- The OTP entry screen.
- The account-selection screen with Cash App as an option.
- A success screen confirming the user can close the window.
- A
deposit.completedwebhook delivered to your endpoint.
Error handling
If something goes wrong before Connect can render — bad token, missing amount — the user lands onhttps://api.joinbankroll.com/connect/error?reason=<reason> and sees a generic “Something went wrong” page asking them to return to your app and try again.
reason | Cause |
|---|---|
missing_token | The token query parameter wasn’t present. |
invalid_token | Token was malformed, signed with the wrong secret, expired before reaching us, or referenced a partner that doesn’t exist. |
invalid_amount | amountCents was missing, zero, negative, or not an integer. |