Skip to content
Get started

Embed

EmbedAccounts

Accounts represent businesses using Straddle through your platform. Each account must complete automated verification before processing payments. Use accounts to manage your users' payment capabilities, track verification status, and control access to features. Accounts can be instantly created in sandbox and require additional verification for production access.

Lookup an account
client.Embed.Accounts.Get(ctx, accountID, query) (*AccountV1, error)
GET/v1/accounts/{account_id}
Update an account
client.Embed.Accounts.Update(ctx, accountID, params) (*AccountV1, error)
PUT/v1/accounts/{account_id}
Create an account
client.Embed.Accounts.New(ctx, params) (*AccountV1, error)
POST/v1/accounts
List accounts
client.Embed.Accounts.List(ctx, params) (*PageNumberSchema[AccountPagedV1Data], error)
GET/v1/accounts
Onboard an account
client.Embed.Accounts.Onboard(ctx, accountID, params) (*AccountV1, error)
POST/v1/accounts/{account_id}/onboard
Simulate status transitions for a sandbox account
client.Embed.Accounts.Simulate(ctx, accountID, params) (*AccountV1, error)
POST/v1/accounts/{account_id}/simulate
ModelsExpand Collapse
type AccountPagedV1 struct{…}
Data []AccountPagedV1Data
ID string

Unique identifier for the account.

formatuuid
AccessLevel string

The access level granted to the account. This is determined by your platform configuration. Use standard unless instructed otherwise by Straddle.

One of the following:
const AccountPagedV1DataAccessLevelStandard AccountPagedV1DataAccessLevel = "standard"
const AccountPagedV1DataAccessLevelManaged AccountPagedV1DataAccessLevel = "managed"
OrganizationID string

The unique identifier of the organization this account belongs to.

formatuuid
Status string

The current status of the account (e.g., 'active', 'inactive', 'pending').

One of the following:
const AccountPagedV1DataStatusCreated AccountPagedV1DataStatus = "created"
const AccountPagedV1DataStatusOnboarding AccountPagedV1DataStatus = "onboarding"
const AccountPagedV1DataStatusActive AccountPagedV1DataStatus = "active"
const AccountPagedV1DataStatusRejected AccountPagedV1DataStatus = "rejected"
const AccountPagedV1DataStatusInactive AccountPagedV1DataStatus = "inactive"
StatusDetail AccountPagedV1DataStatusDetail
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 string

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

One of the following:
const AccountPagedV1DataStatusDetailReasonUnverified AccountPagedV1DataStatusDetailReason = "unverified"
const AccountPagedV1DataStatusDetailReasonInReview AccountPagedV1DataStatusDetailReason = "in_review"
const AccountPagedV1DataStatusDetailReasonPending AccountPagedV1DataStatusDetailReason = "pending"
const AccountPagedV1DataStatusDetailReasonStuck AccountPagedV1DataStatusDetailReason = "stuck"
const AccountPagedV1DataStatusDetailReasonVerified AccountPagedV1DataStatusDetailReason = "verified"
const AccountPagedV1DataStatusDetailReasonFailedVerification AccountPagedV1DataStatusDetailReason = "failed_verification"
const AccountPagedV1DataStatusDetailReasonDisabled AccountPagedV1DataStatusDetailReason = "disabled"
const AccountPagedV1DataStatusDetailReasonTerminated AccountPagedV1DataStatusDetailReason = "terminated"
const AccountPagedV1DataStatusDetailReasonNew AccountPagedV1DataStatusDetailReason = "new"
Source string

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

Type string

The type of account (e.g., 'individual', 'business').

BusinessProfile BusinessProfileV1optional
Name string

The operating or trade name of the business.

Website string

URL of the business's primary marketing website.

formaturi
Address AddressV1optional

The address object is optional. If provided, it must be a valid address.

City string

City, district, suburb, town, or village.

Line1 string

Primary address line (e.g., street, PO Box).

PostalCode string

Postal or ZIP code.

State string

Two-letter state code.

Country stringoptional

The country of the address, in ISO 3166-1 alpha-2 format.

Line2 stringoptional

Secondary address line (e.g., apartment, suite, unit, or building).

Description stringoptional

A brief description of the business and its products or services.

Industry IndustryV1optional
Category stringoptional

The general category of the industry. Required if not providing MCC.

Mcc stringoptional

The Merchant Category Code (MCC) that best describes the business. Optional.

Sector stringoptional

The specific sector within the industry category. Required if not providing MCC.

The official registered name of the business.

Phone stringoptional

The primary contact phone number for the business.

SupportChannels SupportChannelsV1optional
Email stringoptional

The email address for customer support inquiries.

formatemail
Phone stringoptional

The phone number for customer support.

URL stringoptional

The URL of the business's customer support page or contact form.

formaturi
TaxID stringoptional

The business's tax identification number (e.g., EIN in the US).

UseCase stringoptional

A description of how the business intends to use Straddle's services.

Capabilities AccountPagedV1DataCapabilitiesoptional

Whether the internet payment authorization capability is enabled for the account.

One of the following:

Whether the signed agreement payment authorization capability is enabled for the account.

One of the following:
CustomerTypes AccountPagedV1DataCapabilitiesCustomerTypes
Businesses CapabilityV1
CapabilityStatus CapabilityV1CapabilityStatus
One of the following:
const CapabilityV1CapabilityStatusActive CapabilityV1CapabilityStatus = "active"
const CapabilityV1CapabilityStatusInactive CapabilityV1CapabilityStatus = "inactive"
Individuals CapabilityV1
CapabilityStatus CapabilityV1CapabilityStatus
One of the following:
const CapabilityV1CapabilityStatusActive CapabilityV1CapabilityStatus = "active"
const CapabilityV1CapabilityStatusInactive CapabilityV1CapabilityStatus = "inactive"
PaymentTypes AccountPagedV1DataCapabilitiesPaymentTypes
Charges CapabilityV1
CapabilityStatus CapabilityV1CapabilityStatus
One of the following:
const CapabilityV1CapabilityStatusActive CapabilityV1CapabilityStatus = "active"
const CapabilityV1CapabilityStatusInactive CapabilityV1CapabilityStatus = "inactive"
Payouts CapabilityV1
CapabilityStatus CapabilityV1CapabilityStatus
One of the following:
const CapabilityV1CapabilityStatusActive CapabilityV1CapabilityStatus = "active"
const CapabilityV1CapabilityStatusInactive CapabilityV1CapabilityStatus = "inactive"
CreatedAt Timeoptional

Timestamp of when the account was created.

formatdate-time
ExternalID stringoptional

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

Metadata map[string, string]optional

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

