Skip to main content
This flow supports opening the following account types for individual end clients:
  • INDIVIDUAL_TAXABLE
  • INSTITUTIONAL_TAXABLE
  • IRA — may contain an optional CONVERSION or ROLLOVER sub-type
  • ROTH — may contain an optional CONVERSION or ROLLOVER sub-type
  • JOINT
  • CUSTODIAL
Key differences from the existing individual onboarding flow:
  • physicalStateUS must be the 2-letter USPS state code when physicalCountry is US.
  • physicalStateOther must contain alphabetical characters when physicalCountry is not US.
  • New idType field: GOVERNMENT_ISSUED_ID_CARD or PASSPORT.
    • GOVERNMENT_ISSUED_ID_CARD requires uploading idCardFront and idCardBack.
    • PASSPORT requires uploading passportDocument.
  • Removed fields: initialFundingMethod, sourceOfWealth, initialFundingWalletGroup.

Integration steps

1

Create an individual application

POST /v2/onboarding/customers
  • applicationType: RIA_PC_INDIVIDUAL
  • externalId: unique identifier used by the wealth platform to identify this end client
  • entries: see table below
If the given externalId has already been tied to another end client, an external_id already in use error will be returned.
TagDescriptionRequiredTypeValue restrictions
legalEntityNamelegal entity nameYesString
programCustomerlist of end clientsYesArray1 entry
programCustomer/firstNameend client first nameYesStringlimited to 36 characters
programCustomer/lastNameend client last nameYesStringlimited to 48 characters
programCustomer/middleNameend client middle nameNoString
programCustomer/dateOfBirthend client date of birthYesDateISO 8601 date (without time)
programCustomer/emailend client email addressYesStringvalid e-mail address
programCustomer/ssnend client social security numberYes (this or governmentId required)String9-digit number
programCustomer/governmentIdend client government-specific IDYes (this or ssn required)String
programCustomer/physicalCountryend client countryYesStringISO 3166-1 alpha-2 country code
programCustomer/physicalStreetAddressend client street addressYesString
programCustomer/physicalCityend client city nameYesString
programCustomer/physicalStateUSend client US stateYes, for US countryString2-character USPS state code
programCustomer/physicalStateOtherend client non-US state or provinceYes, for non-US countriesString
programCustomer/physicalPostalCodeend client zip code or postal codeYesString
programCustomer/idTypeend client type of ID uploadedYesEnumGOVERNMENT_ISSUED_ID_CARD or PASSPORT
certifiedW9customer has signed W-9 certificationYes if programCustomer/ssn is provided (US individuals)Booleantrue or false
certifiedW8customer has signed W-8 certificationYes if programCustomer/governmentId is provided (non-US individuals)Booleantrue or false
A unique customerId is returned, which will be used in all future calls to identify this end client at Anchorage Digital.Sample — non-US individual (W-8):
{
  "applicationType": "RIA_PC_INDIVIDUAL",
  "entries": [
    { "key": "legalEntityName", "value": "RIA PC Inv 1 Test" },
    {
      "key": "programCustomer",
      "value": {
        "firstName": "Kevin",
        "lastName": "Flynn_1",
        "dateOfBirth": "01/01/1970",
        "email": "kevin.flynn_1@test.com",
        "governmentId": "123456789",
        "physicalCity": "city",
        "physicalCountry": "FRANCE",
        "physicalPostalCode": "7500",
        "physicalStateOther": "Paris",
        "physicalStreetAddress": "123 Lightcycle Way",
        "idType": "GOVERNMENT_ISSUED_ID_CARD"
      }
    },
    { "key": "certifiedW8", "value": true }
  ]
}
Sample — US individual (W-9):
{
  "applicationType": "RIA_PC_INDIVIDUAL",
  "entries": [
    { "key": "legalEntityName", "value": "RIA PC Inv 1 Test" },
    {
      "key": "programCustomer",
      "value": {
        "firstName": "Kevin",
        "lastName": "Flynn_1",
        "dateOfBirth": "01/01/1970",
        "email": "kevin.flynn_1@test.com",
        "ssn": "123456789",
        "physicalCity": "city",
        "physicalCountry": "US",
        "physicalPostalCode": "94104",
        "physicalStateUS": "CA",
        "physicalStreetAddress": "123 Lightcycle Way",
        "idType": "GOVERNMENT_ISSUED_ID_CARD"
      }
    },
    { "key": "certifiedW9", "value": true }
  ]
}
Response:
{
  "data": {
    "customerId": "c78e4bbd8f346e1f314f160ef3c84e69d2d1cbc878e569137eba688a1cf56ea1",
    "status": "IN_PROGRESS"
  }
}
2

