Add a representative

Moov accounts associated with businesses require information regarding individuals who represent the business. You can provide this information by creating a representative. Each account is allowed a maximum of 7 representatives. Read our business representatives guide to learn more.

To use this endpoint from the browser, you’ll need to specify the /accounts/{accountID}/representatives.write scope when generating a token.
POST
/accounts/{accountID}/representatives
cURL Go JavaScript
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
curl -X POST "https://api.moov.io/accounts/{accountID}/representatives" \
  -H "Authorization: Bearer {token}" \
  --data-raw '{
    "address": {
      "addressLine1": "12 Main Street",
      "city": "Cabot Cove",
      "stateOrProvince": "ME",
      "postalCode": "04103",
      "country": "US"
    },
    "birthDate": {
      "day": 10,
      "month": 11,
      "year": 1985
    },
    "email": "amanda@classbooker.dev",
    "governmentID": {
      "ssn": {
        "full":"111111111",
        "lastFour":"1111"
      }
    },
    "name": {
      "firstName": "Amanda",
      "lastName": "Yang"
    },
    "phone": {
      "number": "8185551212",
      "countryCode": "1"
    },
    "responsibilities": {
      "isController": false,
      "isOwner": true,
      "ownershipPercentage": 38,
      "jobTitle": "CEO"
    }
  }'
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
mc, _ := moov.NewClient()

var accountID string

mc.CreateRepresentative(ctx, accountID, moov.CreateRepresentative{
  Address: &moov.Address{
    AddressLine1:    "12 Main Street",
    City:            "Cabot Cove",
	StateOrProvince: "ME",
   	PostalCode:      "04103",
	Country:         "US",
  },
  BirthDate: &moov.Date{
    Day:   10,
	Month: 11,
	Year:  1985,
  },
  Email: "amanda@classbooker.dev",
  GovernmentID: &moov.GovernmentID{
    SSN: &moov.SSN{
	  Full:     "111111111",
	  LastFour: "1111",
	},
  },
  Name: moov.Name{
    FirstName: "Amanda",
    LastName:  "Yang",
  },
  Phone: &moov.Phone{
    Number:      "8185551212",
    CountryCode: "1",
  },
  Responsibilities: &moov.Responsibilities{
    IsController:        false,
    IsOwner:             true,
    OwnershipPercentage: 38,
    JobTitle:            "CEO",
  },
})
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const moov = new Moov(credentialsObject);

const accountID = "accountID";
const representativePayload = {
  address: {
    addressLine1: "12 Main Street",
    city: "Cabot Cove",
    stateOrProvince: "ME",
    postalCode: "04103",
    country: "US"
  },
  birthDate: {
    day: 10,
    month: 11,
    year: 1985
  },
  email: "amanda@classbooker.dev",
  governmentID: {
    ssn: {
      full: "111111111",
      lastFour: "1111"
    }
  },
  name: {
    firstName: "Amanda",
    lastName: "Yang"
  },
  phone: {
    number: "8185551212",
    countryCode: "1"
  },
  responsibilities: {
    isController: false,
    isOwner: true,
    ownershipPercentage: 38,
    jobTitle: "CEO"
  }
};

const account = await moov.representatives.create(accountID, representativePayload);
200 400 404 422 429
Representative created.
{
  "address": {
    "addressLine1": "12 Main Street",
    "city": "Cabot Cove",
    "country": "US",
    "postalCode": "04103",
    "stateOrProvince": "ME"
  },
  "birthDateProvided": true,
  "createdOn": "2024-08-24T14:15:22Z",
  "email": "amanda@classbooker.dev",
  "governmentIDProvided": true,
  "name": {
    "firstName": "Amanda",
    "lastName": "Yang"
  },
  "phone": {
    "countryCode": "1",
    "number": "8185551212"
  },
  "representativeID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
  "responsibilities": {
    "isController": false,
    "isOwner": true,
    "jobTitle": "CEO",
    "ownershipPercentage": 38
  },
  "updatedOn": "2024-08-24T14:15:22Z"
}
The request was invalid.
The specified account or representative was not found.
The request body could not be processed.
Request was refused due to rate limiting.

Retry-After

number

Path parameters

accountID

string <uuid> required
ID of the account.

Body

application/json
Describes the fields available when creating a representative.

address

object
Residential address for an individual. Business addresses not accepted.
Show child attributes

addressLine1

string <=60 characters required

addressLine2

string <=32 characters

city

string <=24 characters required

country

string <=2 characters required

postalCode

string <=5 characters required

stateOrProvince

string <=2 characters required

birthDate

object
An individual’s birthdate.
Show child attributes

day

integer required

month

integer required

year

integer required

email

string<email> <=255 characters Pattern
Email address.

governmentID

object
Show child attributes

itin

object
Show child attributes

full

string <=64 characters

lastFour

string <=4 characters

ssn

object
Show child attributes

full

string <=64 characters

lastFour

string <=4 characters

name

object
An individual’s name.
Show child attributes

firstName

string <=64 characters required Pattern
Name this person was given. This is usually the same as first name.

lastName

string <=64 characters required Pattern
Family name of this person. This is usually the same as last name.

middleName

string <=64 characters Pattern
Name this person was given. This is usually the same as first name.

suffix

string <=20 characters Pattern
Suffix of a given name.

phone

object
Show child attributes

countryCode

string <=1 characters

number

string<phone> <=10 characters

responsibilities

object
Describes the job responsibilities of an individual.
Show child attributes

isController

boolean required
Indicates whether this individual has significant management responsibilities within the business.

isOwner

boolean required
If true, this field indicates that the individual has a business ownership stake of at least 25% in the business. If the representative does not own at least 25% of the business, this field should be false.

jobTitle

string <=64 characters required

ownershipPercentage

integer required
The percentage of ownership this individual has in the business (required if isOwner is true).

Response

application/json
Describes a business representative.

address

object
Show child attributes

addressLine1

string <=60 characters required

addressLine2

string <=32 characters

city

string <=24 characters required

country

string <=2 characters required

postalCode

string <=5 characters required

stateOrProvince

string <=2 characters required

birthDateProvided

boolean
Indicates whether this representative’s birth date has been provided.

createdOn

string<date-time> <=24 characters

disabledOn

string

email

string<email> <=255 characters Pattern
Email address.

governmentIDProvided

boolean
Indicates whether a government ID (SSN, ITIN, etc.) has been provided for this representative.

name

object
An individual’s name.
Show child attributes

firstName

string <=64 characters required Pattern
Name this person was given. This is usually the same as first name.

lastName

string <=64 characters required Pattern
Family name of this person. This is usually the same as last name.

middleName

string <=64 characters Pattern
Name this person was given. This is usually the same as first name.

suffix

string <=20 characters Pattern
Suffix of a given name.

phone

object
Show child attributes

countryCode

string <=1 characters

number

string<phone> <=10 characters

representativeID

string<uuid> <=36 characters
UUID

responsibilities

object
Describes the job responsibilities of an individual.
Show child attributes

isController

boolean required
Indicates whether this individual has significant management responsibilities within the business.

isOwner

boolean required
If true, this field indicates that the individual has a business ownership stake of at least 25% in the business. If the representative does not own at least 25% of the business, this field should be false.

jobTitle

string <=64 characters required

ownershipPercentage

integer required
The percentage of ownership this individual has in the business (required if isOwner is true).

updatedOn

string<date-time> <=24 characters