Skip to content

Custody Account Opening Workflow

Step 1: Create Party

POST /v3/createParty — Create an individual party record for the account owner.

Required fields: firstName, lastName, dob, socialSecurityNumber, emailAddress, primary address fields (primAddress1, primCity, primState, primZip)

  • Set partyType to IndivACParty
  • This triggers automated KYC/AML checks — the response includes KYCstatus and AMLstatus

Docs: https://transactapi.readme.io/reference/createparty

Step 2: Create Account

POST /v3/createAccount — Create the investor account.

Required fields: accountName, type (e.g. individual), address1, city, state, zip, country, taxID

Docs: https://transactapi.readme.io/reference/createaccount

PUT /v3/createLink — Establish the ownership relationship.

Parameter Value
firstEntry accountId
firstEntryType Account
relatedEntry partyId
relatedEntryType IndivACParty
linkType Owner
primary_value true

Docs: https://transactapi.readme.io/reference/createlink

Step 4: Attest Custody Agreement (Required)

POST /v3/createCustodyAgreementAttestation — This is a hard requirement before submitting the custody account request.

  • accountId — the account to attach custody to
  • isAttested = true
  • documentUrl — must be a valid, accessible URL pointing to the custody agreement

This records that the account holder has reviewed and accepted the custody agreement terms.

Docs: https://transactapi.readme.io/reference/createcustodyagreementattestation

Optional: DocuSign eSignature

POST /v3/createCustodyAgreementEsign — Sends the custody agreement via DocuSign to the primary party's email for formal eSignature. This is supplementary to the attestation, not a replacement for it.

Step 5: Create Custody Account Request

POST /v3/createCustodyAccountRequest — Submits the account for review.

  • Only requires accountId
  • Pre-requisites: party linked to account, attestation on file
  • Returns a custAccRequestID with initial status of Pending

Docs: https://transactapi.readme.io/reference/createcustodyaccountrequest

Step 6: Monitor Status

Webhooks

Configure your webhook URL in your client settings. Notifications are sent on these events:

Event Trigger
Create-Custodial-Account Request created
approveCustodyAccountRequest Status changed
updateCustodyAccountRequest Status changed

The webhook payload includes accountId, custAccRequestID, and custAccStatus.

Retrieve Status

Retrieve the current status of a custody account at any time: https://transactapi.readme.io/reference/custodyaccountsid

Status Values

Status Description
Pending Initial state
Need More Info Additional information required
Approved Account is open and active
Rejected Application denied

Processing Schedule

Account openings are processed daily at 8:00 AM MT, with statuses updated by 10:00 AM MT.