Skip to main content
POST
Submit Investor Profile

Authorizations

Authorization
string
header
required

Access token obtained via /oauth2/token/. Use as Authorization: Bearer <access_token>.

Path Parameters

customerId
string<uuid>
required

Unique identifier for the customer.

Body

application/json
questionnaireVersion
integer
required

The version of the questionnaire the customer answered. It must still be the active one.

Required range: x >= 1
Example:

1

answers
object[]
required

One answer per question, in any order. Every question must be answered exactly once.

Minimum array length: 1

Response

Profile recorded. Same body as Get Investor Profile Status; a fresh profile is always VALID.

status
enum<string>
required

Where the customer stands. Only REQUIRED and EXPIRED block operations.

  • NOT_REQUIRED: the investor profile does not apply to your account (not a Brazilian account, or not enabled).
  • REQUIRED_SOON: no valid profile yet, but enforcement has not started. The customer can still operate until deadline.
  • REQUIRED: no profile, and it is enforced. Orders, sessions and destination accounts are refused with 20100.
  • VALID: valid profile with more than 30 days left.
  • EXPIRING_SOON: valid profile that expires within 30 days. The customer can still operate; ask them to renew before deadline.
  • EXPIRED: the latest profile expired. Orders, sessions and destination accounts are refused with 20100.
Available options:
NOT_REQUIRED,
REQUIRED_SOON,
REQUIRED,
VALID,
EXPIRING_SOON,
EXPIRED
Example:

"VALID"

deadline
string<date-time> | null
required

When the customer stops being able to operate without answering. Only set for REQUIRED_SOON (the start of enforcement) and EXPIRING_SOON (the profile's expiry, or the start of enforcement if that is later); null otherwise.

Example:

null

investorProfile
object | null
required

The customer's latest profile, or null if they never answered. For EXPIRED it is the expired profile, returned for reference. The profile belongs to the person, so it may also be present with NOT_REQUIRED if they answered it through another integration.