Settings AccountPagedV1DataSettingsoptional
Charges AccountPagedV1DataSettingsCharges
DailyAmount int64

The maximum dollar amount of charges in a calendar day.

formatint32
FundingTime string

The amount of time it takes for a charge to be funded. This value is defined by Straddle.

One of the following:
const AccountPagedV1DataSettingsChargesFundingTimeImmediate AccountPagedV1DataSettingsChargesFundingTime = "immediate"
const AccountPagedV1DataSettingsChargesFundingTimeNextDay AccountPagedV1DataSettingsChargesFundingTime = "next_day"
const AccountPagedV1DataSettingsChargesFundingTimeOneDay AccountPagedV1DataSettingsChargesFundingTime = "one_day"
const AccountPagedV1DataSettingsChargesFundingTimeTwoDay AccountPagedV1DataSettingsChargesFundingTime = "two_day"
const AccountPagedV1DataSettingsChargesFundingTimeThreeDay AccountPagedV1DataSettingsChargesFundingTime = "three_day"
const AccountPagedV1DataSettingsChargesFundingTimeFourDay AccountPagedV1DataSettingsChargesFundingTime = "four_day"
const AccountPagedV1DataSettingsChargesFundingTimeFiveDay AccountPagedV1DataSettingsChargesFundingTime = "five_day"
LinkedBankAccountID string

The unique identifier of the linked bank account associated with charges. This value is defined by Straddle.

formatuuid
MaxAmount int64

The maximum amount of a single charge.

formatint32
MonthlyAmount int64

The maximum dollar amount of charges in a calendar month.

formatint32
MonthlyCount int64

The maximum number of charges in a calendar month.

formatint32
Payouts AccountPagedV1DataSettingsPayouts
DailyAmount int64

The maximum dollar amount of payouts in a day.

formatint32
FundingTime string

The amount of time it takes for a payout to be funded. This value is defined by Straddle.

One of the following:
const AccountPagedV1DataSettingsPayoutsFundingTimeImmediate AccountPagedV1DataSettingsPayoutsFundingTime = "immediate"
const AccountPagedV1DataSettingsPayoutsFundingTimeNextDay AccountPagedV1DataSettingsPayoutsFundingTime = "next_day"
const AccountPagedV1DataSettingsPayoutsFundingTimeOneDay AccountPagedV1DataSettingsPayoutsFundingTime = "one_day"
const AccountPagedV1DataSettingsPayoutsFundingTimeTwoDay AccountPagedV1DataSettingsPayoutsFundingTime = "two_day"
const AccountPagedV1DataSettingsPayoutsFundingTimeThreeDay AccountPagedV1DataSettingsPayoutsFundingTime = "three_day"
const AccountPagedV1DataSettingsPayoutsFundingTimeFourDay AccountPagedV1DataSettingsPayoutsFundingTime = "four_day"
const AccountPagedV1DataSettingsPayoutsFundingTimeFiveDay AccountPagedV1DataSettingsPayoutsFundingTime = "five_day"
LinkedBankAccountID string

The unique identifier of the linked bank account to use for payouts.

formatuuid
MaxAmount int64

The maximum amount of a single payout.

formatint32
MonthlyAmount int64

The maximum dollar amount of payouts in a month.

formatint32
MonthlyCount int64

The maximum number of payouts in a month.

formatint32
TermsOfService TermsOfServiceV1optional
AcceptedDate Time

The datetime of when the terms of service were accepted, in ISO 8601 format.

formatdate-time
AgreementType TermsOfServiceV1AgreementType

The type or version of the agreement accepted. Use embedded unless your platform was specifically enabled for direct agreements.

One of the following:
const TermsOfServiceV1AgreementTypeEmbedded TermsOfServiceV1AgreementType = "embedded"
const TermsOfServiceV1AgreementTypeDirect TermsOfServiceV1AgreementType = "direct"
AgreementURL string

The URL where the full text of the accepted agreement can be found.

AcceptedIP stringoptional

The IP address from which the terms of service were accepted.

AcceptedUserAgent stringoptional

The user agent string of the browser or application used to accept the terms.

UpdatedAt Timeoptional

Timestamp of the most recent update to the account.

formatdate-time

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

APIRequestID string

Unique identifier for this API request, useful for troubleshooting.

formatuuid
APIRequestTimestamp Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
MaxPageSize int64

Maximum allowed page size for this endpoint.

formatint32
PageNumber int64

Page number for paginated results.

formatint32
PageSize int64

Number of items per page in this response.

formatint32
SortBy string

The field that the results were sorted by.

SortOrder PagedResponseMetadataSortOrder
One of the following:
const PagedResponseMetadataSortOrderAsc PagedResponseMetadataSortOrder = "asc"
const PagedResponseMetadataSortOrderDesc PagedResponseMetadataSortOrder = "desc"
TotalItems int64

Total number of items returned in this response.

formatint32
TotalPages int64

The number of pages available.

formatint32
ResponseType AccountPagedV1ResponseType

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.
One of the following:
const AccountPagedV1ResponseTypeObject AccountPagedV1ResponseType = "object"
const AccountPagedV1ResponseTypeArray AccountPagedV1ResponseType = "array"
const AccountPagedV1ResponseTypeError AccountPagedV1ResponseType = "error"
const AccountPagedV1ResponseTypeNone AccountPagedV1ResponseType = "none"
type AccountV1 struct{…}
Data AccountV1Data
ID string

Unique identifier for the account.

formatuuid
AccessLevel string

The access level granted to the account. This is determined by your platform configuration. Use standard unless instructed otherwise by Straddle.

One of the following:
const AccountV1DataAccessLevelStandard AccountV1DataAccessLevel = "standard"
const AccountV1DataAccessLevelManaged AccountV1DataAccessLevel = "managed"
OrganizationID string

The unique identifier of the organization this account belongs to.

formatuuid
Status string

The current status of the account (e.g., 'active', 'inactive', 'pending').

One of the following:
const AccountV1DataStatusCreated AccountV1DataStatus = "created"
const AccountV1DataStatusOnboarding AccountV1DataStatus = "onboarding"
const AccountV1DataStatusActive AccountV1DataStatus = "active"
const AccountV1DataStatusRejected AccountV1DataStatus = "rejected"
const AccountV1DataStatusInactive AccountV1DataStatus = "inactive"
StatusDetail AccountV1DataStatusDetail
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 string

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

