Skip to main content
Before you can run payroll or send payouts, your business account needs funds. Cadana supports three funding methods: bank transfer, ACH direct debit, and crypto deposits.

Check Your Balance

View your current account balances at any time.

Sandbox Funding

In sandbox, use the deposit endpoint to add test funds instantly. No bank linking required. Returns 204 on success. The deposit is processed asynchronously — the balance reflects it within a few seconds.
Amounts are in the lowest denomination of the currency. For USD, 10000000 = $100,000.00.

Bank Transfer

Transfer funds from your bank to your Cadana business account using the account details provided by Cadana. Supports domestic ACH, wire (USD), and international SWIFT transfers.

Get Your Funding Details

Retrieve the bank account details to send funds to. These are also available in the Dashboard under Business > Account > Top up Account. The response returns one or more funding accounts depending on the currencies enabled for your business. Pass the optional currency query parameter to filter by a specific currency. Example — USD: For USD, the response includes three transfer methods: ACH, wire, and SWIFT.
Example — EUR:
Use these details to initiate a transfer from your bank. Funds are credited to your Cadana balance once the transfer settles.

ACH Direct Debit (USD only)

Link an external US bank account and pull funds directly into your Cadana account.

Connect a Bank Account

There are two ways to link a bank account: Via Dashboard: Go to Settings > Payment Methods > Add payment method and follow the on-screen flow. Via hosted link (for platforms): Generate a hosted link that opens the bank connection flow. The user completes it in their browser and is redirected to your app. Response:
Redirect the user to the returned url — this opens Cadana’s hosted link-out experience, where the user selects their bank and authorizes the connection. When they finish or exit, they’re redirected back to your returnURL (or refreshURL if the link has expired). The mode parameter controls where the hosted flow starts: Inside the link-out experience, the user connects their account one of two ways:
  • Instant verification — the user signs in to their bank and the account is verified immediately. It comes back with status active and is ready to use.
  • Manual entry + micro-deposit — the user types their account and routing numbers. This is also the fallback when instant connection isn’t available for their bank or fails. The account is created with status needs_confirmation and must be verified with a micro-deposit before it can be used — see Complete Micro-Deposit Verification.
Your business must have completed KYB verification before you can connect an external bank account. If KYB is not yet verified, the connection will be rejected. See KYB Requirements for details.

Check the Account Status

After the user returns from the link-out experience, list external accounts to check the connection status. Each account carries one of these statuses: Response:

Complete Micro-Deposit Verification

When an account is linked with micro-deposits, it stays in needs_confirmation until the user confirms a small test deposit sent to their bank.
  1. One or two small test deposits (about $0.01) are sent to the linked bank account. These can take 1–2 business days to appear. The transaction carries a short verification code in its description (for example, SM1A2B).
  2. The business also receives a Micro-Deposit Verification Required email with the expected arrival date and step-by-step instructions.
  3. The user completes verification back in the hosted link-out experience — immediately after micro-deposit linking is initiated, the flow redirects them to the link-out page, where they enter the code.
  4. Once confirmed, the account transitions to active and can be used for deposits.
The test deposits take 1–2 business days, so users typically leave the flow before they can verify. To bring a user back to finish, generate a link in verification mode, scoped to the pending account: Redirect the user to the returned url. It opens a focused verification page for that account only — the user can complete verification there but cannot add or remove payment methods, which makes it safe to trigger from an automated flow. Take externalAccountId from the account list. Generating a verification link requires the account to be awaiting verification: the request fails with 404 for an unknown account and 400 if the account is already active.
There is no API endpoint to submit the micro-deposit code — verification is completed in the hosted link-out experience only. Poll the account status, or subscribe to the external-account.added event, to detect when the account becomes active. Only active accounts can be used to create a deposit.

Remove a Linked Account

Delete an external account that is no longer needed. A successful deletion returns a 204 No Content response.

Create a Deposit

Initiate an ACH debit from the linked bank account. Also available in the Dashboard under Business > Account > Top up Account > ACH Direct Debit. Response:
ACH deposits typically take 1–3 business days to settle. Your balance updates once the transfer completes.

Crypto Funding

Fund your account by sending USDC or USDT to your Cadana crypto wallet address.
Crypto funding is not enabled by default. Contact your account manager to set it up.

Supported Chains

Create a Deposit Address

Deposit addresses are created per currency and chain — they don’t exist by default. Create one for each chain you want to receive on: Response:
Creating an address fails with 400 if crypto deposits aren’t enabled for the business, or if an address already exists for that currency and chain.

Get Your Crypto Wallet Address

Once created, call the funding details endpoint with currency=USDC or currency=USDT. The response includes a cryptoWallets array with your addresses for each chain. Example response:
Always verify the chain matches the network you’re sending from. Sending tokens on the wrong chain will result in lost funds.
If a memo is returned, you must include it in your transaction. Deposits without the required memo may not be credited.

Webhook Notification

When funds arrive in your business account, Cadana emits a transaction.succeeded event with type: "DEPOSIT". Subscribe to this event to programmatically detect when your account has been funded.
JSON
See Webhooks for setup instructions.

Insufficient Funds During Payroll

If you approve a payroll without sufficient balance, it moves to awaiting funds status. Once you fund the account, the payroll proceeds automatically — no need to re-approve. See Payroll Lifecycle for details.
Reserves allow you to lock a portion of your business balance for obligations like security deposits, severance, or notice period payments. Locked funds are deducted from your available balance and held until released.To view reserve balances, pass include=reserves:Lock reserves:Release reserves:Reserve types: SECURITY_DEPOSIT, SEVERANCE, NOTICE_PERIOD