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

↑↓navigate↵openEscclose