One of the following:
const AccountV1DataStatusDetailReasonUnverified AccountV1DataStatusDetailReason = "unverified"
const AccountV1DataStatusDetailReasonInReview AccountV1DataStatusDetailReason = "in_review"
const AccountV1DataStatusDetailReasonPending AccountV1DataStatusDetailReason = "pending"
const AccountV1DataStatusDetailReasonStuck AccountV1DataStatusDetailReason = "stuck"
const AccountV1DataStatusDetailReasonVerified AccountV1DataStatusDetailReason = "verified"
const AccountV1DataStatusDetailReasonFailedVerification AccountV1DataStatusDetailReason = "failed_verification"
const AccountV1DataStatusDetailReasonDisabled AccountV1DataStatusDetailReason = "disabled"
const AccountV1DataStatusDetailReasonTerminated AccountV1DataStatusDetailReason = "terminated"
const AccountV1DataStatusDetailReasonNew AccountV1DataStatusDetailReason = "new"
Source string

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

Type string

The type of account (e.g., 'individual', 'business').

BusinessProfile BusinessProfileV1optional
Name string

The operating or trade name of the business.

Website string

URL of the business's primary marketing website.

formaturi
Address AddressV1optional

The address object is optional. If provided, it must be a valid address.

City string

City, district, suburb, town, or village.

Line1 string

Primary address line (e.g., street, PO Box).

PostalCode string

Postal or ZIP code.

State string

Two-letter state code.

Country stringoptional

The country of the address, in ISO 3166-1 alpha-2 format.

Line2 stringoptional

Secondary address line (e.g., apartment, suite, unit, or building).

Description stringoptional

A brief description of the business and its products or services.

Industry IndustryV1optional
Category stringoptional

The general category of the industry. Required if not providing MCC.

Mcc stringoptional

The Merchant Category Code (MCC) that best describes the business. Optional.

Sector stringoptional

The specific sector within the industry category. Required if not providing MCC.

The official registered name of the business.

Phone stringoptional

The primary contact phone number for the business.

SupportChannels SupportChannelsV1optional
Email stringoptional

The email address for customer support inquiries.

formatemail
Phone stringoptional

The phone number for customer support.

URL stringoptional

The URL of the business's customer support page or contact form.

formaturi
TaxID stringoptional

The business's tax identification number (e.g., EIN in the US).

UseCase stringoptional

A description of how the business intends to use Straddle's services.

Capabilities AccountV1DataCapabilitiesoptional

Whether the internet payment authorization capability is enabled for the account.

One of the following:

Whether the signed agreement payment authorization capability is enabled for the account.

One of the following:
CustomerTypes AccountV1DataCapabilitiesCustomerTypes
Businesses CapabilityV1
CapabilityStatus CapabilityV1CapabilityStatus
One of the following:
const CapabilityV1CapabilityStatusActive CapabilityV1CapabilityStatus = "active"
const CapabilityV1CapabilityStatusInactive CapabilityV1CapabilityStatus = "inactive"
Individuals CapabilityV1
CapabilityStatus CapabilityV1CapabilityStatus
One of the following:
const CapabilityV1CapabilityStatusActive CapabilityV1CapabilityStatus = "active"
const CapabilityV1CapabilityStatusInactive CapabilityV1CapabilityStatus = "inactive"
PaymentTypes AccountV1DataCapabilitiesPaymentTypes
Charges CapabilityV1
CapabilityStatus CapabilityV1CapabilityStatus
One of the following:
const CapabilityV1CapabilityStatusActive CapabilityV1CapabilityStatus = "active"
const CapabilityV1CapabilityStatusInactive CapabilityV1CapabilityStatus = "inactive"
Payouts CapabilityV1
CapabilityStatus CapabilityV1CapabilityStatus
One of the following:
const CapabilityV1CapabilityStatusActive CapabilityV1CapabilityStatus = "active"
const CapabilityV1CapabilityStatusInactive CapabilityV1CapabilityStatus = "inactive"
CreatedAt Timeoptional

Timestamp of when the account was created.

formatdate-time
ExternalID stringoptional

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

Metadata map[string, string]optional

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

Settings AccountV1DataSettingsoptional
Charges AccountV1DataSettingsCharges
DailyAmount int64

The maximum dollar amount of charges in a calendar day.

formatint32
FundingTime string

The amount of time it takes for a charge to be funded. This value is defined by Straddle.

One of the following:
const AccountV1DataSettingsChargesFundingTimeImmediate AccountV1DataSettingsChargesFundingTime = "immediate"
const AccountV1DataSettingsChargesFundingTimeNextDay AccountV1DataSettingsChargesFundingTime = "next_day"
const AccountV1DataSettingsChargesFundingTimeOneDay AccountV1DataSettingsChargesFundingTime = "one_day"
const AccountV1DataSettingsChargesFundingTimeTwoDay AccountV1DataSettingsChargesFundingTime = "two_day"
const AccountV1DataSettingsChargesFundingTimeThreeDay AccountV1DataSettingsChargesFundingTime = "three_day"
const AccountV1DataSettingsChargesFundingTimeFourDay AccountV1DataSettingsChargesFundingTime = "four_day"
const AccountV1DataSettingsChargesFundingTimeFiveDay AccountV1DataSettingsChargesFundingTime = "five_day"
LinkedBankAccountID string

The unique identifier of the linked bank account associated with charges. This value is defined by Straddle.

formatuuid
MaxAmount int64

The maximum amount of a single charge.

formatint32
MonthlyAmount int64

The maximum dollar amount of charges in a calendar month.

formatint32
MonthlyCount int64

The maximum number of charges in a calendar month.

formatint32
Payouts AccountV1DataSettingsPayouts
DailyAmount int64

The maximum dollar amount of payouts in a day.

formatint32
FundingTime string

The amount of time it takes for a payout to be funded. This value is defined by Straddle.

One of the following:
const AccountV1DataSettingsPayoutsFundingTimeImmediate AccountV1DataSettingsPayoutsFundingTime = "immediate"
const AccountV1DataSettingsPayoutsFundingTimeNextDay AccountV1DataSettingsPayoutsFundingTime = "next_day"
const AccountV1DataSettingsPayoutsFundingTimeOneDay AccountV1DataSettingsPayoutsFundingTime = "one_day"
const AccountV1DataSettingsPayoutsFundingTimeTwoDay AccountV1DataSettingsPayoutsFundingTime = "two_day"
const AccountV1DataSettingsPayoutsFundingTimeThreeDay AccountV1DataSettingsPayoutsFundingTime = "three_day"
const AccountV1DataSettingsPayoutsFundingTimeFourDay AccountV1DataSettingsPayoutsFundingTime = "four_day"
const AccountV1DataSettingsPayoutsFundingTimeFiveDay AccountV1DataSettingsPayoutsFundingTime = "five_day"
LinkedBankAccountID string

The unique identifier of the linked bank account to use for payouts.

formatuuid
MaxAmount int64

The maximum amount of a single payout.

formatint32
MonthlyAmount int64

