Onboarding
Self-service tenant onboarding flow. Tenants complete a multi-step wizard to set up their account, submit business information, add representatives, and accept terms of service.
Onboarding Steps
Start → Business Info → Representatives → Documents → Funding Account → TOS → CompleteGet Onboarding Status
GET /api/v1/onboarding/status
Returns current onboarding state, completed steps, and remaining requirements.
curl -X GET https://api.paystream.fi/api/v1/onboarding/status \
-H "Authorization: Bearer psk_test_xxx"Response:
{
"data": {
"state": "in_progress",
"completedSteps": ["start", "business"],
"remainingSteps": ["persons", "documents", "funding_account", "tos"],
"requirements": []
}
}Start Onboarding
POST /api/v1/onboarding/start
Initialize onboarding and create a provider account.
curl -X POST https://api.paystream.fi/api/v1/onboarding/start \
-H "Authorization: Bearer psk_test_xxx" \
-H "Content-Type: application/json" \
-d '{
"provider": "moov"
}'Submit Business Info
POST /api/v1/onboarding/business
curl -X POST https://api.paystream.fi/api/v1/onboarding/business \
-H "Authorization: Bearer psk_test_xxx" \
-H "Content-Type: application/json" \
-d '{
"legalBusinessName": "Acme Corp",
"businessType": "llc",
"ein": "123456789",
"address": {
"line1": "123 Main St",
"city": "San Francisco",
"state": "CA",
"postalCode": "94105",
"country": "US"
},
"phone": "4155551234",
"website": "https://acme.com",
"description": "Logistics and delivery services"
}'Representatives
List Persons
GET /api/v1/onboarding/persons
Add Person
POST /api/v1/onboarding/persons
curl -X POST https://api.paystream.fi/api/v1/onboarding/persons \
-H "Authorization: Bearer psk_test_xxx" \
-H "Content-Type: application/json" \
-d '{
"firstName": "Jane",
"lastName": "Doe",
"title": "CEO",
"relationship": "representative",
"dateOfBirth": "1985-03-15",
"ssn": "123456789",
"email": "jane@acme.com",
"phone": "4155551234",
"address": {
"line1": "123 Main St",
"city": "San Francisco",
"state": "CA",
"postalCode": "94105",
"country": "US"
}
}'Update Person
PUT /api/v1/onboarding/persons/:id
Documents
Get Upload URL
GET /api/v1/onboarding/documents/upload-url
Upload Document
POST /api/v1/onboarding/documents/upload
List Documents
GET /api/v1/onboarding/documents
Add Funding Account
POST /api/v1/onboarding/funding-account
Link a bank account during onboarding for balance funding.
curl -X POST https://api.paystream.fi/api/v1/onboarding/funding-account \
-H "Authorization: Bearer psk_test_xxx" \
-H "Content-Type: application/json" \
-d '{
"routingNumber": "123456789",
"accountNumber": "4242424242",
"accountType": "checking"
}'Accept Terms of Service
POST /api/v1/onboarding/tos
Completes onboarding and activates the tenant account.
curl -X POST https://api.paystream.fi/api/v1/onboarding/tos \
-H "Authorization: Bearer psk_test_xxx"Multi-Provider Propagation
After primary onboarding completes, PayStream asynchronously provisions accounts with all other configured providers.
Get Propagation Status
GET /api/v1/onboarding/propagation
Retry Failed Propagation
POST /api/v1/onboarding/propagation/retry
curl -X POST https://api.paystream.fi/api/v1/onboarding/propagation/retry \
-H "Authorization: Bearer psk_test_xxx" \
-H "Content-Type: application/json" \
-d '{
"provider": "moov"
}'Propagation Statuses
| Status | Description |
|---|---|
pending | Queued for processing |
in_progress | Currently provisioning |
completed | Account fully provisioned |
partial | Account created but TOS pending |
failed | Provisioning failed (retryable) |