Skip to main content
Before Fluid can process payments for your company, it needs to know who you are. That means your legal entity, your bank account, the people who own and run the business, where you sell, and how the business operates. This is the form at Settings > Onboarding in the admin. Once you submit it, Fluid’s team reviews it and applies to payment processors for you.

Before you start

  • Sign in as a company admin with permission to update onboarding. Use fluid login with your own account to submit from the CLI: submitting accepts Fluid’s payments terms in your name, so it needs a person’s sign-in. With a company API token you can fill in everything, and a person submits from the admin’s onboarding form.
  • Seeing processor progress after you submit also needs permission to view payment accounts.
  • Have these documents ready as PDF or image files, up to 10 MB each:
    • business registration certificate, business license, and articles of incorporation
    • IRS form W-9, for a US entity
    • the last three months of bank statements, and a bank letter or voided check
    • a government ID for each person: a passport photo page, or both sides of a driver’s license or national ID
    • proof of residence for each person
    • balance sheets, income statements, and cash flow statements (or P&L) for the last two years
  • Install and sign in to the CLI:
Every fluid payments onboarding command prints JSON. Failures print a JSON error on stderr and exit with a non-zero code. Tax IDs, account and routing numbers, ID numbers, and dates of birth are masked in every output, and uploaded documents are listed by name, never by link.

Steps

1

See what's missing

show prints the form’s status, each step with a complete flag, and a missing list of every required field that’s still empty. Each entry names the field, explains why it’s needed, and gives a fix: the exact set flags that fill it in, such as --entity 41 --set entity.website=<value>. Add --step underwriting to list one step’s gaps. fluid payments onboarding fields prints the full field schema, with types, choices, and when each field is required.
Filling in the form yourself at a terminal? Run fluid payments onboarding walk instead of the set commands below. It asks each missing question in form order and saves each answer as you go. Type < to go back, > to skip, or ? for a menu that jumps to any step, changes a saved answer, or submits. Agents and scripts use show and set.
2

Answer the basics

Every set changes your company’s live onboarding form, so the CLI asks for confirmation unless you pass --yes.
Answer info.user_is_owner only when info.beneficial_individual_owner is true. Set underwriting.company_is_mlm to true for a direct-sales company. That turns on the compensation-plan and member questions in the underwriting step.
3

Add the legal entity

The first entity you add becomes the primary entity, which is the business that holds the merchant account.
Take entity.classification and entity.primary_mcc from the two options lists. If the business operates through more than one entity, add each extra one with --entity new, and change one later with --entity <id>. The ids are under records.entities in show.
4

Add the bank account

The first bank account goes to the primary entity and becomes the primary account.
A US account needs bank.routing_number, and an account elsewhere needs bank.swift_bic. Add another account with --bank new --set bank.entity_id=<entity id>.
5

Add yourself and the other key people

The first person you add is the onboarding contact: you, the person filling in the form.
Then add everyone else who owns 25% or more, manages the business, or signs for it, using --owner new:
Each person needs the same fields as you. A driver’s license or national ID needs both sides.
6

Add the countries you sell in

A new country is routed to the primary entity. Pass country.<ISO>.entity_id to route it to another entity. fluid payments onboarding options countries lists the codes. Remove a country with fluid payments onboarding remove country CA --yes.
7

Answer the underwriting questions

These questions describe how the business runs. Payment processors use the answers to decide whether to accept you.
Policies and agreements take either a URL (--set <key>.link=<url>) or a file (--file <key>=<path>). The Field reference below lists every question.
8

Fill in what's left

Every set prints the missing list again. Run each entry’s fix with real values until readyToSubmit is true:
9

Accept the terms and submit

Submitting accepts Fluid’s payments terms & conditions for your company and sends the form for review. It changes live data, so it needs --yes, and it needs --accept-terms to show you’ve read the terms. Run it without --accept-terms to get the terms link.
submit refuses while any required field is missing and prints the list instead. Once it succeeds, status is submitted.With a company API token, submit changes nothing and returns status: "ready_to_submit" with a submitUrl. Open that link, the onboarding form at admin.fluid.app/settings/onboarding, as a person and submit there; everything you filled in is already on the form.
10

Track the review

After you submit, providers lists each payment processor with its onboardingStatus. Fluid’s team moves each one forward as the processor reviews your application, which can take days or weeks. Check back occasionally, and answer any request from Fluid’s team by email.

What the status means

status is where the form stands: After you submit, each entry in providers has an onboardingStatus:

Field reference

Keys go to --set (or --file for documents). entity.* fields go to the primary entity unless you pass --entity <id|new>. Likewise, bank.* fields go to the primary account (--bank), and owner.* fields go to you, the onboarding contact (--owner). Run fluid payments onboarding fields for the full schema.

The basics

Bank account

People

Countries

Underwriting

Troubleshooting

  • Pass --yes to confirm. The command changes live data and wasn’t run in an interactive terminal. Re-run it with --yes once you’ve confirmed the change.
  • Creating an entity needs entity.legal_name or Adding a person needs owner.full_name. A new record needs its name in the same set.
  • Add the legal entity first. Bank accounts, people, and countries attach to an entity. Add the entity, then retry.
  • Uploading a government ID needs --id-type. Pass --id-type passport, license, or national_id with the ID files.
  • A document is over 10 MB. Compress or split it. A multi-file document such as bank statements takes one --file per file. Pass --replace-files to replace the files already uploaded.
  • Someone else changed the onboarding form since it was read. Someone saved the form in the admin while your command ran. Run the command again.
  • submit lists missing fields. Run each entry’s fix, then submit again.
  • submit returns ready_to_submit with a submitUrl. You’re using a company API token. Open submitUrl and submit as a person, or run fluid login with your own account and submit again.
  • providers is null after you submit. Your account can’t view payment accounts. Ask a company admin who can, or check Payments in the admin.

Use the API directly

The onboarding form itself, meaning its answers, legal entities, bank accounts, people, and document uploads, has no published API reference yet. Use the CLI for those steps. The lookups and the status check are company operations, all authenticated with a Bearer token:
  1. List business types — GET /api/business_types, the choices for entity.classification.
  2. List MCC codes — GET /api/mcc_codes, the choices for entity.primary_mcc.
  3. List countries — GET /api/countries.
  4. List supported currencies — GET /api/currencies.
  5. Get a company’s payments status — GET /api/companies/{id}/payments_status. onboarding.form_submitted is true once the form is submitted. Each processor under providers.psps and providers.apms carries its onboarding_status.