The maximum dollar amount of payouts in a month.

formatint32
MonthlyCount int64

The maximum number of payouts in a month.

formatint32
TermsOfService TermsOfServiceV1optional
AcceptedDate Time

The datetime of when the terms of service were accepted, in ISO 8601 format.

formatdate-time
AgreementType TermsOfServiceV1AgreementType

The type or version of the agreement accepted. Use embedded unless your platform was specifically enabled for direct agreements.

One of the following:
const TermsOfServiceV1AgreementTypeEmbedded TermsOfServiceV1AgreementType = "embedded"
const TermsOfServiceV1AgreementTypeDirect TermsOfServiceV1AgreementType = "direct"
AgreementURL string

The URL where the full text of the accepted agreement can be found.

AcceptedIP stringoptional

The IP address from which the terms of service were accepted.

AcceptedUserAgent stringoptional

The user agent string of the browser or application used to accept the terms.

UpdatedAt Timeoptional

Timestamp of the most recent update to the account.

formatdate-time

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

APIRequestID string

Unique identifier for this API request, useful for troubleshooting.

formatuuid
APIRequestTimestamp Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
ResponseType AccountV1ResponseType

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.
One of the following:
const AccountV1ResponseTypeObject AccountV1ResponseType = "object"
const AccountV1ResponseTypeArray AccountV1ResponseType = "array"
const AccountV1ResponseTypeError AccountV1ResponseType = "error"
const AccountV1ResponseTypeNone AccountV1ResponseType = "none"
type AddressV1 struct{…}

The address object is optional. If provided, it must be a valid address.

City string

City, district, suburb, town, or village.

Line1 string

Primary address line (e.g., street, PO Box).

PostalCode string

Postal or ZIP code.

State string

Two-letter state code.

Country stringoptional

The country of the address, in ISO 3166-1 alpha-2 format.

Line2 stringoptional

Secondary address line (e.g., apartment, suite, unit, or building).

type BusinessProfileV1 struct{…}
Name string

The operating or trade name of the business.

Website string

URL of the business's primary marketing website.

formaturi
Address AddressV1optional

The address object is optional. If provided, it must be a valid address.

City string

City, district, suburb, town, or village.

Line1 string

Primary address line (e.g., street, PO Box).

PostalCode string

Postal or ZIP code.

State string

Two-letter state code.

Country stringoptional

The country of the address, in ISO 3166-1 alpha-2 format.

Line2 stringoptional

Secondary address line (e.g., apartment, suite, unit, or building).

Description stringoptional

A brief description of the business and its products or services.

Industry IndustryV1optional
Category stringoptional

The general category of the industry. Required if not providing MCC.

Mcc stringoptional

The Merchant Category Code (MCC) that best describes the business. Optional.

Sector stringoptional

The specific sector within the industry category. Required if not providing MCC.

The official registered name of the business.

Phone stringoptional

The primary contact phone number for the business.

SupportChannels SupportChannelsV1optional
Email stringoptional

The email address for customer support inquiries.

formatemail
Phone stringoptional

The phone number for customer support.

URL stringoptional

The URL of the business's customer support page or contact form.

formaturi
TaxID stringoptional

The business's tax identification number (e.g., EIN in the US).

UseCase stringoptional

A description of how the business intends to use Straddle's services.

type CapabilityV1 struct{…}
CapabilityStatus CapabilityV1CapabilityStatus
One of the following:
const CapabilityV1CapabilityStatusActive CapabilityV1CapabilityStatus = "active"
const CapabilityV1CapabilityStatusInactive CapabilityV1CapabilityStatus = "inactive"
type IndustryV1 struct{…}
Category stringoptional

The general category of the industry. Required if not providing MCC.

Mcc stringoptional

The Merchant Category Code (MCC) that best describes the business. Optional.

Sector stringoptional

The specific sector within the industry category. Required if not providing MCC.

type SupportChannelsV1 struct{…}
Email stringoptional

The email address for customer support inquiries.

formatemail
Phone stringoptional

The phone number for customer support.

URL stringoptional

The URL of the business's customer support page or contact form.

formaturi
type TermsOfServiceV1 struct{…}
AcceptedDate Time

The datetime of when the terms of service were accepted, in ISO 8601 format.

formatdate-time
AgreementType TermsOfServiceV1AgreementType

The type or version of the agreement accepted. Use embedded unless your platform was specifically enabled for direct agreements.

One of the following:
const TermsOfServiceV1AgreementTypeEmbedded TermsOfServiceV1AgreementType = "embedded"
const TermsOfServiceV1AgreementTypeDirect TermsOfServiceV1AgreementType = "direct"
AgreementURL string

The URL where the full text of the accepted agreement can be found.

AcceptedIP stringoptional

The IP address from which the terms of service were accepted.

AcceptedUserAgent stringoptional

The user agent string of the browser or application used to accept the terms.

EmbedAccountsCapability Requests

Capabilities enable specific features and services for an Account. Use capability requests to unlock higher processing limits, new payment types, or additional platform features as your users' businesses grow. Track approval status and manage documentation requirements through a single interface.

Request a capability
client.Embed.Accounts.CapabilityRequests.New(ctx, accountID, params) (*CapabilityRequestPagedV1, error)
POST/v1/accounts/{account_id}/capability_requests
List capability requests
client.Embed.Accounts.CapabilityRequests.List(ctx, accountID, params) (*PageNumberSchema[CapabilityRequestPagedV1Data], error)
GET/v1/accounts/{account_id}/capability_requests
ModelsExpand Collapse
type CapabilityRequestPagedV1 struct{…}
Data []CapabilityRequestPagedV1Data
ID string

Unique identifier for the capability request.

formatuuid
AccountID string

The unique identifier of the account associated with this capability request.

formatuuid
Category string

The category of the requested capability. Use payment_type for charges and payouts, customer_type to define individuals or businesses, and consent_type for signed_agreement or internet payment authorization.

One of the following:
const CapabilityRequestPagedV1DataCategoryPaymentType CapabilityRequestPagedV1DataCategory = "payment_type"
const CapabilityRequestPagedV1DataCategoryCustomerType CapabilityRequestPagedV1DataCategory = "customer_type"
const CapabilityRequestPagedV1DataCategoryConsentType CapabilityRequestPagedV1DataCategory = "consent_type"
CreatedAt Time

Timestamp of when the capability request was created.

formatdate-time
Enable bool

Whether this capability request is to enable or disable the capability.

Status string

The current status of the capability request.

