Suggested Flow
- Create onboarding session, or retreive details of a previously created session
- Capture or update applicant contact details.
- Capture applicant profile and addresses.
- Review pending requirements.
- Submit for internal review.
- Register webhook for
party.ready. - Retrieve resulting party and party addresses.
Session
POST /onboarding-sessions
- OpenAPI path:
/public/onboarding-sessions - operationId:
createOnboardingSession - Objective: Create a new onboarding session and return the created session payload.
- Request payload: Required JSON body.
- Example:
- Example:
- Possible responses:
201 Onboarding session created- Example:
- Example:
400 Validation or malformed request- Example:
- Example:
500 Database error while creating session- Example:
- Example:
- Proper use example:
GET /onboarding-sessions/{sessionId}
- OpenAPI path:
/public/onboarding-sessions/{sessionId} - operationId:
getOnboardingSession - Objective: Retrieve the current onboarding session state for a given session identifier.
- Request payload: None.
- Possible responses:
200 Successful response- Example:
- Example:
501 Not implemented (placeholder handler)- Example:
- Example:
- Proper use example:
Onboarding Addresses (Session Scope)
GET /onboarding-sessions/{sessionId}/addresses
- OpenAPI path:
/public/onboarding-sessions/{sessionId}/addresses - operationId:
listOnboardingAddresses - Objective: List addresses captured while the user is still in the onboarding session flow.
- Request payload: None.
- Possible responses:
200 Successful response- Example:
- Example:
501 Not implemented (placeholder handler)- Example:
- Example:
- Proper use example:
POST /onboarding-sessions/{sessionId}/addresses
- OpenAPI path:
/public/onboarding-sessions/{sessionId}/addresses - operationId:
createOnboardingAddress - Objective: Add a new address record associated with the onboarding session before party finalization.
- Request payload: Required JSON body.
- Example:
- Example:
- Possible responses:
201 Successful response- Example:
- Example:
501 Not implemented (placeholder handler)- Example:
- Example:
- Proper use example:
PATCH /onboarding-sessions/{sessionId}/addresses/{addressId}
- OpenAPI path:
/public/onboarding-sessions/{sessionId}/addresses/{addressId} - operationId:
updateOnboardingAddress - Objective: Update an existing onboarding-session address (partial update).
- Request payload: Required JSON body.
- Example:
- Example:
- Possible responses:
200 Successful response- Example:
- Example:
501 Not implemented (placeholder handler)- Example:
- Example:
- Proper use example:
Applicant Profile
PUT /onboarding-sessions/{sessionId}/applicant-profile
- OpenAPI path:
/public/onboarding-sessions/{sessionId}/applicant-profile - operationId:
upsertApplicantProfile - Objective: Create or replace the applicant profile details collected during onboarding.
- Request payload: Required JSON body.
- Example:
- Example:
- Possible responses:
200 Successful response- Example:
- Example:
501 Not implemented (placeholder handler)- Example:
- Example:
- Proper use example:
Contact Verification
POST /onboarding-sessions/{sessionId}/contact/email
- OpenAPI path:
/public/onboarding-sessions/{sessionId}/contact/email - operationId:
submitOnboardingEmail - Objective: Submit or update the applicant email address as part of contact verification during onboarding.
- Request payload: Required JSON body.
- Example:
- Example:
- Possible responses:
201 Successful response- Example:
- Example:
501 Not implemented (placeholder handler)- Example:
- Example:
- Proper use example:
POST /onboarding-sessions/{sessionId}/contact/email/retry
- OpenAPI path:
/public/onboarding-sessions/{sessionId}/contact/email/retry - operationId:
retryOnboardingEmailVerification - Objective: Request a new email verification code or retry the email verification step.
- Request payload: Required JSON body.
- Example:
- Example:
- Possible responses:
201 Successful response- Example:
- Example:
501 Not implemented (placeholder handler)- Example:
- Example:
- Proper use example:
POST /onboarding-sessions/{sessionId}/contact/phone
- OpenAPI path:
/public/onboarding-sessions/{sessionId}/contact/phone - operationId:
submitOnboardingPhone - Objective: Submit or update the applicant phone number for SMS or call verification during onboarding.
- Request payload: Required JSON body.
- Example:
- Example:
- Possible responses:
201 Successful response- Example:
- Example:
501 Not implemented (placeholder handler)- Example:
- Example:
- Proper use example:
POST /onboarding-sessions/{sessionId}/contact/phone/retry
- OpenAPI path:
/public/onboarding-sessions/{sessionId}/contact/phone/retry - operationId:
retryOnboardingPhoneVerification - Objective: Request a new phone verification code or retry the phone verification step.
- Request payload: Required JSON body.
- Example:
- Example:
- Possible responses:
201 Successful response- Example:
- Example:
501 Not implemented (placeholder handler)- Example:
- Example:
- Proper use example:
Requirements and Submission
GET /onboarding-sessions/{sessionId}/requirements
- OpenAPI path:
/public/onboarding-sessions/{sessionId}/requirements - operationId:
listPendingOnboardingRequirements - Objective: List outstanding onboarding requirements or checklist items the applicant must satisfy.
- Request payload: None.
- Possible responses:
200 Successful response- Example:
- Example:
501 Not implemented (placeholder handler)- Example:
- Example:
- Proper use example:
POST /onboarding-sessions/{sessionId}/submit
- OpenAPI path:
/public/onboarding-sessions/{sessionId}/submit - operationId:
submitOnboardingForReview - Objective: Submit the completed onboarding package for internal review or underwriting handoff.
- Request payload: Required JSON body.
- Example:
- Example:
- Possible responses:
201 Successful response- Example:
- Example:
501 Not implemented (placeholder handler)- Example:
- Example:
- Proper use example:
Party Resolution and Webhook Registration
GET /onboarding-sessions/{sessionId}/party
- OpenAPI path:
/public/onboarding-sessions/{sessionId}/party - operationId:
getPartyBySessionId - Objective: Resolve and return the party record linked to the onboarding session, if one exists. After approval, partners may also receive the same payload via the
party.readyoutbound webhook. - Request payload: None.
- Possible responses:
200 Successful response- Example:
- Example:
501 Not implemented (placeholder handler)- Example:
- Example:
- Proper use example:
PUT /onboarding-sessions/{sessionId}/webhook
- OpenAPI path:
/public/onboarding-sessions/{sessionId}/webhook - operationId:
registerOnboardingSessionWebhook - Objective: Register or update the HTTPS URL (and optional signing secret) where Rhino POSTs a
party.readyevent when internal onboarding is approved with aparty_id. - Request payload: Required JSON body.
- Example:
- Example:
- Possible responses:
200 Successful response- Example:
- Example:
400 Validation or request format error- Example:
- Example:
500 Internal server error- Example:
- Example:
- Proper use example:
Party Endpoints Used After Onboarding
GET /parties/{partyId}
- OpenAPI path:
/public/parties/{partyId} - operationId:
getParty - Objective: Fetch a party profile and core attributes for a known party identifier.
- Request payload: None.
- Possible responses:
200 Successful response- Example:
- Example:
501 Not implemented (placeholder handler)- Example:
- Example:
- Proper use example:
GET /parties/{partyId}/addresses
- OpenAPI path:
/public/parties/{partyId}/addresses - operationId:
listPartyAddresses - Objective: List all addresses on file for the party after onboarding has produced a party record.
- Request payload: None.
- Possible responses:
200 Successful response- Example:
- Example:
501 Not implemented (placeholder handler)- Example:
- Example:
- Proper use example:
POST /parties/{partyId}/addresses
- OpenAPI path:
/public/parties/{partyId}/addresses - operationId:
createPartyAddress - Objective: Add a new address to the party’s permanent address book post-onboarding.
- Request payload: Required JSON body.
- Example:
- Example:
- Possible responses:
201 Successful response- Example:
- Example:
501 Not implemented (placeholder handler)- Example:
- Example:
- Proper use example:
PATCH /parties/{partyId}/addresses/{addressId}
- OpenAPI path:
/public/parties/{partyId}/addresses/{addressId} - operationId:
updatePartyAddress - Objective: Update an existing party address (partial update).
- Request payload: Required JSON body.
- Example:
- Example:
- Possible responses:
200 Successful response- Example:
- Example:
501 Not implemented (placeholder handler)- Example:
- Example:
- Proper use example:
