Skip to content
Get started

Representatives

Representatives are individuals who have legal authority or significant responsibility within a business entity associated with a Straddle account. Each representative undergoes automated verification as part of KYC/KYB compliance. Use representatives to collect and verify beneficial owners, control persons, and authorized signers required for account onboarding. Representatives also determine who can legally operate the account and make important changes.

Create a representative
$ straddle embed:representatives create
POST/v1/representatives
List representatives
$ straddle embed:representatives list
GET/v1/representatives
Update a representative
$ straddle embed:representatives update
PUT/v1/representatives/{representative_id}
Lookup a representative
$ straddle embed:representatives get
GET/v1/representatives/{representative_id}
Retrieve unmasked representative details
$ straddle embed:representatives unmask
GET/v1/representatives/{representative_id}/unmask
ModelsExpand Collapse
representative: object { data, meta, response_type }
data: object { id, account_id, created_at, 15 more }
id: string

Unique identifier for the representative.

account_id: string

The unique identifier of the account this representative is associated with.

created_at: string

Timestamp of when the representative was created.

dob: string

The date of birth of the representative, in ISO 8601 format (YYYY-MM-DD).

email: string

The email address of the representative.

first_name: string

The first name of the representative.

last_name: string

The last name of the representative.

mobile_number: string

The mobile phone number of the representative.

name: string
relationship: object { control, owner, primary, 2 more }
control: boolean

Whether the representative has significant responsibility to control, manage, or direct the organization. One representative must be identified under the control prong for each legal entity.

owner: boolean

Whether the representative owns any percentage of of the equity interests of the legal entity.

primary: boolean

Whether the person is authorized as the primary representative of the account. This is the person chosen by the business to provide information about themselves, general information about the account, and who consented to the services agreement.

There can be only one primary representative for an account at a time.

percent_ownership: optional number

The percentage of ownership the representative has. Required if 'Owner' is true.

title: optional string

The job title of the representative.

ssn_last4: string

The last 4 digits of the representative's Social Security Number.

status: "created" or "onboarding" or "active" or 2 more

The current status of the representative.

"created"
"onboarding"
"active"
"rejected"
"inactive"
status_detail: object { code, message, reason, source }
code: string

A machine-readable code for the specific status, useful for programmatic handling.

message: string

A human-readable message describing the current status.

reason: "unverified" or "in_review" or "pending" or 5 more

A machine-readable identifier for the specific status, useful for programmatic handling.

"unverified"
"in_review"
"pending"
"stuck"
"verified"
"failed_verification"
"disabled"
"new"
source: "watchtower"

Identifies the origin of the status change (e.g., watchtower). This helps in tracking the cause of status updates.

"watchtower"
updated_at: string

Timestamp of the most recent update to the representative.

external_id: optional string

Unique identifier for the representative in your database, used for cross-referencing between Straddle and your systems.

metadata: optional map[string]

Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the represetative in a structured format.

phone: optional string
user_id: optional string

The unique identifier of the user account associated with this representative, if applicable.

meta: object { api_request_id, api_request_timestamp }

Metadata about the API request, including an identifier and timestamp.

api_request_id: string

Unique identifier for this API request, useful for troubleshooting.

api_request_timestamp: string

Timestamp for this API request, useful for troubleshooting.

response_type: "object" or "array" or "error" or "none"

Indicates the structure of the returned content.

  • "object" means the data field contains a single JSON object.
  • "array" means the data field contains an array of objects.
  • "error" means the data field contains an error object with details of the issue.
  • "none" means no data is returned.
"object"
"array"
"error"
"none"
representativePaged: object { data, meta, response_type }
data: array of object { id, account_id, created_at, 15 more }
id: string

Unique identifier for the representative.

account_id: string

The unique identifier of the account this representative is associated with.

created_at: string

Timestamp of when the representative was created.

dob: string

The date of birth of the representative, in ISO 8601 format (YYYY-MM-DD).

email: string

The email address of the representative.

first_name: string

The first name of the representative.

last_name: string

The last name of the representative.

mobile_number: string

The mobile phone number of the representative.

name: string
relationship: object { control, owner, primary, 2 more }
control: boolean

Whether the representative has significant responsibility to control, manage, or direct the organization. One representative must be identified under the control prong for each legal entity.

owner: boolean

Whether the representative owns any percentage of of the equity interests of the legal entity.

primary: boolean

Whether the person is authorized as the primary representative of the account. This is the person chosen by the business to provide information about themselves, general information about the account, and who consented to the services agreement.

There can be only one primary representative for an account at a time.

percent_ownership: optional number

The percentage of ownership the representative has. Required if 'Owner' is true.

title: optional string

The job title of the representative.

ssn_last4: string

The last 4 digits of the representative's Social Security Number.

status: "created" or "onboarding" or "active" or 2 more

The current status of the representative.

"created"
"onboarding"
"active"
"rejected"
"inactive"
status_detail: object { code, message, reason, source }
code: string

A machine-readable code for the specific status, useful for programmatic handling.

message: string

A human-readable message describing the current status.

reason: "unverified" or "in_review" or "pending" or 5 more

A machine-readable identifier for the specific status, useful for programmatic handling.

"unverified"
"in_review"
"pending"
"stuck"
"verified"
"failed_verification"
"disabled"
"new"
source: "watchtower"

Identifies the origin of the status change (e.g., watchtower). This helps in tracking the cause of status updates.

"watchtower"
updated_at: string

Timestamp of the most recent update to the representative.

external_id: optional string

Unique identifier for the representative in your database, used for cross-referencing between Straddle and your systems.

metadata: optional map[string]

Up to 20 additional user-defined key-value pairs. Useful for storing additional information about the represetative in a structured format.

phone: optional string
user_id: optional string

The unique identifier of the user account associated with this representative, if applicable.

meta: object { api_request_id, api_request_timestamp, max_page_size, 6 more }

Metadata about the API request, including an identifier, timestamp, and pagination details.

api_request_id: string

Unique identifier for this API request, useful for troubleshooting.

api_request_timestamp: string

Timestamp for this API request, useful for troubleshooting.

max_page_size: number

Maximum allowed page size for this endpoint.

page_number: number

Page number for paginated results.

page_size: number

Number of items per page in this response.

sort_by: string

The field that the results were sorted by.

sort_order: "asc" or "desc"
"asc"
"desc"
total_items: number

Total number of items returned in this response.

total_pages: number

The number of pages available.

response_type: "object" or "array" or "error" or "none"

Indicates the structure of the returned content.

  • "object" means the data field contains a single JSON object.
  • "array" means the data field contains an array of objects.
  • "error" means the data field contains an error object with details of the issue.
  • "none" means no data is returned.
"object"
"array"
"error"
"none"