One of the following:
const CapabilityRequestPagedV1DataStatusActive CapabilityRequestPagedV1DataStatus = "active"
const CapabilityRequestPagedV1DataStatusInactive CapabilityRequestPagedV1DataStatus = "inactive"
const CapabilityRequestPagedV1DataStatusInReview CapabilityRequestPagedV1DataStatus = "in_review"
const CapabilityRequestPagedV1DataStatusRejected CapabilityRequestPagedV1DataStatus = "rejected"
const CapabilityRequestPagedV1DataStatusApproved CapabilityRequestPagedV1DataStatus = "approved"
const CapabilityRequestPagedV1DataStatusReviewing CapabilityRequestPagedV1DataStatus = "reviewing"
Type string

The specific type of capability being requested within the category.

One of the following:
const CapabilityRequestPagedV1DataTypeCharges CapabilityRequestPagedV1DataType = "charges"
const CapabilityRequestPagedV1DataTypePayouts CapabilityRequestPagedV1DataType = "payouts"
const CapabilityRequestPagedV1DataTypeIndividuals CapabilityRequestPagedV1DataType = "individuals"
const CapabilityRequestPagedV1DataTypeBusinesses CapabilityRequestPagedV1DataType = "businesses"
const CapabilityRequestPagedV1DataTypeSignedAgreement CapabilityRequestPagedV1DataType = "signed_agreement"
const CapabilityRequestPagedV1DataTypeInternet CapabilityRequestPagedV1DataType = "internet"
UpdatedAt Time

Timestamp of the most recent update to the capability request.

formatdate-time
Settings map[string, any]optional

Any specific settings or configurations related to the requested capability.

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

APIRequestID string

Unique identifier for this API request, useful for troubleshooting.

formatuuid
APIRequestTimestamp Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
MaxPageSize int64

Maximum allowed page size for this endpoint.

formatint32
PageNumber int64

Page number for paginated results.

formatint32
PageSize int64

Number of items per page in this response.

formatint32
SortBy string

The field that the results were sorted by.

SortOrder PagedResponseMetadataSortOrder
One of the following:
const PagedResponseMetadataSortOrderAsc PagedResponseMetadataSortOrder = "asc"
const PagedResponseMetadataSortOrderDesc PagedResponseMetadataSortOrder = "desc"
TotalItems int64

Total number of items returned in this response.

formatint32
TotalPages int64

The number of pages available.

formatint32
ResponseType CapabilityRequestPagedV1ResponseType

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.
One of the following:
const CapabilityRequestPagedV1ResponseTypeObject CapabilityRequestPagedV1ResponseType = "object"
const CapabilityRequestPagedV1ResponseTypeArray CapabilityRequestPagedV1ResponseType = "array"
const CapabilityRequestPagedV1ResponseTypeError CapabilityRequestPagedV1ResponseType = "error"
const CapabilityRequestPagedV1ResponseTypeNone CapabilityRequestPagedV1ResponseType = "none"

EmbedLinked Bank Accounts

Linked bank accounts connect your platform users' external bank accounts to Straddle for settlements and payment funding. Each linked account undergoes automated verification and continuous monitoring. Use linked accounts to manage where clients receive deposits, fund payouts, and track settlement preferences.

Create a linked bank account
client.Embed.LinkedBankAccounts.New(ctx, params) (*LinkedBankAccountV1, error)
POST/v1/linked_bank_accounts
List linked bank accounts
client.Embed.LinkedBankAccounts.List(ctx, params) (*PageNumberSchema[LinkedBankAccountPagedV1Data], error)
GET/v1/linked_bank_accounts
Update a linked bank account
client.Embed.LinkedBankAccounts.Update(ctx, linkedBankAccountID, params) (*LinkedBankAccountV1, error)
PUT/v1/linked_bank_accounts/{linked_bank_account_id}
Lookup a linked bank account
client.Embed.LinkedBankAccounts.Get(ctx, linkedBankAccountID, query) (*LinkedBankAccountV1, error)
GET/v1/linked_bank_accounts/{linked_bank_account_id}
Unmask a linked bank account
client.Embed.LinkedBankAccounts.Unmask(ctx, linkedBankAccountID, query) (*LinkedBankAccountUnmaskV1, error)
GET/v1/linked_bank_accounts/{linked_bank_account_id}/unmask
Cancel a linked bank account
client.Embed.LinkedBankAccounts.Cancel(ctx, linkedBankAccountID, body) (*LinkedBankAccountV1, error)
PATCH/v1/linked_bank_accounts/{linked_bank_account_id}/cancel
ModelsExpand Collapse
type LinkedBankAccountPagedV1 struct{…}
Data []LinkedBankAccountPagedV1Data
ID string

Unique identifier for the linked bank account.

formatuuid
AccountID string

The unique identifier of the Straddle account related to this bank account.

formatuuid
BankAccount LinkedBankAccountPagedV1DataBankAccount
AccountHolder string
AccountMask string
InstitutionName string
RoutingNumber string
CreatedAt Time

Timestamp of when the bank account object was created.

formatdate-time
Purposes []string

The purposes for the linked bank account.

One of the following:
const LinkedBankAccountPagedV1DataPurposeCharges LinkedBankAccountPagedV1DataPurpose = "charges"
const LinkedBankAccountPagedV1DataPurposePayouts LinkedBankAccountPagedV1DataPurpose = "payouts"
const LinkedBankAccountPagedV1DataPurposeBilling LinkedBankAccountPagedV1DataPurpose = "billing"
Status string

The current status of the linked bank account.

One of the following:
const LinkedBankAccountPagedV1DataStatusCreated LinkedBankAccountPagedV1DataStatus = "created"
const LinkedBankAccountPagedV1DataStatusOnboarding LinkedBankAccountPagedV1DataStatus = "onboarding"
const LinkedBankAccountPagedV1DataStatusActive LinkedBankAccountPagedV1DataStatus = "active"
const LinkedBankAccountPagedV1DataStatusRejected LinkedBankAccountPagedV1DataStatus = "rejected"
const LinkedBankAccountPagedV1DataStatusInactive LinkedBankAccountPagedV1DataStatus = "inactive"
const LinkedBankAccountPagedV1DataStatusCanceled LinkedBankAccountPagedV1DataStatus = "canceled"
StatusDetail LinkedBankAccountPagedV1DataStatusDetail
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 string

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