Upload required document images

POST /v2/onboarding/customers/{{customerId}}/document
TagDescriptionRequiredTypeValue restrictions
documentTypepassportYes, if ID card is not providedUploadGIF, JPEG, PNG, or PDF — max 25 MB
documentTypegovernment-issued ID card frontYes, if passport is not providedUploadGIF, JPEG, PNG, or PDF — max 25 MB
documentTypegovernment-issued ID card backYes, if passport is not providedUploadGIF, JPEG, PNG, or PDF — max 25 MB
Upload a single image file (GIF, JPEG, PNG, or PDF). If a second file is uploaded, the latest replaces the first. Multi-file archives are rejected. A signed upload URL is returned and accepts the document via a PUT request. The URL is valid for 15 minutes — if it expires, request a new one by calling this endpoint again.
Sample request:
{
  "documentType": "programCustomer.idCardFront"
}
Sample response:
{
  "data": {
    "url": "https://storage.googleapis.com/staging-191601-bio-default/anchorage/pii/v1/64626bc421f36808f99fa9542a2075ce67d0466a019f31aefa22f84f31a3adb2/ID_CARD_FRONT/55c7e1dc053fdd522470040e59a448cb3ad9593dd169729cee27660ae95466c4?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=kyc-default%40staging-191601.iam.gserviceaccount.com%2F20250409%2Fauto%2Fstorage%2Fgoog4_request&X-Goog-Date=20250409T042548Z&X-Goog-Expires=899&X-Goog-Signature=38c2cfa9f06d32c5ba0641fab10ca2270603b0f9c22fe0d2493787cc58673b2b557c8f243347b43fd42e216acc3f0fe391c7f5ba5df2442c2c4ec4a08ad9524554122ca0a0228761d90f668251812f359e2dbad39126b8c8cab4d0175bea227091ea85ac6e3c0a5d8ea587b02fcfee733f8e033f43b7835170db9cea9eaf3496198e112e7aa7b1cd6f2891f4540e09d3167960891dfdfe80ac93c2cd5a6e049d9eda3f97fcddc7fa36b932bd0b8ee8fe5f6c2689586d333c7b6a6aa0d431040d1fd961773e8dbff3d968599a565da379c50c81182279e925c7e30b75ea89a59988e9e53cbd6a133dfc8084cbd3a707e4bacbd08408c5f324e67a528c63a5b92c&X-Goog-SignedHeaders=host"
  }
}
Upload the image:
curl -X PUT -H 'Content-Type: application/octet-stream' --data-binary @image.png {{step2url.response.body.data.url}}
3

Check the status of the application

GET /v2/onboarding/customers/{{customerId}}Any errors or missing documents are listed in the errors section of the response.Sample response:
{
  "data": {
    "customerId": "c78e4bbd8f346e1f314f160ef3c84e69d2d1cbc878e569137eba688a1cf56ea1",
    "entries": [
      {
        "key": "programCustomer",
        "value": [
          {
            "dateOfBirth": "01/01/1970",
            "email": "kevin.flynn_1@test.com",
            "firstName": "Kevin",
            "idCardBack": "866b68b4a99de75dd9bca11d231041a7bd4e2469bc488abf5d6614283917b34c",
            "idCardFront": "55c7e1dc053fdd522470040e59a448cb3ad9593dd169729cee27660ae95466c4",
            "idType": "GOVERNMENT_ISSUED_ID_CARD",
            "lastName": "Flynn_1",
            "physicalCity": "city",
            "physicalCountry": "US",
            "physicalPostalCode": "94104",
            "physicalStateUS": "CA",
            "physicalStreetAddress": "123 Lightcycle Way",
            "ssn": "123456789"
          }
        ]
      },
      {
        "key": "legalEntityName",
        "value": "RIA PC Inv 1 Test"
      }
    ],
    "errors": [
      {
        "key": "programCustomer.idCardFront",
        "status": "MISSING",
        "value": "expected 1 answer for non-void triggered question, instead got 0"
      },
      {
        "key": "programCustomer.idCardBack",
        "status": "MISSING",
        "value": "expected 1 answer for non-void triggered question, instead got 0"
      }
    ],
    "status": "IN_PROGRESS"
  }
}
4

