POST/application/submit-individual

Upsert Individual

Creates or updates one individual (officer/UBO) on a Business application. Not applicable to Individual Plus applications.

  • Create: Omit Id. A new individual record is added to the application.
  • Update: Include Id (the individual ID from a previous response) and Version. The entire individual record is fully replaced — send the full payload every time.

Field requirements are role-dependent: IsShareHolder and IsAuthorizedUser are asked of everyone. Dob, Nationality, Email, TaxId, and Address are required for shareholders, authorized users, independent directors, and control persons. MotherMaidenName, Role, AccessType, IsAuthorizedContact, and IsAgentWithAttorneyPower are required only when IsAuthorizedUser is true. Ssn is additionally required for US individuals.

Optimistic locking: Send the Version from the last response on update. Stale version → dirty_update.

Headers

FieldTypeRequiredPossible valuesDescription
session-tokenstringRequired

SessionToken obtained from the Create GMA Session endpoint. All secured endpoints require this header.

Request body

FieldTypeRequiredPossible valuesDescription
ApplicationIdstringRequired

The business application ID (returned from `POST /application/submit-form`).

FirstNamestringRequired

First name. Required for shareholders, authorized users, independent directors, and control persons.

LastNamestringRequired

Last name. Required for shareholders, authorized users, independent directors, and control persons.

EmailstringRequired

Email address. Must be globally unique. Required for shareholders, authorized users, independent directors, and control persons.

IsShareHolderbooleanRequired

Is this individual a shareholder?

IsAuthorizedUserbooleanRequired

Is this individual an authorized user?

AddressobjectRequired

Residential address. Required for shareholders, authorized users, directors, and control persons.

Address.StreetstringRequired

Street name

Address.BuildingNumberstringRequired

Building or house number

Address.CitystringRequired

City name

Address.StatestringRequired

State or province name

Address.PinCodestringRequired

Postal or ZIP code

Address.CountrystringRequired

ISO Alpha-2 country code (e.g. US)

Idstring | nullOptional

`null` or absent to create a new individual. Set to the individual's `Id` from a previous response to update.

VersionintegerOptional

Optimistic lock version. Send the `Version` from the last response on update. Stale value → `dirty_update` (400). Omit to skip the check.

MotherMaidenNamestringOptional

Mother's maiden name. Required when `IsAuthorizedUser` is `true`.

DobstringOptionalyyyyMMdd

Date of birth. Format: `yyyyMMdd`. Required for shareholders, authorized users, independent directors, and control persons.

NationalitystringOptionale.g. US

ISO 3166-1 alpha-2 nationality. Required for shareholders, authorized users, independent directors, and control persons.

MobileCountryCodeintegerOptionale.g. 1

International dialing code for `MobilePhone` (e.g. `1` for US). Required for shareholders, authorized users, independent directors, and control persons.

MobilePhonestringOptional

Mobile phone number (digits only). Must be globally unique. Required for shareholders, authorized users, independent directors, and control persons.

TaxIdstringOptional

Tax ID number. Min: 1, Max: 20 characters. Required for shareholders, authorized users, independent directors, and control persons.

CountryOfIssuancestringOptionale.g. US

Country of issuance for the Tax ID. ISO 3166-1 alpha-2. Required for shareholders, authorized users, independent directors, and control persons.

SsnstringOptional

Social Security Number (9 digits, no hyphens). Additionally required when `Nationality` or `Address.Country` is `US`.

PercentOwnernumberOptional

Ownership percentage.

IsControlPersonbooleanOptional

Is this individual a control person (significant management responsibility)?

IsDirectorbooleanOptional

Is this individual a director? Required when `IsShareHolder`, `IsAuthorizedUser`, or `IsControlPerson` is `true`.

IsIndependentDirectorbooleanOptional

Is this individual an independent director? Required when `IsShareHolder`, `IsAuthorizedUser`, and `IsControlPerson` are all `false`.

IsPrimaryUserbooleanOptional

Is this individual the primary user? Setting to `true` clears the flag from all other individuals.

HaveControlOverEntitybooleanOptional

Does this individual have control over the entity?

IsAuthorizedContactbooleanOptional

Is this individual an authorized contact? Required when `IsAuthorizedUser` is `true`.

IsAgentWithAttorneyPowerbooleanOptional

Is this individual operating under power of attorney? Required when `IsAuthorizedUser` is `true`.

Rolestring (enum)Optionalceo | cfo | coo | president | vice_president | partner | manager | other

Individual's role. Required when `IsAuthorizedUser` is `true`.

AccessTypestring (enum)OptionalStdViewer (Viewer) | StdBasic (Basic User) | StdApprover (Approver) | NoGroup (Power User)

Account access level. Required when `IsAuthorizedUser` is `true`.

SourceOfWealthListarray<string> (enum)Optionalemployment_compensation | retirement_pension | proceeds_from_sale | inheritance | gifts_from_family | bank_loan | family_loan | income_legal_settlements | casino_lottery_winnings | investments