One of the following:
const LinkedBankAccountPagedV1DataStatusDetailReasonUnverified LinkedBankAccountPagedV1DataStatusDetailReason = "unverified"
const LinkedBankAccountPagedV1DataStatusDetailReasonInReview LinkedBankAccountPagedV1DataStatusDetailReason = "in_review"
const LinkedBankAccountPagedV1DataStatusDetailReasonPending LinkedBankAccountPagedV1DataStatusDetailReason = "pending"
const LinkedBankAccountPagedV1DataStatusDetailReasonStuck LinkedBankAccountPagedV1DataStatusDetailReason = "stuck"
const LinkedBankAccountPagedV1DataStatusDetailReasonVerified LinkedBankAccountPagedV1DataStatusDetailReason = "verified"
const LinkedBankAccountPagedV1DataStatusDetailReasonFailedVerification LinkedBankAccountPagedV1DataStatusDetailReason = "failed_verification"
const LinkedBankAccountPagedV1DataStatusDetailReasonDisabled LinkedBankAccountPagedV1DataStatusDetailReason = "disabled"
const LinkedBankAccountPagedV1DataStatusDetailReasonNew LinkedBankAccountPagedV1DataStatusDetailReason = "new"
Source string

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

UpdatedAt Time

Timestamp of the most recent update to the linked bank account.

formatdate-time
Description stringoptional

Optional description for the bank account.

Metadata map[string, string]optional

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

PlatformID stringoptional

The unique identifier of the Straddle Platform relatd to this bank account.

formatuuid

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

APIRequestID string

Unique identifier for this API request, useful for troubleshooting.

formatuuid
APIRequestTimestamp Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
MaxPageSize int64

Maximum allowed page size for this endpoint.

formatint32
PageNumber int64

Page number for paginated results.

formatint32
PageSize int64

Number of items per page in this response.

formatint32
SortBy string

The field that the results were sorted by.

SortOrder PagedResponseMetadataSortOrder
One of the following:
const PagedResponseMetadataSortOrderAsc PagedResponseMetadataSortOrder = "asc"
const PagedResponseMetadataSortOrderDesc PagedResponseMetadataSortOrder = "desc"
TotalItems int64

Total number of items returned in this response.

formatint32
TotalPages int64

The number of pages available.

formatint32
ResponseType LinkedBankAccountPagedV1ResponseType

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.
One of the following:
const LinkedBankAccountPagedV1ResponseTypeObject LinkedBankAccountPagedV1ResponseType = "object"
const LinkedBankAccountPagedV1ResponseTypeArray LinkedBankAccountPagedV1ResponseType = "array"
const LinkedBankAccountPagedV1ResponseTypeError LinkedBankAccountPagedV1ResponseType = "error"
const LinkedBankAccountPagedV1ResponseTypeNone LinkedBankAccountPagedV1ResponseType = "none"
type LinkedBankAccountUnmaskV1 struct{…}
Data LinkedBankAccountUnmaskV1Data
ID string

Unique identifier for the linked bank account.

formatuuid
AccountID string

Unique identifier for the Straddle account related to this bank account.

formatuuid
BankAccount LinkedBankAccountUnmaskV1DataBankAccount

The bank account details associated with the linked bank account.

AccountHolder string
AccountNumber string
InstitutionName string
RoutingNumber string
CreatedAt Time

Timestamp of when the linked bank account was created.

formatdate-time
Status string

The current status of the linked bank account.

One of the following:
const LinkedBankAccountUnmaskV1DataStatusCreated LinkedBankAccountUnmaskV1DataStatus = "created"
const LinkedBankAccountUnmaskV1DataStatusOnboarding LinkedBankAccountUnmaskV1DataStatus = "onboarding"
const LinkedBankAccountUnmaskV1DataStatusActive LinkedBankAccountUnmaskV1DataStatus = "active"
const LinkedBankAccountUnmaskV1DataStatusRejected LinkedBankAccountUnmaskV1DataStatus = "rejected"
const LinkedBankAccountUnmaskV1DataStatusInactive LinkedBankAccountUnmaskV1DataStatus = "inactive"
const LinkedBankAccountUnmaskV1DataStatusCanceled LinkedBankAccountUnmaskV1DataStatus = "canceled"
StatusDetail LinkedBankAccountUnmaskV1DataStatusDetail

Additional details about the current status of the linked bank account.

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 string

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

One of the following:
const LinkedBankAccountUnmaskV1DataStatusDetailReasonUnverified LinkedBankAccountUnmaskV1DataStatusDetailReason = "unverified"
const LinkedBankAccountUnmaskV1DataStatusDetailReasonInReview LinkedBankAccountUnmaskV1DataStatusDetailReason = "in_review"
const LinkedBankAccountUnmaskV1DataStatusDetailReasonPending LinkedBankAccountUnmaskV1DataStatusDetailReason = "pending"
const LinkedBankAccountUnmaskV1DataStatusDetailReasonStuck LinkedBankAccountUnmaskV1DataStatusDetailReason = "stuck"
const LinkedBankAccountUnmaskV1DataStatusDetailReasonVerified LinkedBankAccountUnmaskV1DataStatusDetailReason = "verified"
const LinkedBankAccountUnmaskV1DataStatusDetailReasonFailedVerification LinkedBankAccountUnmaskV1DataStatusDetailReason = "failed_verification"
const LinkedBankAccountUnmaskV1DataStatusDetailReasonDisabled LinkedBankAccountUnmaskV1DataStatusDetailReason = "disabled"
const LinkedBankAccountUnmaskV1DataStatusDetailReasonNew LinkedBankAccountUnmaskV1DataStatusDetailReason = "new"
Source string

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

UpdatedAt Time

Timestamp of when the linked bank account was last updated.

formatdate-time
Metadata map[string, string]optional

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

APIRequestID string

Unique identifier for this API request, useful for troubleshooting.

formatuuid
APIRequestTimestamp Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
ResponseType LinkedBankAccountUnmaskV1ResponseType

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.
One of the following:
const LinkedBankAccountUnmaskV1ResponseTypeObject LinkedBankAccountUnmaskV1ResponseType = "object"
const LinkedBankAccountUnmaskV1ResponseTypeArray LinkedBankAccountUnmaskV1ResponseType = "array"
const LinkedBankAccountUnmaskV1ResponseTypeError LinkedBankAccountUnmaskV1ResponseType = "error"
const LinkedBankAccountUnmaskV1ResponseTypeNone LinkedBankAccountUnmaskV1ResponseType = "none"
type LinkedBankAccountV1 struct{…}
Data LinkedBankAccountV1Data
ID string

Unique identifier for the linked bank account.

formatuuid
AccountID string

The unique identifier of the Straddle account related to this bank account.

formatuuid
BankAccount LinkedBankAccountV1DataBankAccount
AccountHolder string
AccountMask string
InstitutionName string
RoutingNumber string
CreatedAt Time

Timestamp of when the bank account object was created.

formatdate-time
Purposes []string

The purposes for the linked bank account.

One of the following:
const LinkedBankAccountV1DataPurposeCharges LinkedBankAccountV1DataPurpose = "charges"
const LinkedBankAccountV1DataPurposePayouts LinkedBankAccountV1DataPurpose = "payouts"
const LinkedBankAccountV1DataPurposeBilling LinkedBankAccountV1DataPurpose = "billing"
Status string

