Update a representative

If a representative's information has changed you can patch the information associated with a specific representative ID. Read our business representatives guide to learn more.

When can profile data be updated:

  • For unverified representatives, all profile data can be edited.
  • During the verification process, missing or incomplete profile data can be edited.
  • Verified representatives can only add missing profile data.

When can't profile data be updated:

  • Verified representatives cannot change any existing profile data.

If you need to update information in a locked state, please contact Moov support.

To access this endpoint using an access token you'll need to specify the /accounts/{accountID}/representatives.write scope.

PATCH
/accounts/{accountID}/representatives/{representativeID}
cURL Go PHP Python TypeScript Java
1
2
3
4
5
curl -X PATCH "https://api.moov.io/accounts/{accountID}/representatives/{representativeID}"
  -H "Authorization: Bearer {token}" \
  --data-raw '{
    "email":"amandayang@classbooker.dev"
  }'\
1
2
3
4
5
6
7
8
mc, _ := moov.NewClient()

var accountID string
var representativeID string

mc.UpdateRepresentative(ctx, accountID, representativeID, moov.UpdateRepresentative{
  Email: "amandayang@classbooker.dev",
})
 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
declare(strict_types=1);

require 'vendor/autoload.php';

use Moov\MoovPhp;
use Moov\MoovPhp\Models\Components;

$sdk = MoovPhp\Moov::builder()
    ->setSecurity(
        new Components\Security(
            username: '',
            password: '',
        )
    )
    ->build();

$updateRepresentative = new Components\UpdateRepresentative(
    name: new Components\IndividualNameUpdate(
        firstName: 'Jordan',
        middleName: 'Reese',
        lastName: 'Lee',
        suffix: 'Jr',
    ),
    phone: new Components\Phone(
        number: '8185551212',
        countryCode: '1',
    ),
    address: new Components\UpdateRepresentativeAddress(
        addressLine1: '123 Main Street',
        addressLine2: 'Apt 302',
        city: 'Boulder',
        stateOrProvince: 'CO',
        postalCode: '80301',
        country: 'US',
    ),
    birthDate: new Components\UpdateRepresentativeBirthDate(
        day: 9,
        month: 11,
        year: 1989,
    ),
    responsibilities: new Components\Responsibilities(
        ownershipPercentage: 38,
        jobTitle: 'CEO',
    ),
);

$response = $sdk->representatives->update(
    accountID: 'e61b7664-7e2b-497e-8a55-12757153219f',
    representativeID: '3171e89d-3d0d-4fbe-83df-6b18d7cbcb76',
    updateRepresentative: $updateRepresentative,
    xMoovVersion: 'v2024.01.00'

);

if ($response->representative !== null) {
    // handle response
}
 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
from moovio_sdk import Moov
from moovio_sdk.models import components


with Moov(
    security=components.Security(
        username="",
        password="",
    ),
) as moov:

    res = moov.representatives.update(account_id="76647e2b-97ea-4551-8275-7153219f3317", representative_id="e89d3d0d-fbe3-4df6-8b18-d7cbcb761161", name={
        "first_name": "Jordan",
        "middle_name": "Reese",
        "last_name": "Lee",
        "suffix": "Jr",
    }, phone={
        "number": "8185551212",
        "country_code": "1",
    }, address={
        "address_line1": "123 Main Street",
        "address_line2": "Apt 302",
        "city": "Boulder",
        "state_or_province": "CO",
        "postal_code": "80301",
        "country": "US",
    }, birth_date=None, responsibilities={
        "ownership_percentage": 38,
        "job_title": "CEO",
    })

    # Handle response
    print(res)
 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
41
42
43
44
45
46
47
48
49
import { Moov } from "@moovio/sdk";

const moov = new Moov({
  security: {
    username: "",
    password: "",
  },
});

async function run() {
  const result = await moov.representatives.update({
    accountID: "d95fa7f0-e743-42ce-b47c-b60cc78135dd",
    representativeID: "b85898c1-25a1-4907-a1c5-562af6646dad",
    updateRepresentative: {
      name: {
        firstName: "Jordan",
        middleName: "Reese",
        lastName: "Lee",
        suffix: "Jr",
      },
      phone: {
        number: "8185551212",
        countryCode: "1",
      },
      address: {
        addressLine1: "123 Main Street",
        addressLine2: "Apt 302",
        city: "Boulder",
        stateOrProvince: "CO",
        postalCode: "80301",
        country: "US",
      },
      birthDate: {
        day: 9,
        month: 11,
        year: 1989,
      },
      responsibilities: {
        ownershipPercentage: 38,
        jobTitle: "CEO",
      },
    },
  });

  // Handle the result
  console.log(result);
}

run();
 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package hello.world;

import io.moov.sdk.Moov;
import io.moov.sdk.models.components.*;
import io.moov.sdk.models.errors.GenericError;
import io.moov.sdk.models.operations.UpdateRepresentativeResponse;
import java.lang.Exception;
import org.openapitools.jackson.nullable.JsonNullable;

public class Application {

