Provision a managed investor
POST/v1/investors
Creates a party identity (investor account + profile) the partner owns. Supplying the optional profile block completes the investor in the same call, which is the normal case. Idempotent on partner_customer_ref: re-provisioning the same ref with the same details replays the existing investor (200) instead of creating a second one (201); re-provisioning it with a different inline profile is a 409 — use PUT /v1/investors/{id}/profile to change a profile. The investor has no login user and cannot authenticate directly.
Request
Responses
- 200
- 201
- 400
- 401
- 403
- 422
- 429
Existing investor resolved — idempotent replay of the same partner_customer_ref.
Response Headers
Requests permitted per minute for the authenticated API client.
Requests still available in the current window. The bucket refills continuously, so this rises as you go rather than resetting on a boundary.
Seconds until the budget is back to its full limit. Not the wait for the next single request — that is Retry-After on a 429.
Investor provisioned.
Response Headers
Requests permitted per minute for the authenticated API client.
Requests still available in the current window. The bucket refills continuously, so this rises as you go rather than resetting on a boundary.
Seconds until the budget is back to its full limit. Not the wait for the next single request — that is Retry-After on a 429.
Malformed request — e.g. an unknown sort, dividend_type, or affiliation token.
Missing or invalid access token.
Token lacks a scope this endpoint requires. The body carries code: INSUFFICIENT_SCOPE and a required_scopes array naming what is missing; the response also carries WWW-Authenticate: Bearer error="insufficient_scope", scope="…". A 403 with code: FORBIDDEN is a different failure and adding scopes will not fix it.
Validation failed. The errors map carries per-field detail.
Rate limit exceeded — 600 requests a minute per API client. Unlike every other 4xx here, the request itself is fine: sleep for the Retry-After seconds given and resend it unchanged. See https://docs.valueverde.de/docs/rate-limits.
Response Headers
Requests permitted per minute for the authenticated API client.
Requests still available in the current window. The bucket refills continuously, so this rises as you go rather than resetting on a boundary.
Seconds until the budget is back to its full limit. Not the wait for the next single request — that is Retry-After on a 429.
Seconds to wait before resending. Always at least 1.