The current status of the linked bank account.

One of the following:
const LinkedBankAccountV1DataStatusCreated LinkedBankAccountV1DataStatus = "created"
const LinkedBankAccountV1DataStatusOnboarding LinkedBankAccountV1DataStatus = "onboarding"
const LinkedBankAccountV1DataStatusActive LinkedBankAccountV1DataStatus = "active"
const LinkedBankAccountV1DataStatusRejected LinkedBankAccountV1DataStatus = "rejected"
const LinkedBankAccountV1DataStatusInactive LinkedBankAccountV1DataStatus = "inactive"
const LinkedBankAccountV1DataStatusCanceled LinkedBankAccountV1DataStatus = "canceled"
StatusDetail LinkedBankAccountV1DataStatusDetail
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 string

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

One of the following:
const LinkedBankAccountV1DataStatusDetailReasonUnverified LinkedBankAccountV1DataStatusDetailReason = "unverified"
const LinkedBankAccountV1DataStatusDetailReasonInReview LinkedBankAccountV1DataStatusDetailReason = "in_review"
const LinkedBankAccountV1DataStatusDetailReasonPending LinkedBankAccountV1DataStatusDetailReason = "pending"
const LinkedBankAccountV1DataStatusDetailReasonStuck LinkedBankAccountV1DataStatusDetailReason = "stuck"
const LinkedBankAccountV1DataStatusDetailReasonVerified LinkedBankAccountV1DataStatusDetailReason = "verified"
const LinkedBankAccountV1DataStatusDetailReasonFailedVerification LinkedBankAccountV1DataStatusDetailReason = "failed_verification"
const LinkedBankAccountV1DataStatusDetailReasonDisabled LinkedBankAccountV1DataStatusDetailReason = "disabled"
const LinkedBankAccountV1DataStatusDetailReasonNew LinkedBankAccountV1DataStatusDetailReason = "new"
Source string

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

UpdatedAt Time

Timestamp of the most recent update to the linked bank account.

formatdate-time
Description stringoptional

Optional description for the bank account.

Metadata map[string, string]optional

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

PlatformID stringoptional

The unique identifier of the Straddle Platform relatd to this bank account.

formatuuid

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

APIRequestID string

Unique identifier for this API request, useful for troubleshooting.

formatuuid
APIRequestTimestamp Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
ResponseType LinkedBankAccountV1ResponseType

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.
One of the following:
const LinkedBankAccountV1ResponseTypeObject LinkedBankAccountV1ResponseType = "object"
const LinkedBankAccountV1ResponseTypeArray LinkedBankAccountV1ResponseType = "array"
const LinkedBankAccountV1ResponseTypeError LinkedBankAccountV1ResponseType = "error"
const LinkedBankAccountV1ResponseTypeNone LinkedBankAccountV1ResponseType = "none"

EmbedOrganizations

Organizations are a powerful feature in Straddle that allow you to manage multiple accounts under a single umbrella. This hierarchical structure is particularly useful for businesses with complex operations, multiple departments, or legally related entities.

Create an organization
client.Embed.Organizations.New(ctx, params) (*OrganizationV1, error)
POST/v1/organizations
List organizations
client.Embed.Organizations.List(ctx, params) (*PageNumberSchema[OrganizationPagedV1Data], error)
GET/v1/organizations
Retrieve organization details
client.Embed.Organizations.Get(ctx, organizationID, query) (*OrganizationV1, error)
GET/v1/organizations/{organization_id}
ModelsExpand Collapse
type OrganizationPagedV1 struct{…}
Data []OrganizationPagedV1Data
ID string

Straddle's unique identifier for the organization.

formatuuid
CreatedAt Time

Timestamp of when the organization was created.

formatdate-time
Name string

The name of the organization.

UpdatedAt Time

Timestamp of the most recent update to the organization.

formatdate-time
ExternalID stringoptional

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

Metadata map[string, string]optional

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

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

APIRequestID string

Unique identifier for this API request, useful for troubleshooting.

formatuuid
APIRequestTimestamp Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
MaxPageSize int64

Maximum allowed page size for this endpoint.

formatint32
PageNumber int64

Page number for paginated results.

formatint32
PageSize int64

Number of items per page in this response.

formatint32
SortBy string

The field that the results were sorted by.

SortOrder PagedResponseMetadataSortOrder
One of the following:
const PagedResponseMetadataSortOrderAsc PagedResponseMetadataSortOrder = "asc"
const PagedResponseMetadataSortOrderDesc PagedResponseMetadataSortOrder = "desc"
TotalItems int64

Total number of items returned in this response.

formatint32
TotalPages int64

The number of pages available.

formatint32
ResponseType OrganizationPagedV1ResponseType

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.
One of the following:
const OrganizationPagedV1ResponseTypeObject OrganizationPagedV1ResponseType = "object"
const OrganizationPagedV1ResponseTypeArray OrganizationPagedV1ResponseType = "array"
const OrganizationPagedV1ResponseTypeError OrganizationPagedV1ResponseType = "error"
const OrganizationPagedV1ResponseTypeNone OrganizationPagedV1ResponseType = "none"
type OrganizationV1 struct{…}
Data OrganizationV1Data
ID string

Straddle's unique identifier for the organization.

formatuuid
CreatedAt Time

Timestamp of when the organization was created.

formatdate-time
Name string

The name of the organization.

UpdatedAt Time

Timestamp of the most recent update to the organization.

formatdate-time
ExternalID stringoptional

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

Metadata map[string, string]optional

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

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

APIRequestID string

Unique identifier for this API request, useful for troubleshooting.

formatuuid
APIRequestTimestamp Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
ResponseType OrganizationV1ResponseType

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.
One of the following:
const OrganizationV1ResponseTypeObject OrganizationV1ResponseType = "object"
const OrganizationV1ResponseTypeArray OrganizationV1ResponseType = "array"
const OrganizationV1ResponseTypeError OrganizationV1ResponseType = "error"
const OrganizationV1ResponseTypeNone OrganizationV1ResponseType = "none"

EmbedRepresentatives

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
client.Embed.Representatives.New(ctx, params) (*Representative, error)
POST/v1/representatives
List representatives
client.Embed.Representatives.List(ctx, params) (*PageNumberSchema[RepresentativePagedData], error)
GET/v1/representatives
Update a representative
client.Embed.Representatives.Update(ctx, representativeID, params) (*Representative, error)
PUT/v1/representatives/{representative_id}
Lookup a representative
client.Embed.Representatives.Get(ctx, representativeID, query) (*Representative, error)
GET/v1/representatives/{representative_id}
Retrieve unmasked representative details
client.Embed.Representatives.Unmask(ctx, representativeID, query) (*Representative, error)
GET/v1/representatives/{representative_id}/unmask
ModelsExpand Collapse
type Representative struct{…}
Data RepresentativeData
ID string

