Update a user
Fill scalar eligibility fields after KYC so a product flips eligible: true. Run this once you’ve read GET /v1/users/{id} and seen tokens in missing_fields (e.g. account_purpose, immigration_status, additional_info:has_us_bank_account).
Use PUT, NOT PATCH. PUT /v1/users/{id} → 200 (smoke-confirmed); PATCH /v1/users/{id} → 403 (not a route). The PATCH 403 body is a misleading gateway-level auth error (“Invalid key=value pair … in Authorization header”) — it means “PATCH is not supported, use PUT”; it does NOT mean your Authorization header is wrong.
Field rules:
account_purposemust be one of:receive_payments | manage_professional_income | make_payments | manage_personal_funds | investment_trading | charitable_donations | investment_purposes | operating_a_company | payments_to_friends_or_family_abroad | personal_or_living_expenses | purchase_goods_and_services | protect_wealth | receive_salary | receive_payment_for_freelancing(any other value →400 invalid_enum_value).immigration_status∈ — exact strings.additional_info.has_us_bank_account/has_denied_bank_account="yes"/"no"strings (omitting them silently declares “no”).current_employeronly whenemployment_status = "employed".- Do NOT send
ssnfor non-US individuals; do NOT sendeinfor non-US businesses (useinternational_entity_type).
Scope: a scalar PUT clears scalar gaps but NOT document gaps — documents are file uploads (re-submit identifying_information[].documents[] to clear those). After the PUT, re-read GET /v1/users/{id} and confirm eligible_products[] / missing_fields updated.
Authorizations
Access token from POST /auth (the data.access_token value).
API key issued by Kira. Required on every request, including /auth.
Headers
"2026-04-14"
Path Parameters
User UUID.
Body
The body is of type object.
Response
Success.
individual, business unverified, started, in_review, verified, rejected, needs_action male, female, other