Affiliate Onboarding
Submit Onboarding Responses
Upsert one or more answers for an affiliate and optionally mark onboarding as complete
POST
Upserts one answer per question (existing answers are overwritten in place). Optionally pass
mark_complete: true to record a completion — this fails with 400 VALIDATION_ERROR if any required question is still unanswered after this submission.
Path Parameters
The unique identifier of the affiliate
Body Parameters
Up to 100 answers. Each answer must reference an active question by ID. Duplicate
question_id values in the same payload are rejected.May be empty ([]) only when mark_complete: true — useful for finalizing onboarding after answers were saved incrementally over earlier calls. An empty array with mark_complete: false is rejected with a 400 VALIDATION_ERROR.When
true, records an onboarding completion for this affiliate. The completion row is unique per affiliate + form, so subsequent calls with mark_complete: true are idempotent — completed_at is preserved from the first successful completion.If any required question is still unanswered after this submission, the request fails with 400 VALIDATION_ERROR and the missing_question_ids list.Response
Returns the same payload shape asGET /v1/affiliates/{id}/onboarding-responses — the full active form with all of the affiliate’s saved answers and the latest completed_at value.
Notes
- Required permission:
write:affiliates. - Answers are validated against the question’s
type, but not against the configuredoptions. This matches the behavior of the hosted onboarding flow.