Unique identifier for the representative.

formatuuid
AccountID string

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

formatuuid
CreatedAt Time

Timestamp of when the representative was created.

formatdate-time
Dob Time

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

formatdate
Email string

The email address of the representative.

formatemail
FirstName string

The first name of the representative.

LastName string

The last name of the representative.

MobileNumber string

The mobile phone number of the representative.

Name string
Relationship RepresentativeDataRelationship
Control bool

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 bool

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

Primary bool

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.

PercentOwnership float64optional

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

formatdouble
Title stringoptional

The job title of the representative.

SsnLast4 string

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

Status string

The current status of the representative.

One of the following:
const RepresentativeDataStatusCreated RepresentativeDataStatus = "created"
const RepresentativeDataStatusOnboarding RepresentativeDataStatus = "onboarding"
const RepresentativeDataStatusActive RepresentativeDataStatus = "active"
const RepresentativeDataStatusRejected RepresentativeDataStatus = "rejected"
const RepresentativeDataStatusInactive RepresentativeDataStatus = "inactive"
StatusDetail RepresentativeDataStatusDetail
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 string

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

One of the following:
const RepresentativeDataStatusDetailReasonUnverified RepresentativeDataStatusDetailReason = "unverified"
const RepresentativeDataStatusDetailReasonInReview RepresentativeDataStatusDetailReason = "in_review"
const RepresentativeDataStatusDetailReasonPending RepresentativeDataStatusDetailReason = "pending"
const RepresentativeDataStatusDetailReasonStuck RepresentativeDataStatusDetailReason = "stuck"
const RepresentativeDataStatusDetailReasonVerified RepresentativeDataStatusDetailReason = "verified"
const RepresentativeDataStatusDetailReasonFailedVerification RepresentativeDataStatusDetailReason = "failed_verification"
const RepresentativeDataStatusDetailReasonDisabled RepresentativeDataStatusDetailReason = "disabled"
const RepresentativeDataStatusDetailReasonNew RepresentativeDataStatusDetailReason = "new"
Source string

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

UpdatedAt Time

Timestamp of the most recent update to the representative.

formatdate-time
ExternalID stringoptional

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

Metadata map[string, string]optional

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

Phone stringoptional
UserID stringoptional

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

formatuuid

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

APIRequestID string

Unique identifier for this API request, useful for troubleshooting.

formatuuid
APIRequestTimestamp Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
ResponseType RepresentativeResponseType

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.
One of the following:
const RepresentativeResponseTypeObject RepresentativeResponseType = "object"
const RepresentativeResponseTypeArray RepresentativeResponseType = "array"
const RepresentativeResponseTypeError RepresentativeResponseType = "error"
const RepresentativeResponseTypeNone RepresentativeResponseType = "none"
type RepresentativePaged struct{…}
Data []RepresentativePagedData
ID string

Unique identifier for the representative.

formatuuid
AccountID string

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

formatuuid
CreatedAt Time

Timestamp of when the representative was created.

formatdate-time
Dob Time

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

formatdate
Email string

The email address of the representative.

formatemail
FirstName string

The first name of the representative.

LastName string

The last name of the representative.

MobileNumber string

The mobile phone number of the representative.

Name string
Relationship RepresentativePagedDataRelationship
Control bool

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 bool

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

Primary bool

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.

PercentOwnership float64optional

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

formatdouble
Title stringoptional

The job title of the representative.

SsnLast4 string

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

Status string

The current status of the representative.

One of the following:
const RepresentativePagedDataStatusCreated RepresentativePagedDataStatus = "created"
const RepresentativePagedDataStatusOnboarding RepresentativePagedDataStatus = "onboarding"
const RepresentativePagedDataStatusActive RepresentativePagedDataStatus = "active"
const RepresentativePagedDataStatusRejected RepresentativePagedDataStatus = "rejected"
const RepresentativePagedDataStatusInactive RepresentativePagedDataStatus = "inactive"
StatusDetail RepresentativePagedDataStatusDetail
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 string

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

One of the following:
const RepresentativePagedDataStatusDetailReasonUnverified RepresentativePagedDataStatusDetailReason = "unverified"
const RepresentativePagedDataStatusDetailReasonInReview RepresentativePagedDataStatusDetailReason = "in_review"
const RepresentativePagedDataStatusDetailReasonPending RepresentativePagedDataStatusDetailReason = "pending"
const RepresentativePagedDataStatusDetailReasonStuck RepresentativePagedDataStatusDetailReason = "stuck"
const RepresentativePagedDataStatusDetailReasonVerified RepresentativePagedDataStatusDetailReason = "verified"
const RepresentativePagedDataStatusDetailReasonFailedVerification RepresentativePagedDataStatusDetailReason = "failed_verification"
const RepresentativePagedDataStatusDetailReasonDisabled RepresentativePagedDataStatusDetailReason = "disabled"
const RepresentativePagedDataStatusDetailReasonNew RepresentativePagedDataStatusDetailReason = "new"
Source string

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

UpdatedAt Time

Timestamp of the most recent update to the representative.

formatdate-time
ExternalID stringoptional

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

Metadata map[string, string]optional

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

Phone stringoptional
UserID stringoptional

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

formatuuid

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

APIRequestID string

Unique identifier for this API request, useful for troubleshooting.

formatuuid
APIRequestTimestamp Time

Timestamp for this API request, useful for troubleshooting.

formatdate-time
MaxPageSize int64

Maximum allowed page size for this endpoint.

formatint32
PageNumber int64

Page number for paginated results.

formatint32
PageSize int64

Number of items per page in this response.

formatint32
SortBy string

The field that the results were sorted by.

SortOrder PagedResponseMetadataSortOrder
One of the following:
const PagedResponseMetadataSortOrderAsc PagedResponseMetadataSortOrder = "asc"
const PagedResponseMetadataSortOrderDesc PagedResponseMetadataSortOrder = "desc"
TotalItems int64

Total number of items returned in this response.

formatint32
TotalPages int64

The number of pages available.

formatint32
ResponseType RepresentativePagedResponseType

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.
One of the following:
const RepresentativePagedResponseTypeObject RepresentativePagedResponseType = "object"
const RepresentativePagedResponseTypeArray RepresentativePagedResponseType = "array"
const RepresentativePagedResponseTypeError RepresentativePagedResponseType = "error"
const RepresentativePagedResponseTypeNone RepresentativePagedResponseType = "none"