@fluid-app/fluid-cli-payments
v0.1.48
Published
Fluid CLI plugin for payments onboarding — see what is missing, fill in fields and documents, and submit
Readme
@fluid-app/fluid-cli-payments
Fluid CLI plugin for payments onboarding: the KYC form at Settings → Onboarding in the admin. See what's missing, fill in fields and documents, and submit the form for review.
npm install -g @fluid-app/fluid-cli @fluid-app/fluid-cli-payments
fluid login
fluid payments onboarding show # status, steps, and every required field still missing
fluid payments onboarding fields --required # keys, types, options, and when each is required
fluid payments onboarding options mcc-codes # also business-types (--country US), countries, currencies
fluid payments onboarding set --yes \
--set info.user_has_authority=true --set info.user_is_signatory=true \
--set entity.legal_name="Acme Inc" --set entity.country_iso=US \
--file entity.business_license=./license.pdf
fluid payments onboarding set --yes --file owner.government_issued_ids=./passport.jpg --id-type passport
fluid payments onboarding set --yes --owner new --set owner.full_name="Sam Lee" --set owner.is_beneficial_owner=true
fluid payments onboarding set --yes --set country.US.currency=USD --set country.US.settlement_currency=USD \
--set country.US.entity_legally_registered=true
fluid payments onboarding remove owner 42 --yes # or entity, bank, or a country by ISO code
fluid payments onboarding submit --accept-terms --yesPrefer answering question by question? fluid payments onboarding walk asks
for each missing field in form order and saves each answer as you go. Type
< to go back, > to skip, or ? for the menu. From the menu you can jump to
any step, change a saved answer, or submit. Pick lists cover yes/no, countries,
currencies, MCC codes, and business types. Sensitive answers are hidden as you
type. --step <id> starts at a step. It needs a terminal; scripts and agents
use show and set.
show and set return a missing list. Each entry names the step, the
field, why it's needed, and a fix: the set flags that resolve it, such as
--entity 12 --set entity.website=<value>. readyToSubmit: true means
submit will go through.
Fields go to records:
info.*andunderwriting.*are the company's answers.entity.*goes to the primary legal entity, or--entity <id|new>.bank.*goes to the primary bank account, or--bank <id|new>.owner.*goes to the onboarding contact (the person filling in the form), or--owner <id|new>.country.<ISO>.*adds or updates a country the company sells in.
A record that doesn't exist yet is created. The first legal entity and bank account become primary, and the first person becomes the onboarding contact.
Documents upload with --file key=path, up to 10 MB each. Multi-file
documents add to what's there unless you pass --replace-files. Policies and
agreements also take a URL: --set underwriting.privacy_policy.link=https://....
submit marks every step complete and accepts Fluid's payments terms for
the company. That's why it needs --accept-terms as well as --yes. It
refuses while anything is missing. The acceptance records the person who
signed, so it needs a person's sign-in (fluid login with email). With a
company API token, submit writes nothing and returns
status: "ready_to_submit" with submitUrl, the admin's onboarding form,
where a person submits.
Tax IDs, account and routing numbers, ID numbers, and dates of birth are
masked in every output. Uploaded documents are named, never linked. Every
command prints JSON. Failures print a JSON error on stderr and exit
non-zero. Commands that change data ask for confirmation unless you pass
--yes.
The walkthrough is the payments onboarding guided setup at https://docs.fluid.app/setup.