    public static void main(String[] args) throws GenericError, Exception {

        Moov sdk = Moov.builder()
                .security(Security.builder()
                    .username("")
                    .password("")
                    .build())
            .build();

        UpdateRepresentativeResponse res = sdk.representatives().update()
                .accountID("76647e2b-97ea-4551-8275-7153219f3317")
                .representativeID("e89d3d0d-fbe3-4df6-8b18-d7cbcb761161")
                .updateRepresentative(UpdateRepresentative.builder()
                    .name(IndividualNameUpdate.builder()
                        .firstName("Jordan")
                        .middleName("Reese")
                        .lastName("Lee")
                        .suffix("Jr")
                        .build())
                    .phone(Phone.builder()
                        .number("8185551212")
                        .countryCode("1")
                        .build())
                    .address(UpdateRepresentativeAddress.builder()
                        .addressLine1("123 Main Street")
                        .addressLine2("Apt 302")
                        .city("Boulder")
                        .stateOrProvince("CO")
                        .postalCode("80301")
                        .country("US")
                        .build())
                    .birthDate(JsonNullable.of(null))
                    .responsibilities(Responsibilities.builder()
                        .ownershipPercentage(38L)
                        .jobTitle("CEO")
                        .build())
                    .build())
                .call();

        if (res.representative().isPresent()) {
            // handle response
        }
    }
}
200 400 401 403 404 409 429 500 504
The request completed successfully.
Describes a business representative.
{
  "representativeID": "18f7ae5a-686e-4e74-a568-03dfdb83ab1d",
  "name": {
    "firstName": "Jordan",
    "middleName": "Reese",
    "lastName": "Lee",
    "suffix": "Jr"
  },
  "phone": {
    "number": "8185551212",
    "countryCode": "1"
  },
  "email": "jordan.lee@classbooker.dev",
  "address": {
    "addressLine1": "123 Main Street",
    "addressLine2": "Apt 302",
    "city": "Boulder",
    "stateOrProvince": "CO",
    "postalCode": "80301",
    "country": "US"
  },
  "birthDateProvided": true,
  "governmentIDProvided": true,
  "responsibilities": {
    "isController": true,
    "isOwner": true,
    "ownershipPercentage": 38,
    "jobTitle": "CEO"
  },
  "createdOn": "2019-08-24T14:15:22Z",
  "updatedOn": "2019-08-24T14:15:22Z",
  "disabledOn": "2019-08-24T14:15:22Z"
}

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The server could not understand the request due to invalid syntax.
{
  "error": "string"
}

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The request contained missing or expired authentication.

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The user is not authorized to make the request.

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The requested resource was not found.

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The request conflicted with the current state of the target resource.
{
  "error": "string"
}

x-request-id

string <uuid> required
A unique identifier used to trace requests.
Request was refused due to rate limiting.

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The request failed due to an unexpected error.

x-request-id

string <uuid> required
A unique identifier used to trace requests.
The request failed because a downstream service failed to respond.

x-request-id

string <uuid> required
A unique identifier used to trace requests.

Headers

x-moov-version

string
API version

Specify an API version.

API versioning follows the format vYYYY.QQ.BB, where

  • YYYY is the year
  • QQ is the two-digit month for the first month of the quarter (e.g., 01, 04, 07, 10)
  • BB is the build number, starting at .01, for subsequent builds in the same quarter.
    • For example, v2024.01.00 is the initial release of the first quarter of 2024.

The latest version represents the most recent development state. It may include breaking changes and should be treated as a beta release.

Default: v2024.01.00

Path parameters

accountID

string <uuid> required
ID of the account.

representativeID

string <uuid> required
ID of the representative.

Body

application/json

address

object
Show child attributes

addressLine1

string <=60 characters Pattern

addressLine2

string <=32 characters Pattern

city

string <=32 characters Pattern

country

string <=2 characters

postalCode

string <=5 characters

stateOrProvince

string <=2 characters

birthDate

object
Show child attributes

day

integer

month

integer

year

integer

email

object

governmentID

object
Show child attributes

itin

object
Show child attributes

full

string Pattern

lastFour

string

ssn

object
Show child attributes

full

string Pattern

lastFour

string

name

object
Show child attributes

firstName

string <=64 characters Pattern
The individual's first given name.

lastName

string <=64 characters Pattern
The individual's family name.

middleName

string <=64 characters Pattern
The individual's second given name, if any.

suffix

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

phone

object
Show child attributes

countryCode

string <=1 characters

number

string <=10 characters

responsibilities

object
Describes the job responsibilities of a business representative.
Show child attributes

isController

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

isOwner

boolean
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 Pattern

ownershipPercentage

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

Response

application/json
Describes a business representative.

createdOn

string<date-time> required

name

object required
Show child attributes

firstName

string <=64 characters required Pattern
The individual's first given name.

lastName

string <=64 characters required Pattern
The individual's family name.

middleName

string <=64 characters Pattern
The individual's second given name, if any.

suffix

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

representativeID

string<uuid> required
Unique identifier for this representative.

updatedOn

string<date-time> required

address

object
Show child attributes

addressLine1

string <=60 characters required Pattern

city

string <=32 characters required Pattern

country

string <=2 characters required

postalCode

string <=5 characters required

stateOrProvince

string <=2 characters required

addressLine2

string <=32 characters Pattern

birthDateProvided

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

disabledOn

string<date-time>

email

string<email> <=255 characters

governmentIDProvided

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

phone

object
Show child attributes

countryCode

string <=1 characters

number

string <=10 characters

responsibilities

object
Describes the job responsibilities of a business representative.
Show child attributes

isController

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

isOwner

boolean
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 Pattern

ownershipPercentage

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