Submit the application

POST /v2/onboarding/customers/{{customerId}}/submitOnce successfully submitted, you may submit another end client application or a linked subaccount application.
You do not need to wait for approval before submitting linked subaccount applications.
5

Check the approval status

GET /v2/onboarding/customers/{{customerId}}Upon successful submission, status changes from IN_PROGRESS to IN_REVIEW. Once fully approved, status changes to COMPLETE.To receive asynchronous notification when approval is complete, register for webhooks. See Configure webhooks.Sample response:
{
  "data": {
    "customerId": "c78e4bbd8f346e1f314f160ef3c84e69d2d1cbc878e569137eba688a1cf56ea1",
    "entries": [
      {
        "key": "programCustomer",
        "value": [
          {
            "dateOfBirth": "01/01/1970",
            "email": "kevin.flynn_1@test.com",
            "firstName": "Kevin",
            "idCardBack": "866b68b4a99de75dd9bca11d231041a7bd4e2469bc488abf5d6614283917b34c",
            "idCardFront": "55c7e1dc053fdd522470040e59a448cb3ad9593dd169729cee27660ae95466c4",
            "idType": "GOVERNMENT_ISSUED_ID_CARD",
            "lastName": "Flynn_1",
            "physicalCity": "city",
            "physicalCountry": "US",
            "physicalPostalCode": "94104",
            "physicalStateUS": "CA",
            "physicalStreetAddress": "123 Lightcycle Way",
            "ssn": "123456789"
          }
        ]
      },
      {
        "key": "legalEntityName",
        "value": "RIA PC Inv 1 Test"
      }
    ],
    "errors": [],
    "status": "COMPLETE"
  }
}

Reliance only: edit customer information

RIAs with full or partial KYC reliance have access to a flow in which program customers are auto-approved. For these RIAs, select fields remain editable even after application status is COMPLETE.
TagDescriptionRequiredCan editTypeValue restrictions
legalEntityNamelegal entity nameYesNoString
programCustomerlist of end clientsYesYesArray1 entry
programCustomer/firstNameend client first nameYesYesStringlimited to 36 characters
programCustomer/lastNameend client last nameYesYesStringlimited to 48 characters
programCustomer/middleNameend client middle nameNoYesString
programCustomer/dateOfBirthend client date of birthYesNoDateISO 8601 date (without time)
programCustomer/emailend client email addressYesYesStringvalid e-mail address
programCustomer/ssnend client social security numberYes (this or governmentId required)NoString9-digit number
programCustomer/governmentIdend client government-specific IDYes (this or ssn required)NoString
programCustomer/physicalCountryend client countryYesYesStringISO 3166-1 alpha-2 country code
programCustomer/physicalStreetAddressend client street addressYesYesString
programCustomer/physicalCityend client city nameYesYesString
programCustomer/physicalStateUSend client US stateYes, for US countryYesString2-character USPS state code
programCustomer/physicalStateOtherend client non-US state or provinceYes, for non-US countriesYesString
programCustomer/physicalPostalCodeend client zip code or postal codeYesYesString
programCustomer/idTypeend client type of ID uploadedYesNoEnumGOVERNMENT_ISSUED_ID_CARD or PASSPORT
certifiedW9customer has signed W-9 certificationYes if programCustomer/ssn is providedNoBooleantrue or false
certifiedW8customer has signed W-8 certificationYes if programCustomer/governmentId is providedNoBooleantrue or false

Changelog

DateChange
December 4, 2025Updates for new onboarding API fields related to 1099-DA requirements: W-8/W-9 collection to avoid backup withholding. New fields added for Country of Citizenship and Tax Reporting Certification.
June 10, 2025Updates for new onboarding API payloads and flows
May 1, 2025Initial version