Source(s) of wealth (multi-select).

CardnumberOptionale.g. 1

Card preference flag (e.g. `1`). Used with address country for Visa debit card eligibility.

MailingAddressobjectOptional

Mailing address. Same shape as `Address`.

MailingAddress.StreetstringOptional

Street name

MailingAddress.BuildingNumberstringOptional

Building or house number

MailingAddress.CitystringOptional

City name

MailingAddress.StatestringOptional

State or province name

MailingAddress.PinCodestringOptional

Postal or ZIP code

MailingAddress.CountrystringOptional

ISO Alpha-2 country code (e.g. `US`)

Example request

{
  "ApplicationId": "6a585058e557d865e30a8d4f",
  "FirstName": "John",
  "LastName": "Smith",
  "MotherMaidenName": "Doe",
  "Dob": "19800101",
  "Nationality": "US",
  "Email": "john.smith10@example.com",
  "MobileCountryCode": 91,
  "MobilePhone": "9871236540",
  "TaxId": "123456789",
  "Ssn": "123456789",
  "CountryOfIssuance": "US",
  "IsPrimaryUser": true,
  "IsShareHolder": true,
  "PercentOwner": 100,
  "IsAuthorizedUser": true,
  "Role": "ceo",
  "AccessType": "NoGroup",
  "IsAuthorizedContact": true,
  "IsAgentWithAttorneyPower": false,
  "IsDirector": true,
  "IsIndependentDirector": false,
  "IsControlPerson": true,
  "HaveControlOverEntity": true,
  "SourceOfWealthList": [
    "employment_compensation"
  ],
  "Address": {
    "Street": "5th Avenue",
    "BuildingNumber": "100",
    "City": "New York",
    "State": "NY",
    "PinCode": "10001",
    "Country": "US"
  },
  "Card": 1,
  "MailingAddress": {
    "Street": "5th Avenue",
    "BuildingNumber": "100",
    "City": "New York",
    "State": "NY",
    "PinCode": "10001",
    "Country": "US"
  }
}

Email and MobilePhone must be unique across the entire platform. Submitting a duplicate email or mobile number returns a 400 error.

A 423 Application Locked response is returned when the application is in a locked or final status.

Response

FieldTypePossible valuesDescription
ResponseCodeinteger200 | 201 | 204 | 301 | 400 | 401 | 403 | 404 | 410 | 422 | 500 | 503

API result code in the response envelope. Indicates success or the error category (e.g. 200 success, 400 bad request, 401 unauthorized).

ResponseMessagestringSuccess | Created | NoContent | BadRequest | Unauthorized | Forbidden | NotFound | Gone | UnprocessableContent | ServerError | ResourceMoved | ServiceUnAvailable | UnProcessableEntity

Human-readable label paired with ResponseCode (e.g. Success, BadRequest, Unauthorized). Use with ResponseCode to interpret the outcome.

ResponseDataobjectPlease refer to below example for response body

The saved individual record. Use `Id` and `Version` on subsequent updates.

Example response

{
  "ResponseCode": 200,
  "ResponseMessage": "Success",
  "ResponseData": {
    "Version": 0,
    "Id": "6a5854ace557d865e30a8d75",
    "ApplicationId": "6a585058e557d865e30a8d4f",
    "FirstName": "John",
    "LastName": "Smith",
    "MotherMaidenName": "Doe",
    "Dob": "19800101",
    "Nationality": "US",
    "Email": "john.smith10@example.com",
    "MobileCountryCode": 91,
    "MobilePhone": "9871236540",
    "TaxId": "123456789",
    "Ssn": "123456789",
    "CountryOfIssuance": "US",
    "IsPrimaryUser": true,
    "IsShareHolder": true,
    "PercentOwner": 100,
    "IsAuthorizedUser": true,
    "Role": "ceo",
    "AccessType": "NoGroup",
    "IsAuthorizedContact": true,
    "IsAgentWithAttorneyPower": false,
    "IsDirector": true,
    "IsIndependentDirector": false,
    "IsControlPerson": true,
    "HaveControlOverEntity": true,
    "SourceOfWealthList": [
      "employment_compensation"
    ],
    "Address": {
      "City": "New York",
      "State": "NY",
      "Country": "US",
      "PinCode": "10001",
      "Street": "5th Avenue",
      "BuildingNumber": "100"
    }
  }
}

A 400 with `invalid_param` is returned if the email or mobile phone is already in use. A 400 with `record_not_found` is returned if the `ApplicationId` does not exist.

  Note

A 423 Application Locked response is returned when the application is in a locked or final status. No further modifications are permitted until FV Bank unlocks the application.

  Note

On 400 validation errors, each error in ResponseErrors includes a Field property that identifies the failing PascalCase request body field (e.g. Business.Phone, Email, Address.City). Use this to surface precise field-level error messages in your UI.

Requires `session-token: {SessionToken}` from Create GMA Session. Use the same client IP as authentication.

Search guide books, endpoints, paths, or parameters

↑↓navigateopenEscclose