Who is sending it
userKey is the staff member OnboardMe records as the creator. Take it from GET /api/v1/users/list. Do not hard-code a key from another practice or region.
The recipient
recipient is a single person. Required: name, surname, and email. Optional: mobile, and sendSms when you want an SMS as well as the email. SMS is billed from the wallet when sendToRecipient is true.
Each client row
clients is one or more rows, in the order you want them on the job.
Already in the CRM. Set entityKey from GET /api/v1/entities. Name and type come from the stored client. You can still set the flags below, and you can override clientCode.
Quick-add. Omit entityKey. Set entityTypeId or entityType from GET /api/v1/settings/entity-types (Individual, Company, and the practice’s other types). Set name, and surname when the type requires it. Optional clientCode becomes the practice client code on the new entity. Optional email and mobile are stored on the new client.
The create response returns clients in that same order. Each item has entityOnboardingId, entityKey, and clientCode. The job itself comes back as:
Already in the CRM. Set
entityKey from GET /api/v1/entities. Name and type come from the stored client. You can still set the flags below, and you can override clientCode.
Quick-add. Omit entityKey. Set entityTypeId or entityType from GET /api/v1/settings/entity-types (Individual, Company, and the practice’s other types). Set name, and surname when the type requires it. Optional clientCode becomes the practice client code on the new entity.
Flags on either path:
When
identityVerification is true, verificationMethod is required:
Omit
identityVerification or set it false to skip ID checks on that client.
Send, or keep a draft
sendToRecipient: false saves the job and stops. No email, no wallet charge, no subscription unit.
sendToRecipient: true uses the same billing as Send in the app:
- Onboarding request units come from the subscription, then the wallet.
- Identity verification and AML (Enhanced and Comprehensive) come from the wallet.
- SMS comes from the wallet when
sendSmsis set. - Promotional free-verification rules apply where the practice has them.
GET /api/v1/onboardings/{onboardingKey} and do not create a duplicate until you confirm the first one is absent.
Find it later
GET /api/v1/onboardings/list lists jobs for the practice. GET /api/v1/onboardings/{onboardingKey} is one job. Store onboardingKey from the create response, and each client’s entityOnboardingId when you download that client’s files.
Documents they uploaded
GET /api/v1/onboardings/{onboardingKey}/documents is the checklist for every client on the job, the same list as Notes & Docs in the app. Soft-deleted rows are omitted.
Each entity includes entityKey, entityOnboardingId, name, surname, entityTypeName, and a documents array.
Pending means
isUploaded and isBypassed are both false.
Downloads return a signed URL (url, fileName, expiresAt). Download it promptly. Do not store the URL.
Proposals can create this same onboarding to send after acceptance, using an
onboarding block on POST /api/v1/proposals. See Proposals.
Onboarding reference
Create, list, get, and the document downloads.