Skip to content
Get started

Create a representative

client.Embed.Representatives.New(ctx, params) (*Representative, error)
POST/v1/representatives

Creates a new representative associated with an account. Representatives are individuals who have legal authority or significant responsibility within the business.

ParametersExpand Collapse
params EmbedRepresentativeNewParams
AccountID param.Field[string]

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

formatuuid
Dob param.Field[Time]

Body param: Date of birth for the representative in ISO 8601 format (YYYY-MM-DD).

formatdate
Email param.Field[string]

Body param: The company email address of the representative.

formatemail
FirstName param.Field[string]

Body param: The first name of the representative.

LastName param.Field[string]

Body param: The last name of the representative.

MobileNumber param.Field[string]

Body param: The mobile phone number of the representative.

Body param

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 param.Field[string]

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

ExternalID param.Field[string]optional

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

Metadata param.Field[map[string, string]]optional

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

CorrelationID param.Field[string]optional

Header param: Optional client generated identifier to trace and debug a series of requests.

IdempotencyKey param.Field[string]optional

Header param: Optional client generated value to use for idempotent requests.

maxLength40
minLength10
RequestID param.Field[string]optional

Header param: Optional client generated identifier to trace and debug a request.

ReturnsExpand 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"

Create a representative

package main

import (
  "context"
  "fmt"
  "time"

  "github.com/straddleio/straddle-go"
  "github.com/straddleio/straddle-go/option"
)

func main() {
  client := straddle.NewClient(
    option.WithAPIKey("My API Key"),
  )
  representative, err := client.Embed.Representatives.New(context.TODO(), straddle.EmbedRepresentativeNewParams{
    AccountID: "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    Dob: time.Now(),
    Email: "ron.swanson@pawnee.com",
    FirstName: "first_name",
    LastName: "last_name",
    MobileNumber: "+12128675309",
    Relationship: straddle.EmbedRepresentativeNewParamsRelationship{
      Control: true,
      Owner: true,
      Primary: true,
    },
    SsnLast4: "1234",
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", representative.Data)
}
{
  "data": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "created_at": "2019-12-27T18:11:19.117Z",
    "dob": "1980-01-01",
    "email": "ron.swanson@pawnee.com",
    "first_name": "Ron",
    "last_name": "Swanson",
    "mobile_number": "+12128675309",
    "name": "name",
    "relationship": {
      "control": true,
      "owner": true,
      "primary": true,
      "percent_ownership": 0,
      "title": "title"
    },
    "ssn_last4": "1234",
    "status": "created",
    "status_detail": {
      "code": "code",
      "message": "message",
      "reason": "unverified",
      "source": "watchtower"
    },
    "updated_at": "2019-12-27T18:11:19.117Z",
    "external_id": "external_id",
    "metadata": {
      "foo": "string"
    },
    "phone": "phone",
    "user_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
  },
  "meta": {
    "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "api_request_timestamp": "2019-12-27T18:11:19.117Z"
  },
  "response_type": "object"
}
Returns Examples
{
  "data": {
    "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "account_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "created_at": "2019-12-27T18:11:19.117Z",
    "dob": "1980-01-01",
    "email": "ron.swanson@pawnee.com",
    "first_name": "Ron",
    "last_name": "Swanson",
    "mobile_number": "+12128675309",
    "name": "name",
    "relationship": {
      "control": true,
      "owner": true,
      "primary": true,
      "percent_ownership": 0,
      "title": "title"
    },
    "ssn_last4": "1234",
    "status": "created",
    "status_detail": {
      "code": "code",
      "message": "message",
      "reason": "unverified",
      "source": "watchtower"
    },
    "updated_at": "2019-12-27T18:11:19.117Z",
    "external_id": "external_id",
    "metadata": {
      "foo": "string"
    },
    "phone": "phone",
    "user_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
  },
  "meta": {
    "api_request_id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
    "api_request_timestamp": "2019-12-27T18:11:19.117Z"
  },
  "response_type": "object"
}