ποΈ Introduction
This guide walks a casino-style platform through the full money lifecycle on Pathly: onboarding players, taking deposits, paying out winnings, and letting players cash out to their own bank account.
ποΈ Obtain a Token
Every request (except this one) is authorized with a JWT in the Authorization header. Exchange your API key for a token at /jwt/token:
ποΈ Create & Verify a Player
A player is an Individual account. Create it, then run identity verification β a player must be verified before they can receive a bank payout or cash out.
ποΈ Take a Card Deposit
Players can deposit with a credit card. A charge collects funds into your merchant balance; you then credit the player's wallet with an internal transfer (see Pay out winnings β the same walletβwallet mechanic).
ποΈ Fund a Wallet from a Bank Account
A player can fund their wallet directly from a bank account. This is a pull: bank account β wallet. It is same-account β a pull funds the player's own wallet from the player's own bank. The credit settles asynchronously once the bank clears the debit.
ποΈ Pay Out Winnings
Crediting a player β winnings, a deposit you collected by card, a bonus β is a wallet β wallet transfer from your merchant wallet to the player's wallet. It is internal: instant and final (born posted), no bank rail involved.
ποΈ Let a Player Cash Out
Cashing out moves a player's wallet balance to their own bank account. This is a push: wallet β bank account. It is same-account β you can only cash out a wallet to that same account's bank. It settles asynchronously over the bank rail.
ποΈ Onboard for Crypto
To hold a crypto wallet or receive fiat through a virtual account, a player completes a one-time crypto onboarding β an extension of the create & verify step. Two things must be true before crypto features activate:
ποΈ Load a Crypto Wallet
Alongside the USD wallet, an account can hold a crypto wallet β a USDC balance on-chain (currently BASE-USDC, USDC on the Base network). Loading it works like a bank pull, but the rail is on-chain: get the deposit address, have the player send USDC to it, then watch for the credit.
ποΈ Receive Fiat via a Virtual Account
A virtual account is a fiat on-ramp for a player's crypto wallet: a set of real US bank coordinates (routing + account number) that the player can fund by ACH, wire, or FedNow. Money deposited is converted to USDC and credited to the player's crypto wallet β no card, no on-chain transfer.
ποΈ Move USDC
POST /transfers is the same single endpoint used for fiat transfers β you get crypto behavior by setting currency to a crypto code (e.g. BASE-USDC) instead of USD. Two shapes are supported:
ποΈ Listen for Webhooks
Bank-rail transfers (funding pulls and cash-out pushes) settle asynchronously, so subscribe to webhooks instead of polling. Add a webhook from your Developer Dashboard and subscribe it to the events you care about; you'll get the Signing secret used to verify each delivery.