# Vendor onboarding

URL: /workflows/processes/vendor-onboarding · Id: `process:vendor-onboarding`

> Vendor onboarding answers a business buyer’s supplier checks: tax form, certificate of insurance, security questionnaire, and data processing terms.

Vendor onboarding answers a business buyer’s supplier checks: tax form, certificate of insurance, security questionnaire, and data processing terms.

## Outcome
| Part | This Process |
| --- | --- |
| Outcome | Each business Customer’s supplier checks are answered from the record and accepted before the first Invoice goes out. |
| Reads | [Deal](/business/nouns/deal) |
| Leaves | [Task](/business/nouns/task), [Document](/business/nouns/document), [Agreement](/business/nouns/agreement) |
| Runs in | Each Startup |

## Accountable
[Sales Lead](/agents/sales/sales-lead), [Sales Team](/agents/sales).

Responsible: [Sales Engineer](/agents/sales/sales-engineer).

Consulted: [Security Engineer](/agents/engineering/security-engineer), [Contracts Manager](/agents/legal/contracts-manager), [Finance Lead](/agents/finance/finance-lead).

Informed: [Customer Lead](/agents/customer/customer-lead).

## Workflows
| Workflow | Runs | Team |
| --- | --- | --- |
| [Answer supplier checks](/workflows/processes/vendor-onboarding/answer-supplier-checks) | on [`Deal.won`](/business/events/Deal.won) | [Sales Team](/agents/sales) |

## Who does each step

| Workflow | Step | Role | Calls | Approval |
| --- | --- | --- | --- | --- |
| [Answer supplier checks](/workflows/processes/vendor-onboarding/answer-supplier-checks) | 1. Log each item the Customer’s procurement team requests as a Task on the Deal, with its due date. | [Sales Engineer](/agents/sales/sales-engineer) | [Task.create](/business/nouns/task/create) | None |
| [Answer supplier checks](/workflows/processes/vendor-onboarding/answer-supplier-checks) | 2. Answer each item from the record: the Company’s tax IDs, its insurance certificate, and the trust center for the questionnaire. | [Sales Engineer](/agents/sales/sales-engineer) | [Document.create](/business/nouns/document/create) | None |
| [Answer supplier checks](/workflows/processes/vendor-onboarding/answer-supplier-checks) | 3. Send each item that needs a signature as an Agreement. | [Contracts Manager](/agents/legal/contracts-manager) | [Agreement.create](/business/nouns/agreement/create) | None |
| [Answer supplier checks](/workflows/processes/vendor-onboarding/answer-supplier-checks) | 4. Register the Startup in the Customer’s supplier portal when it has one. | [Sales Engineer](/agents/sales/sales-engineer) |  |  |
| [Answer supplier checks](/workflows/processes/vendor-onboarding/answer-supplier-checks) | 5. Enter bank details only from the Startup’s bank account record, as a one-way money Action the Treasurer checks. | [Treasurer](/agents/finance/treasurer) |  |  |
| [Answer supplier checks](/workflows/processes/vendor-onboarding/answer-supplier-checks) | 6. Release the first Invoice when every item is accepted. | [Billing Specialist](/agents/finance/billing-specialist) | [Invoice.bill](/business/nouns/invoice/bill) | Asks first; waits 1 business hour |

## Events
| Direction | When | What happens |
| --- | --- | --- |
| In | On [`Deal.won`](/business/events/Deal.won) | Starts [Answer supplier checks](/workflows/processes/vendor-onboarding/answer-supplier-checks) |
| Out | `Task.created` | Raised by step 1 of [Answer supplier checks](/workflows/processes/vendor-onboarding/answer-supplier-checks) |
| Out | `Document.created` | Raised by step 2 of [Answer supplier checks](/workflows/processes/vendor-onboarding/answer-supplier-checks) |
| Out | `Agreement.created` | Raised by step 3 of [Answer supplier checks](/workflows/processes/vendor-onboarding/answer-supplier-checks) |
| Out | [`Invoice.billed`](/business/events/Invoice.billed) | Raised by step 6 of [Answer supplier checks](/workflows/processes/vendor-onboarding/answer-supplier-checks) |

## Plays
No Play names this Process.

## Controls
- [Supplier bank details](/systems/trust-and-governance/controls/supplier-bank-details)

## Settings
None.

## Failure
A failed step retries; when retries run out, the Action goes to the [Sales Lead](/agents/sales/sales-lead).

## Loop
| Step | Value |
| --- | --- |
| Hypothesis | Answering supplier checks from the trust center shortens time to a first paid Order. |
| Measure | [Days to first outside Order](/agents/founding#days-to-first-outside-order) over 1q, at least 5 observations |
| Learn | The learn step reads the Readout, records Evidence and a Decision, and drafts the next Variant. |

## Code

**Ask**

```text
Turn on vendor onboarding
```

**API**

```bash
curl -X POST https://api.sb/leaseline.app/processes/process_1/enable \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
```

**SDK**

```ts
import { $ } from 'startup-builder'

await $.Process.enable({ process: 'process_1' })
```

**CLI**

```bash
npx startup-builder do Process.enable --json '{"process":"process_1"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Process.enable({ process: 'process_1' })"
  }
}
```

## Enable
On by default for [Dataset API](/products/templates/dataset-api), [Headless SaaS](/products/templates/headless-saas), [SaaS](/products/templates/saas), [Agent as a Service](/products/templates/agent-as-a-service), [Services-as-Software](/products/templates/services-as-software), [E2E managed service](/products/templates/managed-service). [Process.pause](/business/nouns/process/pause) stops new Actions; Actions in progress finish.

## Example
A business buyer sends a 120-question security questionnaire. The [Sales Engineer](/agents/sales/sales-engineer) answers it from the [trust center](/systems/trust-and-governance/buyers) in a day. It attaches the certificate of insurance and the tax form, and signs the data processing terms.