Validates, creates and submits an onboarding submission for an organization in a single request.
The organization must still be in onboarding and must not already have a submission (only one submission per organization is allowed).
On validation failure nothing is persisted and a 422 is returned, with the individual validation failures listed in message.
Each failure is rendered as <fieldPath> <ruleCode> <message>, so the rule codes below can be matched against the response.
Mandatory fields
Only three fields are mandatory. At least one authorized signatory whose signingAuthority is SOLE or JOINT must provide:
authorizedSignatories[].person.names.firstNameauthorizedSignatories[].person.names.surnameauthorizedSignatories[].person.contact.email— at most 50 characters, ASCII only
These three fields are not marked as required in the schema below, because the requirement applies to the submission as a
whole rather than to each entry: signatories who are not legal representatives may omit them. If no legal representative
supplies all three, each missing value is reported on its own field path (MANDATORY, or VALID_EMAIL / MAX_LENGTH for a
malformed or overlong address). If the payload contains no SOLE or JOINT signatory at all, a single
AT_LEAST_ONE_INVITABLE_LEGAL_REP failure is reported on authorizedSignatories.
Validation of optional fields
Every other field is optional, but any field that is provided is validated. Constraints that can be expressed in the schema
(patterns, lengths, enums) are documented on the fields themselves. The following rules cannot be, and are listed here instead:
| Field | Rule code | Constraint |
|---|---|---|
authorizedSignatories | AT_LEAST_ONE_INVITABLE_LEGAL_REP | At least one signatory with signingAuthority SOLE or JOINT, carrying first name, surname and a valid email |
entity.taxProfile.vatRegistrationNumber | VALID_VAT_ID | Must be a valid VAT ID for the organization's country |
entity.addresses.billing.country | BILLING_ADDRESS_COUNTRY_MATCHES_ORGANIZATION_COUNTRY | Must match the organization's country. Only checked when a billing country is provided |
authorizedSignatories[].person.dateOfBirth | DATE_IN_PAST | Must be a date in the past |
Note that these constraints are business validations: a violation returns 422, not 400.

