Skip to main content
This guide walks you through ingesting Members - the individuals and entities associated with corporate clients as Ultimate Beneficial Owners (UBOs), Directors, Officers, or Signatories. Full API reference is available in the API Reference.
Before ingesting members, make sure the related corporate clients have already been ingested. See the Ingesting Clients guide.

Overview

Members represent the people and entities behind a corporate client. Each member has:
  • A role type defining their relationship to the corporate (e.g., OWNER, DIRECTOR, BENEFICIAL_OWNER)
  • Screening statuses for Sanctions, PEP, and Adverse Media checks
  • An approval status reflecting their overall verification state
Members support upsert behavior: if a member with the same referenceId already exists, it will be updated.

Available Role Types

RoleDescription
OWNEROwner of the corporate entity
DIRECTORDirector / board member
OFFICERCorporate officer
AUTHORIZED_REPRESENTATIVEAuthorized to act on behalf of the entity
BENEFICIAL_OWNERUltimate beneficial owner (UBO)
SHAREHOLDERShareholder of the entity
SIGNATORYAuthorized signatory
TRUSTEETrustee (for trusts)
PROTECTORTrust protector
SETTLORTrust settlor
OTHEROther relationship

Step 1: Create Individual Members

Endpoint: POST /v1/members/individuals Use this endpoint to add natural persons (e.g., UBOs, directors) to a corporate client.
POST /v1/members/individuals?upsert=true
Content-Type: application/json

{
  "referenceId": "MEM-IND-001",
  "firstName": "Jane",
  "lastName": "Smith",
  "middleName": "Marie",
  "email": "jane.smith@example.com",
  "phoneNumber": "+1-555-123-4567",
  "dateOfBirth": "1980-03-20T00:00:00Z",
  "citizenship": "USA",
  "personalIdNumber": "987-65-4321",
  "residentialAddressLine1": "456 Oak Avenue",
  "residentialAddressCity": "San Francisco",
  "residentialAddressPostalCode": "94102",
  "residentialAddressCountry": "USA",
  "ownershipPercentage": 35,
  "roleType": "BENEFICIAL_OWNER",
  "title": "Co-Founder",
  "status": "APPROVED",
  "statusDate": "2024-01-10T00:00:00Z",
  "sanctionsStatus": "CLEAR",
  "sanctionsStatusDate": "2024-01-10T00:00:00Z",
  "pepStatus": "CLEAR",
  "pepStatusDate": "2024-01-10T00:00:00Z",
  "adverseMediaStatus": "CLEAR",
  "adverseMediaStatusDate": "2024-01-10T00:00:00Z",
  "corporates": ["corporate-client-uuid"]
}

Key Fields

FieldRequiredDescription
firstName, lastNameYesMember’s name
roleTypeYesRelationship to the corporate (see role types above)
titleYesPosition or title within the organization
statusYesVerification status: APPROVED, REJECTED, or UNDER_REVIEW
statusDateYesDate of status determination
sanctionsStatusYesCLEAR, FLAGGED, UNDER_REVIEW, or NOT_CHECKED
pepStatusYesPEP screening status (same values as sanctions)
adverseMediaStatusYesAdverse media screening status (same values as sanctions)
corporatesNoArray of corporate client IDs to associate this member with
ownershipPercentageNoPercentage of ownership (0-100)
You can also include identityDocuments inline when creating a member (see Step 2).

Step 2: Add Identity Documents

Endpoint: POST /v1/members/individuals/{memberId}/documents After creating a member, you can add identity documents to them.
POST /v1/members/individuals/member-uuid/documents
Content-Type: application/json

{
  "documentType": "PASSPORT",
  "documentNumber": "AB1234567",
  "documentIssuingCountry": "USA",
  "documentExpirationDate": "2030-06-15",
  "documentImageUrl": "https://your-storage.com/documents/passport-scan.jpg"
}

Supported Document Types

TypeDescription
PASSPORTInternational passport
DRIVERS_LICENSEDriver’s license
NATIONAL_IDNational ID card
RESIDENCE_PERMITResidence permit
BIRTH_CERTIFICATEBirth certificate
OTHEROther document type
You can add up to 10 identity documents per member. Documents can also be included inline in the identityDocuments array when creating the member in Step 1.

Step 3: Create Corporate Members

Endpoint: POST /v1/members/corporates For nested corporate ownership structures, you can add corporate entities as members of another corporate client.
POST /v1/members/corporates?upsert=true
Content-Type: application/json

{
  "referenceId": "MEM-CORP-001",
  "legalEntityName": "Acme Holdings Ltd",
  "countryOfIncorporation": "GBR",
  "registrationNumber": "12345678",
  "dateOfIncorporation": "2015-01-01T00:00:00Z",
  "businessAddressLine1": "100 Finance Street",
  "businessAddressCity": "London",
  "businessAddressPostalCode": "EC2R 8AH",
  "businessAddressCountry": "GBR",
  "email": "contact@acmeholdings.com",
  "ownershipPercentage": 51,
  "roleType": "SHAREHOLDER",
  "title": "Parent Company",
  "status": "APPROVED",
  "statusDate": "2024-01-10T00:00:00Z",
  "sanctionsStatus": "CLEAR",
  "sanctionsStatusDate": "2024-01-10T00:00:00Z",
  "pepStatus": "NOT_CHECKED",
  "pepStatusDate": "2024-01-10T00:00:00Z",
  "adverseMediaStatus": "CLEAR",
  "adverseMediaStatusDate": "2024-01-10T00:00:00Z",
  "corporates": ["corporate-client-uuid"]
}

Step 4: Update Members

Use the PUT endpoints to update existing member data as screening results change or information is updated.

Update an Individual Member

Endpoint: PUT /v1/members/individuals/{memberId}
PUT /v1/members/individuals/member-uuid
Content-Type: application/json

{
  "sanctionsStatus": "FLAGGED",
  "sanctionsStatusDate": "2024-06-15T00:00:00Z",
  "status": "UNDER_REVIEW",
  "statusDate": "2024-06-15T00:00:00Z"
}

Update a Corporate Member

Endpoint: PUT /v1/members/corporates/{memberId}
PUT /v1/members/corporates/member-uuid
Content-Type: application/json

{
  "ownershipPercentage": 60,
  "adverseMediaStatus": "FLAGGED",
  "adverseMediaStatusDate": "2024-06-15T00:00:00Z"
}
All fields are optional on update - only include the fields you want to change.

What’s Next?

Accounts & Wallets

Ingest bank accounts and blockchain wallets for your clients.

Ingest Operations

Ingest deposits, withdrawals, and trades.