Skip to content
All templates

Operations 3 steps · 21 fields

Supplier registration

Legal entity, tax, address, insurance and offering details to set up a new vendor. No bank details.

Get a hosted link and a responses inbox in a minute. No backend, no credit card.

Or set it up yourself

Live preview

Form definition JSON · 204 lines
{  "id": "supplier-registration",  "title": "Become a supplier",  "submit": { "label": "Register" },  "steps": [    {      "id": "company",      "title": "Company",      "fields": [        {          "key": "legalName",          "type": "text",          "label": "Legal business name",          "validation": { "required": true }        },        {          "key": "tradingName",          "type": "text",          "label": "Doing business as (DBA), if different"        },        {          "key": "entity",          "type": "radio",          "label": "Business type",          "options": [            {              "value": "sole-proprietor",              "label": "Sole proprietor or freelancer"            },            { "value": "partnership", "label": "Partnership" },            { "value": "company", "label": "LLC or corporation" },            { "value": "nonprofit", "label": "Nonprofit" }          ],          "validation": { "required": true }        },        {          "key": "registrationNumber",          "type": "text",          "label": "Business registration number",          "helperText": "State file number or the equivalent where you’re registered.",          "show": [            {              "field": "entity",              "in": ["partnership", "company", "nonprofit"]            }          ],          "validation": { "required": true }        },        {          "key": "taxId",          "type": "text",          "label": "Tax ID",          "helperText": "EIN in the US, or your VAT or local tax number. We’ll ask for a W-9 or W-8 separately.",          "validation": { "required": true }        },        {          "key": "country",          "type": "text",          "label": "Country of registration",          "validation": { "required": true }        },        {          "key": "address",          "type": "textarea",          "label": "Registered business address",          "rows": 3,          "validation": { "required": true }        }      ]    },    {      "id": "offering",      "title": "What you supply",      "fields": [        {          "key": "category",          "type": "select",          "label": "Main category",          "options": [            { "value": "goods", "label": "Physical goods" },            { "value": "software", "label": "Software and SaaS" },            {              "value": "professional",              "label": "Professional services"            },            {              "value": "facilities",              "label": "Facilities and maintenance"            },            { "value": "logistics", "label": "Logistics" },            { "value": "other", "label": "Other" }          ],          "validation": { "required": true }        },        {          "key": "description",          "type": "textarea",          "label": "Describe what you offer",          "rows": 3,          "validation": { "required": true }        },        {          "key": "website",          "type": "text",          "label": "Website",          "placeholder": "https://"        },        {          "key": "insurance",          "type": "radio",          "label": "Do you carry general or professional liability insurance?",          "options": [            { "value": "yes", "label": "Yes" },            { "value": "no", "label": "No" },            {              "value": "not-applicable",              "label": "Not applicable to what we supply"            }          ],          "validation": { "required": true }        },        {          "key": "certifications",          "type": "text",          "label": "Certifications or accreditations",          "placeholder": "ISO 9001, SOC 2, B Corp…"        },        {          "key": "diversity",          "type": "multiselect",          "label": "Business classifications",          "helperText": "Optional. Pick all that apply.",          "options": [            { "value": "small", "label": "Small business" },            { "value": "minority-owned", "label": "Minority-owned" },            { "value": "women-owned", "label": "Women-owned" },            { "value": "veteran-owned", "label": "Veteran-owned" }          ]        },        {          "key": "currency",          "type": "select",          "label": "Invoice currency",          "options": [            { "value": "usd", "label": "USD" },            { "value": "eur", "label": "EUR" },            { "value": "gbp", "label": "GBP" },            { "value": "cad", "label": "CAD" },            { "value": "aud", "label": "AUD" },            { "value": "chf", "label": "CHF" },            { "value": "other", "label": "Other" }          ],          "validation": { "required": true }        },        {          "key": "currencyOther",          "type": "text",          "label": "Which currency?",          "show": [{ "field": "currency", "eq": "other" }],          "validation": { "required": true }        }      ]    },    {      "id": "contact",      "title": "Your details",      "fields": [        {          "key": "name",          "type": "text",          "label": "Contact name",          "validation": { "required": true }        },        { "key": "jobTitle", "type": "text", "label": "Job title" },        {          "key": "email",          "type": "email",          "label": "Email",          "inputMode": "email",          "validation": { "required": true }        },        {          "key": "phone",          "type": "phone",          "label": "Phone",          "inputMode": "tel",          "validation": { "required": true }        },        {          "key": "accountsEmail",          "type": "email",          "label": "Email for remittance and purchase orders, if different",          "inputMode": "email"        },        {          "key": "terms",          "type": "checkbox",          "label": "I have read and accept the supplier terms",          "validation": { "required": true }        }      ]    }  ]}

Use it with the npm packages ​

Copy the JSON into a file in your app, install the renderer and pass the definition to it. The same JSON works with @formhaus/vue.

sh
npm i @formhaus/core @formhaus/react
tsx
import { FormRenderer } from '@formhaus/react';
import '@formhaus/core/style.css';
import definition from './form.json';

export function Form() {
  return (
    <FormRenderer
      definition={definition}
      onSubmit={(values) => console.log(values)}
    />
  );
}

See Getting started for validation, steps and custom components.

Formhaus is MIT licensed. Legal