NAV Navbar
Info

Introduction

The American Estate & Trust (AET) API is organized around REST and mostly conforms to the JSONAPI specification for consistent route naming and response object formatting.

The AET API is designed to provide our partners with everything they need to integrate our Trust offerings directly into their own platforms including on-boarding users, performing AML/KYC, linking bank accounts, depositing/ withdrawing USD, opening retirement accounts and investing into a wide range of different asset classes.

High Level Concepts

When a partner signs up with AET we create a Company record in our database. This record has a one-to-many relationship with API keys and User records. Users in turn have a one-to-many relationship with Accounts.

Our API is primarily structured around the concept of Users. A Company can onboard Users and perform functions on their behalf. A Company will only ever have access to the Users that they onboarded.

Authentication

The API allows for both client-side & server-side authentication.

API Key Authentication

Signature Generation in Node JS


const crypto = require('crypto')

/**
 * @param {requestPath}  var           API path you want to access without any Query Parameters.
 * @param {body}        [var]          This is an optional that is only required for POST, PATCH, UPDATE
 * @param {timestamp}   [var]          This is an optional variable with default being current timestamp of your Server.
 * @param {method}      [var=default]  The Method you want to use default is GET
 */
const generateSignature =  (requestPath, body = null, timestamp, method = "GET" ) => {

  const secret = process.env.secret //store in .env file for security

  const currentTimestamp = timestamp ? timestamp :  Date.now() / 1000 //Get timestamp in seconds
  const accountData = body ? JSON.stringify(body) : ''

  const payload = currentTimestamp + method + requestPath + accountData

  const signature = crypto.createHmac('sha256', secret)
    .update(payload)
    .digest('base64')

    return {
        signature,
        currentTimestamp
    }
}

const signature = generateSignature('/v2/path');

Signature Generation in PHP

<?php

class AmericanEstateTrust {
    public function __construct($secret) {
      $this->secret = $secret;
    }

    /**
    * @param {requestPath}  var           API path you want to access without any Query Parameters.
    * @param {body}        [var]          This is an optional that is only required for POST, PATCH, UPDATE
    * @param {timestamp}   [var]          This is an optional variable with default being current timestamp of your server.
    * @param {method}      [var=default]  The Method you want to use default is GET
    */
    public function signature($path='', $body='',$timestamp = null,$method='GET') {
      $body = is_array(json_decode($body, true))? $body: null;
      $timestamp = $timestamp ? $timestamp : time();
      $what = $timestamp.$method.$path.$body;

      return [
        'signature' => base64_encode(hash_hmac("sha256", $what,$this->secret, true)),
        'timestamp' => $timestamp
      ];
    }
}

  $americanEstateTrust = new AmericanEstateTrust('12345678');
  $signature = $americanEstateTrust->signature('/v2/path');

This protocol enables authentication using an API key pair. An API public key and secret are issued at sign up and are used to generate a signature (see examples on the right) which is also sent as a request header as shown below.

All API auth requests to REST API must contain the following headers:

Header Type Required Description
Origin string true Your app URL
Content-Type string true "application/vnd.api+json"
Signature string true Signature generated as outlined in the signature generation script (example on the right)
ApiKey string true API key issued at sign up
Timestamp string true Current timestamp (using UNIX Epoch Time) e.g 1556795645

The Signature header is generated by creating a sha256 HMAC using the secret key on the prehash string timestamp + method + requestPath + body (where + represents string concatenation). The timestamp value is the same as the Timestamp header.

The body is the request body string or omitted if there is no request body (typically for GET requests).

The method should be UPPER CASE.

The Timestamp header MUST be number of seconds since Unix Epoch.

JWT Authentication

POST https://api.aet.dev/v2/users/login

Expected Headers

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"

Example Request Object

{
   "data":{
      "type":"users",
      "attributes":{
        "email":"[email protected]",
        "password":"omnomnom"
        "company": "1"
      }
   }
}

Example Response

{
   "data": {
       "type": "users",
       "id": "string",
       "attributes": {
           "email": "string",
           "firstName": "string",
           "lastName": "string"
       },
       "relationships": {
           "masterLogin": {
               "data": {
                   "type": "string",
                   "id": "string"
               }
           },
           "masterRegistration": {
               "data": {
                   "type": "string",
                   "id": "string"
               }
           },
           "iraLoginGroup": {
               "data": [
                   {
                       "type": "string",
                       "id": "string"
                   }
               ]
           },
           "company": {
               "data": {
                   "type": "string",
                   "id": "string"
               }
           }
       }
   },
   "meta": {
       "token": "string"
   },
   "jsonapi": {
       "version": "string"
   },
   "links": {
       "self": "string"
   }
}

This method allows authentication using a JSON Web Token (JWT) token. The JWT token is generated (see examples on the right) and sent as a request header as shown below.

Attributes

To generate a JWT token, post to the endpoint below with the following attributes

POST https://api.aet.dev/v2/users/login

Attribute Type Required
email string true
password string true
company string true

All subsequent requests to REST API must contain the following headers:

Header Type Required Description
Origin string true Your app URL
Content-Type string true "application/vnd.api+json"

Onboarding

Our onboarding API is designed to allow for maximum flexibility in frontend implementation to accommodate different flows.

Each piece of data needed for AML/KYC can be submitted separately and modified until it’s submitted for ultimate verification.

We also support both Government ID Verification as well as Question Set Verification which enables real time user verification.

Create User

Expected Headers

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"

Example Request Object

{
   "data":{
      "type":"users",
      "attributes":{
        "email":"[email protected]",
        "password":"omnomnomn",
        "company": "1"
      }
   }
}

Example Response

{
    "data": {
        "attributes": {
            "achMaxAmount": "integer",
            "achPullAllowed":  boolean,
            "address1": "string",
            "address2": " string",
            "addressCheck": boolean,
            "addressCheckResult": " string",
            "changedEmail":boolean,
            "changedEmailExpire": "string",
            "changedPassword": boolean,
            "changedPasswordExpire": "string",
            "city": "string",
            "className":"string",
            "confirmed": boolean,
            "dateCreated": "string",
            "dateModified": "string",
            "dateOfBirth": "string",
            "dateSynced": "string",
            "deleted": boolean,
            "email": "string",
            "firstName": "string",
            "googleAuthenticatorSecret": "string",
            "hash": "string",
            "hashExpire": "string",
            "ipAddress": "string",
            "ipLocation": "string",
            "lastName": "string",
            "loginAttempts": "string",
            "loginLocked": "string",
            "maritalStatus": "string",
            "masterIraUuid": "string",
            "masterLogin": "string",
            "masterRegistration": "string",
            "password": "string",
            "passwordExpire": "string",
            "proxyResult": "string",
            "proxyScore": "string",
            "ssn": "string",
            "state": "string",
            "status": boolean,
            "sync": "string",
            "tincheck": "string",
            "tincheckResult": "string",
            "tincheckRetry": "string",
            "twoFactorEnabled": "boolean",
            "username": "string",
            "uuid": "string",
            "zip": "string"
        },
        "id": "string",
        "relationships": {
            "company": {
                "data": {
                    "id": "string",
                    "type": "string"
                }
            }
        },
        "type": "string"
    },
    "jsonapi": {
        "version": "string"
    },
    "links": {
        "self":"string"
    },
    "meta": {
        "onboarding": {
            "address": boolean,
            "addressConfirmed": boolean,
            "confirmed": boolean,
            "dateOfBirth": boolean,
            "firstName": boolean,
            "ira": boolean,
            "lastName": boolean,
            "maritalStatus": boolean,
            "phone": boolean,
            "phoneVerify": boolean,
            "ssn": boolean
        },
        "status": "In Process"
    }
}

This endpoint creates a new user linked to the company associated with the requesting API keys.

HTTP Request

POST https://api.aet.dev/v2/users

Attributes

Attribute type Constraints
email string
password string Password should contain at least 1 capital letter, 1 lowercase letter, 8 characters
company string required
ssn string
username string

Add or Update User Details

PATCH https://api.aet.dev/v2/users/{id}

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Request Object

{
  "data" :{
      "type": "users",
      "attributes": {
        "firstName":" ",
        "lastName ":" ",
      }
    }
}

Example Response

{
    "data": {
        "type": "users",
        "id": string,
        "attributes": {
            "ssn": "string",
            "dateOfBirth": "string",
            "googleAuthenticatorSecret": boolean,
            "twoFactorEnabled": boolean,
            "maritalStatus": "string",
            "masterIraUuid": "string",
            "tincheck": "string",
            "tincheckResult": "string",
            "tincheckRetry": "string",
            "addressCheck": "string",
            "addressCheckResult": "string",
            "ipLocation": "string",
            "ipAddress": "string",
            "proxyScore": "string",
            "proxyResult": "string",
            "confirmed": boolean,
            "achPullAllowed": boolean,
            "achMaxAmount": "string",
            "className": "string",
            "username": "string",
            "password": "string",
            "email": "string",
            "status": boolean,
            "deleted": boolean,
            "passwordExpire": "string",
            "hash": "string",
            "hashExpire": "string",
            "changedPassword": "string",
            "changedPasswordExpire": "string",
            "changedEmail": "string",
            "changedEmailExpire": "string",
            "loginLocked": "string",
            "loginAttempts": "string",
            "dateModified": "string",
            "dateCreated":  "string",
            "address1": "string",
            "address2": "string",
            "city": "string",
            "state": "string",
            "zip": "string",
            "firstName": "string",
            "lastName": "string",
            "uuid": "string",
            "dateSynced": "string",
            "sync": "string"
        },
        "relationships": {
            "masterLogin": {
                "data": {
                    "type":  "string",
                    "id":  integer
                }
            },
            "masterRegistration": {
                "data": {
                    "type":  "string",
                    "id":  integer
                }
            },
            "iraLoginGroup": {
                "data": [
                    {
                        "type": "string",
                        "id":  integer
                    },
                ]
            }
        }
    },
    "meta": {
        "status": " string",
        "onboarding": {
            "firstName":  boolean,
            "lastName":  boolean,
            "ssn": boolean,
            "dateOfBirth": boolean,
            "maritalStatus": boolean,
            "address": boolean,
            "addressConfirmed": boolean,
            "phone": boolean,
            "phoneVerify": boolean,
            "confirmed": boolean,
            "ira": boolean
        }
    },
    "jsonapi": {
        "version": "string"
    },
    "links": {
        "self": "string"
    }
}

This endpoint updates user attributes.

HTTP Request

PATCH https://api.aet.dev/v2/users/{id}

Query Parameters

Parameter Default Required Description
id false the Users id number

Attributes

Attribute type allowed data
ssn string
firstName string
lastName string
maritalStatus string 'Married', 'Single', 'Widowed', 'Divorced'
dateOfBirth string m/d/Y
address1 string
address2 string
city string
state string
zip string

Create User Phone Number

POST https://api.aet.dev/v2/users/{id}/phone

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Request Object

{
   "data":{
      "type":"phones",
      "attributes":{
         "phoneNumber":"string",
         "countryCode":"string",
         "type":"string"
      }
   }
}

Example Response

{
    "data": {
        "type": "phoneNumbers",
        "id":  string,
        "attributes": {
            "phoneNumber": "string",
            "countryCode": "string",
            "type": "string",
            "phoneVerified":  boolean,
            "phoneVerificationCode":  "string",
            "phoneVerificationSentAt":  "string",
            "phoneVerificationAttempts":  integer,
            "primaryPhone": boolean,
            "suspended":  boolean,
            "uuid": "string",
            "loginUuid": "string",
            "sync": "string",
            "dateModified": "string",
            "dateCreated": "string"
        },
        "relationships": {
            "user": {
                "data": {
                    "type": " string",
                    "id":  integer
                }
            }
        }
    },
    "jsonapi": {
        "version": " string"
    }
}

This endpoint is used to create a users phone

HTTP Request

POST https://api.aet.dev/v2/users/{id}/phones

Query Parameters

Parameter Default Required Description
id false the Users id number

Attributes

Attribute type required
phoneNumber string true
countryCode string false
type string false

Create User Questions

POST https://api.aet.dev/v2/users/{id}/questions

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Request Object

{
    "data" : {
        "type": "questions"
      }
}

Example Response

{
   "data":{
      "id":"string",
      "type":"string",
      "attribute":{
         "questions":[
            {
               "id":"string",
               "question":"string",
               "answers":[
                  {
                     "id":"string",
                     "answer":"string"
                  },
               ]
            },
         ]
      },
      "relationships":{
         "user":{
            "type":"users",
            "id":integer,
            "links":{
               "self":"string"
            }
         }
      }
   },
   "jsonapi":{
      "version":"string"
   },
   "links":{
      "self":"string"
   }
}

This endpoint creates a Users questions entries withing the system that are used for onboarding.

HTTP Request

POST https://api.aet.dev/v2/users/{id}/questions

Query Parameters

Parameter Default Required Description
id false the Users id number

Answer User Questions

PATCH https://api.aet.dev/v2/users/{id}/questions

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Request Object


{
  "data" : {
    "id": 2,
    "type": "questions",
    "attributes": {
      "answers": [
        {
          "question_id": 1,
          "answer_id": 3
        },
        {
          "question_id": 2,
          "answer_id": 3
        },
        {
          "question_id": 3,
          "answer_id": 3
        },
        {
          "question_id": 4,
          "answer_id": 3
        },
        {
          "question_id": 5,
          "answer_id": 3
        }]
      }
    }
}

Example Response

{
   "data":{
      "id": "string",
      "type": "questions",
      "attributes": {
         "certified":boolean
      },
      "relationships":{
         "user":{
            "type":"users",
            "id": integer,
            "links":{
               "self": "string"
            }
         }
      }
   },
   "jsonapi":{
      "version": "string"
   },
   "links":{
      "self": "string"
   }
}

This endpoint is used to answer the users questions created by the system above

HTTP Request

PATCH https://api.aet.dev/v2/users/{id}/questions

Query Parameters

Parameter Default Required Description
id false the Users id number

Send Code to Users Phone

POST https://api.aet.dev/v2/users/{id}/phones/{phone_id}/texts/

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Request Object

{
   "data":{
      "type":"texts",
   }
}

Example Response

{
   "data":{
      "id": "string",
      "type": "string",
      "attributes":{
         "request": "string"
      },
      "relationships":{
         "phoneNumber":{
            "type": "string",
            "id": integer
         }
      }
   },
   "jsonapi":{
      "version": "string"
   }
}

This endpoint sends a confirmation code to the user's phone.

HTTP Request

POST https://api.aet.dev/v2/users/{id}/phones/{phone_id}/texts

Query Parameters

Parameter Default Required Description
id false the User's id number
phone_id true the phone numbers id

Post Parameters

Parameter Default Required Description
type true

Confirm User Code

PATCH https://api.aet.dev/v2/users/{id}/phones/{phone_id}/texts

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Request Object

{
   "data":{
      "id":1,
      "type":"texts",
      "attributes":{
         "code":"224455"
      }
   }
}

Example Response

{
   "data":{
      "id":"string",
      "type":"texts",
      "attributes":{
         "verified":boolean
      },
      "relationships":{
         "phoneNumber":{
            "type":"string",
            "id":integer
         }
      }
   },
   "jsonapi":{
      "version":"string"
   }
}

This endpoint will be used to confirm the code that was sent to the user by the endpoint above

HTTP Request

PATCH https://api.aet.dev/v2/users/{id}/phones/{phone_id}/texts/

Query Parameters

Parameter Default Required Description
id false the User's id number
phone_id true the phone numbers id

Attributes

Parameter Default Required Description
code true the code that was sent to the users phone

Users

Get Users

GET https://api.aet.dev/v2/users

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
    "data": [
      {
        "type": "users",
        "id": string,
        "attributes": {
            "ssn": "string",
            "dateOfBirth": "string",
            "googleAuthenticatorSecret": boolean,
            "twoFactorEnabled": boolean,
            "maritalStatus": "string",
            "masterIraUuid": "string",
            "tincheck": "string",
            "tincheckResult": "string",
            "tincheckRetry": "string",
            "addressCheck": "string",
            "addressCheckResult": "string",
            "ipLocation": "string",
            "ipAddress": "string",
            "proxyScore": "string",
            "proxyResult": "string",
            "confirmed": boolean,
            "achPullAllowed": boolean,
            "achMaxAmount": "string",
            "className": "string",
            "username": "string",
            "password": "string",
            "email": "string",
            "status": boolean,
            "deleted": boolean,
            "passwordExpire": "string",
            "hash": "string",
            "hashExpire": "string",
            "changedPassword":  "string",
            "changedPasswordExpire":  "string",
            "changedEmail":  "string",
            "changedEmailExpire":  "string",
            "loginLocked":  "string",
            "loginAttempts": "string",
            "dateModified": "string",
            "dateCreated":  "string",
            "address1":  "string",
            "address2":  "string",
            "city":  "string",
            "state":  "string",
            "zip":  "string",
            "firstName": "string",
            "lastName":  "string",
            "uuid":  "string",
            "dateSynced":  "string",
            "sync":  "string"
          }
       }
    ],
    "meta": {
      "page": integer,
      "perPage": integer,
      "total": integer
    },
    "jsonapi": {
        "version": "string"
    },
    "links": {
        "self": "string"
    }
}

This endpoint gets all users related to a company.

HTTP Request

GET https://api.aet.dev/v2/users

Get User Details

GET https://api.aet.dev/v2/users/{id}

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
    "data": {
        "type": "users",
        "id": string,
        "attributes": {
            "ssn": "string",
            "dateOfBirth": "string",
            "googleAuthenticatorSecret": boolean,
            "twoFactorEnabled": boolean,
            "maritalStatus": "string",
            "masterIraUuid": "string",
            "tincheck": "string",
            "tincheckResult": "string",
            "tincheckRetry": "string",
            "addressCheck": "string",
            "addressCheckResult": "string",
            "ipLocation": "string",
            "ipAddress": "string",
            "proxyScore": "string",
            "proxyResult": "string",
            "confirmed": boolean,
            "achPullAllowed": boolean,
            "achMaxAmount": "string",
            "className": "string",
            "username": "string",
            "password": "string",
            "email": "string",
            "status": boolean,
            "deleted": boolean,
            "passwordExpire": "string",
            "hash": "string",
            "hashExpire": "string",
            "changedPassword":  "string",
            "changedPasswordExpire":  "string",
            "changedEmail":  "string",
            "changedEmailExpire":  "string",
            "loginLocked":  "string",
            "loginAttempts": "string",
            "dateModified": "string",
            "dateCreated":  "string",
            "address1":  "string",
            "address2":  "string",
            "city":  "string",
            "state":  "string",
            "zip":  "string",
            "firstName": "string",
            "lastName":  "string",
            "uuid":  "string",
            "dateSynced":  "string",
            "sync":  "string"
        },
        "relationships": {
            "masterLogin": {
                "data": {
                    "type":  "string",
                    "id":  integer
                }
            },
            "masterRegistration": {
                "data": {
                    "type":  "string",
                    "id":  integer
                }
            },
            "iraLoginGroup": {
                "data": [
                    {
                        "type": "string",
                        "id":  integer
                    },
                ]
            }
        }
    },
    "meta": {
        "status": " string",
        "onboarding": {
            "firstName":  boolean,
            "lastName":  boolean,
            "ssn": boolean,
            "dateOfBirth": boolean,
            "maritalStatus": boolean,
            "address": boolean,
            "addressConfirmed": boolean,
            "phone": boolean,
            "phoneVerify": boolean,
            "confirmed": boolean,
            "ira": boolean
        }
    },
    "jsonapi": {
        "version": "string"
    },
    "links": {
        "self": "string"
    }
}

This endpoint gets a users profile.

HTTP Request

GET https://api.aet.dev/v2/users/{id}

Query Parameters

Parameter Default Required Description
id null false the Users id number .

Delete a User

DELETE https://api.aet.dev/v2/users/{id}

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
  {
    "data": {
        "type": "phoneNumbers",
        "id": string,
        "attributes": {
            "phoneNumber": "string",
            "countryCode": "string",
            "type": "string",
            "phoneVerified": boolean,
            "phoneVerificationCode": "string",
            "phoneVerificationSentAt": "string",
            "phoneVerificationAttempts": integer,
            "primaryPhone": boolean,
            "suspended": boolean,
            "uuid": "string",
            "loginUuid": "string",
            "sync": "string",
            "dateModified": "string",
            "dateCreated": "string"
        },
        "relationships": {
            "user": {
                "data": {
                    "type": "string",
                    "id": integer
                }
            }
        }
    },
    "jsonapi": {
        "version": "string"
    }
}

This endpoint deletes a User

HTTP Request

DELETE https://api.aet.dev/v2/users/{id}

Query Parameters

Parameter Default Required Description
id false the Users id number

Get a User's Phone

GET https://api.aet.dev/v2/users/{id}/phones/{phone_id}

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
    "data": {
        "type": " string",
        "id":  string,
        "attributes": {
            "phoneNumber": "string",
            "countryCode": integer,
            "type":  "string",
            "phoneVerified":  boolean,
            "phoneVerificationCode": "string ",
            "phoneVerificationSentAt": "string ",
            "phoneVerificationAttempts":  integer,
            "primaryPhone":  boolean,
            "suspended":  boolean,
            "uuid": "string",
            "loginUuid": "string",
            "sync": "string",
            "dateModified": "string",
            "dateCreated": "string"
        },
        "relationships": {
            "user": {
                "data": {
                    "type": "string",
                    "id":  integer
                }
            }
        }
    },
    "jsonapi": {
        "version": "string"
    }
}

This endpoint creates gets a phone number associated with a user.

HTTP Request

GET https://api.aet.dev/v2/users/{id}/phones/{phone_id}

Query Parameters

Parameter Default Required Description
id null false the Users id number .
phone_id null false the phone number's id

Get a User's Phones

GET https://api.aet.dev/v2/users/{id}/phones

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
  "data": [
      {
          "type": "phoneNumbers",
          "id":  string,
          "attributes": [{
              "phoneNumber": "string",
              "countryCode": "string",
              "type":  "string",
              "phoneVerified":  boolean,
              "phoneVerificationCode":  "string",
              "phoneVerificationSentAt":  "string",
              "phoneVerificationAttempts":  integer,
              "primaryPhone":  boolean,
              "suspended":  boolean,
              "uuid": "string",
              "loginUuid": "string",
              "sync": "string",
              "dateModified": "string",
              "dateCreated": "string"
          }]
      },
  ],
  "meta": {
      "total":  integer
  },
  "jsonapi": {
      "version": "string"
  }
}

This endpoint creates gets all phone number associated with a user.

HTTP Request

GET https://api.aet.dev/v2/users/{id}/phones/

Query Parameters

Parameter Default Required Description
id null false the Users id number .

Delete Users Phone Number

DELETE https://api.aet.dev/v2/users/{id}/phones/{id}

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
  {
    "data": {
        "type": "phoneNumbers",
        "id": string,
        "attributes": {
            "phoneNumber": "string",
            "countryCode": "string",
            "type": "string",
            "phoneVerified": boolean,
            "phoneVerificationCode": "string",
            "phoneVerificationSentAt": "string",
            "phoneVerificationAttempts": integer,
            "primaryPhone": boolean,
            "suspended": boolean,
            "uuid": "string",
            "loginUuid": "string",
            "sync": "string",
            "dateModified": "string",
            "dateCreated": "string"
        },
        "relationships": {
            "user": {
                "data": {
                    "type": "string",
                    "id": integer
                }
            }
        }
    },
    "jsonapi": {
        "version": "string"
    }
}

This endpoint deletes a Users Phone

HTTP Request

DELETE https://api.aet.dev/v2/users/{user_id}/phones/{id}

URL Parameters

Parameter Default Required Description
id true the Users id
phone_id true the phone id

Accounts

AET supports many different account types including:

Users can have multiple accounts associated with them. Assets will be segregated by account type for accounting/tax purposes but other account details such as linked banks will be shared across all accounts associated with a user.

Create a User's Account

POST https://api.aet.dev/v2/users/{id}/account

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Request Object

{
   "data":{
      "type":"iras",
       "attributes":{
         "iraType":"Traditional"
      }
   }
}

Example Response

{
   "data":{
      "type":"iras",
      "id":string,
      "attributes":{
         "iraId":"string",
         "acctNo":"string",
         "iraType":"string",
         "enteredUserId":"string",
         "firstName":"string",
         "lastName":"string",
         "address1":"string",
         "address2":"string",
         "city":"string",
         "state":"string",
         "zip":"string",
         "accountStatus":"string",
         "ledgerBalance":"string",
         "assetValue":"string",
         "cashAvailableDisplay":"string",
         "accountSetupIssues":"string",
         "fullname":"string"
      }
   },
    "jsonapi":{
      "version":"string"
   },
   "links":{
      "self":"string"
   }
}

This endpoint creats a users Account.

HTTP Request

POST https://api.aet.dev/v2/users/{id}/account

Query Parameters

Parameter Default Required Description
id false the Users id number

Attributes

Attribute type required
iraType string true
description string false

Get a User's Accounts

GET https://api.aet.dev/v2/users/{id}/account

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
   "data":[
      {
         "type":"iras",
         "id": string,
         "attributes":{
            "iraId":"string",
            "acctNo":"string",
            "iraType":"string",
            "enteredUserId":"string",
            "firstName":"string",
            "lastName":"string",
            "address1":"string",
            "address2":"string",
            "city":"string",
            "state":"string",
            "zip":"string",
            "accountStatus":"string",
            "ledgerBalance":"string",
            "assetValue":"string",
            "cashAvailableDisplay":"string",
            "accountSetupIssues":"string",
            "fullname":"string"
         }
      }
   ],
   "meta":{
      "total":integer
   },
   "jsonapi":{
      "version":"string"
   },
   "links":{
      "self":"string"
   }
}

This endpoint gets a users Account.

HTTP Request

GET https://api.aet.dev/v2/users/{id}/account

Query Parameters

Parameter Default Required Description
id false the Users id number

Banks

Users can link banks to their account to initiate ACH deposits and withdraws to their accounts.

Banks can be linked either by added the necessary details which will initiate two random micro deposits ($0.01-0.99) to be sent to the account which the user will then need to validate.

Alternatively Banks can be linked using Plaid which will require you to have an account with them and pass the payload they return to our endpoint.

Create Bank Account

POST https://api.aet.dev/v2/users/{id}/banks/

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Request Object

{
   "data":{
      "type":"bankAccounts",
      "attributes":{
        "accountName":"",
        "accountNumber":"",
        "accountType":"current",
        "routingNumber":"",
        "institution":""
      }
   }
}

Example Response

{
    "data": {
          "type": "bankSimpleAccounts",
          "id": "string",
          "attributes": {
              "accountName": "string",
              "accountNumber": "string",
              "accountType": "string"
              "routingNumber": "string",
              "verified": "boolean",
              "institution": "string",
              "source": "string",
              "wireRouting": "string",
              "status": "string",
              "deleted": "boolean",
              "dateModified": "string",
              "dateCreated": "string"
          }
      },
    "meta": {
        "total": integer,
        "add": "boolean"
    },
    "jsonapi": {
        "version": "string"
    },
    "links": {
        "self": "string"
    }
}

This endpoint updates a banks attributes.

HTTP Request

POST https://api.aet.dev/v2/users/{id}/banks

Query Parameters

Parameter Default Required Description
id false the Users id number .

Attributes

Attribute type allowed data
accountName string
accountNumber string
accountType string checking, savings, money market
routingNumber string
institution string

Get User Bank

GET https://api.aet.dev/v2/users/{id}/banks/{bank_id}

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
    "data": {
          "type": "bankSimpleAccounts",
          "id": "string",
          "attributes": {
              "accountName": "string",
              "accountNumber": "string",
              "accountType": "string"
              "routingNumber": "string",
              "verified": "boolean",
              "institution": "string",
              "source": "string",
              "wireRouting": "string",
              "status": "string",
              "deleted": "boolean",
              "dateModified": "string",
              "dateCreated": "string"
          }
      },
    "meta": {
        "total": integer,
        "add": "boolean"
    },
    "jsonapi": {
        "version": "string"
    },
    "links": {
        "self": "string"
    }
}

This endpoint gets a users bank.

HTTP Request

GET https://api.aet.dev/v2/users/{id}/banks/{bank_id}

Query Parameters

Parameter Default Required Description
id false the Users id number .
bank_id true the Bank id number .

Get User Banks

GET https://api.aet.dev/v2/users/{id}/banks/

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
    "data": [
        {
            "type": "bankSimpleAccounts",
            "id": "string",
            "attributes": {
                "accountName": "string",
                "accountNumber": "string",
                "accountType": "string"
                "routingNumber": "string",
                "verified": "boolean",
                "institution": "string",
                "source": "string",
                "wireRouting": "string",
                "status": "string",
                "deleted": "boolean",
                "dateModified": "string",
                "dateCreated": "string"
            }
        }
    ],
    "meta": {
        "total": integer,
        "add": "boolean"
    },
    "jsonapi": {
        "version": "string"
    },
    "links": {
        "self": "string"
    }
}

This endpoint gets a users banks.

This endpoint gets a users banks.

HTTP Request

GET https://api.aet.dev/v2/users/{id}/banks

Query Parameters

Parameter Default Required Description
id false the Users id number .

Update Bank Details

PATCH https://api.aet.dev/v2/users/{id}/banks/{bank_id}

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Request Object

{
   "data":{
      "type":"bankAccounts",
      "attributes":{
         "accountName":"<>"
      }
   }
}

Example Response

{
    "data": {
          "type": "bankSimpleAccounts",
          "id": "string",
          "attributes": {
              "accountName": "string",
              "accountNumber": "string",
              "accountType": "string"
              "routingNumber": "string",
              "verified": "boolean",
              "institution": "string",
              "source": "string",
              "wireRouting": "string",
              "status": "string",
              "deleted": "boolean",
              "dateModified": "string",
              "dateCreated": "string"
          }
      },
    "meta": {
        "total": integer,
        "add": "boolean"
    },
    "jsonapi": {
        "version": "string"
    },
    "links": {
        "self": "string"
    }
}

This endpoint updates a banks attributes.

HTTP Request

PATCH https://api.aet.dev/v2/users/{id}/banks/{bank_id}

Query Parameters

Parameter Default Required Description
bank_id false the Bank id number
id true the User id number

Attributes

Attribute type allowed data
accountName string

Delete Bank

DELETE https://api.aet.dev/v2/users/{id}/banks/{bank_id}

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
    "data": {
          "type": "bankSimpleAccounts",
          "id": "string",
          "attributes": {
              "accountName": "string",
              "accountNumber": "string",
              "accountType": "string"
              "routingNumber": "string",
              "verified": "boolean",
              "institution": "string",
              "source": "string",
              "wireRouting": "string",
              "status": "string",
              "deleted": "boolean",
              "dateModified": "string",
              "dateCreated": "string"
          }
      },
    "meta": {
        "total": integer,
        "add": "boolean"
    },
    "jsonapi": {
        "version": "string"
    },
    "links": {
        "self": "string"
    }
}

This endpoint deletes a Banks Account

HTTP Request

DELETE https://api.aet.dev/v2/users/{id}/banks/{bank_id}

Query Parameters

Parameter Default Required Description
id false the Users id number .
bank_id true the Bank id number .

Investments

AET allows users to initiate investments into different asset classes using what we call a Direction of Investment or DOI which is how it’s referenced in our endpoints.

A DOI allows for investment into real estate, precious metals, crypto currencies, equities, private placement deals, lending agreements and many other assets types.

The title for all assets purchased through a DOI will be held by AET.

Additional a DOI will be created to represent a payment on an existing asset, for instance if a user owns a rental property and needs to pay for a repair.

Using the DOI structure exposed through our API our partners are able to build investment platforms that enable users to invest into a wide range of assets using any of the account types we offer.

Create DOI

POST https://api.aet.dev/v2/users/{id}/dois

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Request Object


{
   "data":{
    "type":"dois",
    "attributes":{
      "ira":"123456",
      "type":"loan_money",
      "requestAmount":"1.00",
      "description":"description",
      "docHandlingInstructions":"instructions",
      "docHandlingCarrier":"USPS",
      "docHandlingShipSpeed":"speed",
      "fundingMethod":"Check",
      "fundingInstructions":"instructions"
        }
   }
}

Example Response

{
    "data": {
        "type": "dois",
        "id": "string",
        "attributes": {
            "acctNo": "string",
            "assignedTo": "string",
            "requestId": "string",
            "requestAmount": "string",
            "description": "string",
            "plannedFundingDate": "string",
            "userId": "string",
            "processStatus": "string",
            "name": "string",
            "status": "string",
            "fundsAvailableDate": "string",
            "fundsMessage": "string",
            "dateVerified": "string",
            "verifiedBy": "string",
            "receivedDate": "string",
            "type": "string",
            "vendorName": "string",
            "vendorNo": "string",
            "fundingMethod": "string",
            "completionDate": "string",
            "notes": "string",
            "relatedTransaction": "string",
            "activityLog": "string",
            "docHandlingCarrier": "string",
            "docHandlingInstructions": "string",
            "docHandlingShipSpeed": "string",
            "eApprovalRequired": "string",
            "eApprovedFlag": "string",
            "uploadDocs": "string",
            "userUpdatedFlag": "string",
            "createdBy": "string",
            "vendorInvRef": "string",
            "fundingInstructions": "string",
            "sortSeqClient": "string",
            "statusChangedFlag": "string",
            "accountClosingFlag": "string",
            "relatedAsset": "string",
            "bankName": "string",
            "bankAcctName": "string",
            "bankAcctNo": "string",
            "bankRouting": "string"
        },
        "relationships": {
            "ira": {
                "data": {
                    "type": "iras",
                    "id": "string"
                }
            }
        }
    },
    "jsonapi": {
        "version": "string"
    }
}

This endpoint creates a DOI.

HTTP Request

POST https://api.aet.dev/v2/users/{id}/dois

Query Parameters

Parameter Default Required Description
id false the Users id number .

Attributes

Attribute type allowed data required
ira string true
type string loan_money, buy_real_estate, invest_in_a_company, buy_metals, brokerage_account, other true
description string false
docHandlingInstructions string false
docHandlingCarrier string USPS, Fax, FedEx, UPS, Email true
docHandlingShipSpeed string only if docHandlingCarrier is one of USPS, FedEx ,UPS
fundingMethod string Wire, Check, ACH, CC, Other, EFTPS, Prepaid Card true
fundingInstructions string true

Delete DOI

DELETE https://api.aet.dev/v2/users/{id}/dois/{doi_id}

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
  "data": {
        "type": "dois",
        "id": "string",
        "attributes": {
            "acctNo": "string",
            "assignedTo": "string",
            "requestId": "string",
            "requestAmount": "string",
            "description": "string",
            "plannedFundingDate": "string",
            "userId": "string",
            "processStatus": "string",
            "name": "string",
            "status": "string",
            "fundsAvailableDate": "string",
            "fundsMessage": "string",
            "dateVerified": "string",
            "verifiedBy": "string",
            "receivedDate": "string",
            "type": "string",
            "vendorName": "string",
            "vendorNo": "string",
            "fundingMethod": "string",
            "completionDate": "string",
            "notes": "string",
            "relatedTransaction": "string",
            "activityLog": "string",
            "docHandlingCarrier": "string",
            "docHandlingInstructions": "string",
            "docHandlingShipSpeed": "string",
            "eApprovalRequired": "string",
            "eApprovedFlag": "string",
            "uploadDocs": "string",
            "userUpdatedFlag": "string",
            "createdBy": "string",
            "vendorInvRef": "string",
            "fundingInstructions": "string",
            "sortSeqClient": "string",
            "statusChangedFlag": "string",
            "accountClosingFlag": "string",
            "relatedAsset": "string",
            "bankName": "string",
            "bankAcctName": "string",
            "bankAcctNo": "string",
            "bankRouting": "string"
        },
        "relationships": {
            "ira": {
                "data": {
                    "type": "iras",
                    "id": "string"
                }
            }
        }
    },
    "jsonapi": {
        "version": "string"
    }
}

This endpoint deletes a DOI

HTTP Request

DELETE https://api.aet.dev/v2/users/{id}/dois/{doi_id}

Query Parameters

Parameter Default Required Description
id false the Users id number .
doi_id true the DOI id number .

The above command returns JSON structured like this:

Get User DOI

GET https://api.aet.dev/v2/users/{id}/dois/{doi_id}

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
    "data": {
        "type": "dois",
        "id": "string",
        "attributes": {
            "acctNo": "string",
            "assignedTo": "string",
            "requestId": "string",
            "requestAmount": "string",
            "description": "string",
            "plannedFundingDate": "string",
            "userId": "string",
            "processStatus": "string",
            "name": "string",
            "status": "string",
            "fundsAvailableDate": "string",
            "fundsMessage": "string",
            "dateVerified": "string",
            "verifiedBy": "string",
            "receivedDate": "string",
            "type": "string",
            "vendorName": "string",
            "vendorNo": "string",
            "fundingMethod": "string",
            "completionDate": "string",
            "notes": "string",
            "relatedTransaction": "string",
            "activityLog": "string",
            "docHandlingCarrier": "string",
            "docHandlingInstructions": "string",
            "docHandlingShipSpeed": "string",
            "eApprovalRequired": "string",
            "eApprovedFlag": "string",
            "uploadDocs": "string",
            "userUpdatedFlag": "string",
            "createdBy": "string",
            "vendorInvRef": "string",
            "fundingInstructions": "string",
            "sortSeqClient": "string",
            "statusChangedFlag": "string",
            "accountClosingFlag": "string",
            "relatedAsset": "string",
            "bankName": "string",
            "bankAcctName": "string",
            "bankAcctNo": "string",
            "bankRouting": "string"
        },
        "relationships": {
            "ira": {
                "data": {
                    "type": "string",
                    "id": "string"
                }
            }
        }
    },
    "jsonapi": {
        "version": "string"
    }
}

This endpoint gets a users DOI.

HTTP Request

GET https://api.aet.dev/v2/users/{id}/dois/{doi_id}

Query Parameters

Parameter Default Required Description
id false the Users id number .
doi_id true the DOI id number .

Update DOI Details

PATCH https://api.aet.dev/v2/users/{id}/dois/{doi_id}

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Request Object

{
   "data":{
      "type":"dois",
      "attributes":{
        "requestAmount":3300,
        "fundingMethod": "ACH",
        "fundingInstructions": "Update the amount to 1230",
        "docHandlingCarrier": "FedEx",
        "docHandlingShipSpeed": "",
        "type": "Loan",
        "description": "note sec by dot: Cookie, LLC",
        "vendorName": "Cookie Vendor"
      }
   }
}


Example Response

{
    "data": {
        "type": "dois",
        "id": "string",
        "attributes": {
            "acctNo": "string",
            "assignedTo": "string",
            "requestId": "string",
            "requestAmount": "string",
            "description": "string",
            "plannedFundingDate": "string",
            "userId": "string",
            "processStatus": "string",
            "name": "string",
            "status": "string",
            "fundsAvailableDate": "string",
            "fundsMessage": "string",
            "dateVerified": "string",
            "verifiedBy": "string",
            "receivedDate": "string",
            "type": "string",
            "vendorName": "string",
            "vendorNo": "string",
            "fundingMethod": "string",
            "completionDate": "string",
            "notes": "string",
            "relatedTransaction": "string",
            "activityLog": "string",
            "docHandlingCarrier": "string",
            "docHandlingInstructions": "string",
            "docHandlingShipSpeed": "string",
            "eApprovalRequired": "string",
            "eApprovedFlag": "string",
            "uploadDocs": "string",
            "userUpdatedFlag": "string",
            "createdBy": "string",
            "vendorInvRef": "string",
            "fundingInstructions": "string",
            "sortSeqClient": "string",
            "statusChangedFlag": "string",
            "accountClosingFlag": "string",
            "relatedAsset": "string",
            "bankName": "string",
            "bankAcctName": "string",
            "bankAcctNo": "string",
            "bankRouting": "string"
        },
        "relationships": {
            "ira": {
                "data": {
                    "type": "string",
                    "id": "string"
                }
            }
        }
    },
    "jsonapi": {
        "version": "string"
    }
}

This endpoint updates a dois attributes.

HTTP Request

PATCH https://api.aet.dev/v2/users/{id}/dois/{doi_id}

Query Parameters

Parameter Default Required Description
doi_id false the Bank id number
id true the User id number

Attributes

Attribute type allowed data
requestAmount string
fundingMethod string
fundingInstructions string
docHandlingCarrier string
docHandlingShipSpeed string
type string
description string
vendorName string

Get User DOIs

GET https://api.aet.dev/v2/users/{id}/dois

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
    "data": [
        {
            "type": "dois",
            "id": "string",
            "attributes": {
                "acctNo": "string",
                "assignedTo": "string",
                "requestId": "string",
                "requestAmount": "string",
                "description": "string",
                "plannedFundingDate": "string",
                "userId": "string",
                "processStatus": "string",
                "name": "string",
                "status": "string",
                "fundsAvailableDate": "string",
                "fundsMessage": "string",
                "dateVerified": "string",
                "verifiedBy": "string",
                "receivedDate": "string",
                "type": "string",
                "vendorName": "string",
                "vendorNo": "string",
                "fundingMethod": "string",
                "completionDate": "string",
                "notes": "string",
                "relatedTransaction": "string",
                "activityLog": "string",
                "docHandlingCarrier": "string",
                "docHandlingInstructions": "string",
                "docHandlingShipSpeed": "string",
                "eApprovalRequired": "string",
                "eApprovedFlag": "string",
                "uploadDocs": "string",
                "userUpdatedFlag": "string",
                "createdBy": "string",
                "vendorInvRef": "string",
                "fundingInstructions": "string",
                "sortSeqClient": "string",
                "statusChangedFlag": "string",
                "accountClosingFlag": "string",
                "relatedAsset": "string",
                "bankName": "string",
                "bankAcctName": "string",
                "bankAcctNo": "string",
                "bankRouting": "string"
            }
        }
    ],
    "meta": {
        "page": integer,
        "perPage": integer,
        "total": integer,
        "totalPage": integer
    },
    "jsonapi": {
        "version": "string"
    }
}

This endpoint gets a users DOIs.

The above command returns JSON structured like this:

HTTP Request

GET https://api.aet.dev/v2/users/{id}/dois

Query Parameters

Parameter Default Required Description
id false the Users id number .

Documents

Create User Document

POST https://api.aet.dev/v2/users/{id}/documents/

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
    "data": {
        "type": "documents",
        "id": "string",
        "attributes": {
            "accountNo": "string",
            "docNo": "string",
            "createDate": "string",
            "docDescription": "string",
            "docName": "string",
            "docType": "string",
            "doiNo": "string",
            "uploadLink": "string",
            "docObject": "string",
            "createdBy": "string",
            "trfNo": "string",
            "awsKey": "string",
            "rsyncDate": "string",
            "ira": "string",
            "company": "string",
            "deleted": "boolean"
        },
        "relationships": {
              "user": {
                  "data": {
                      "type": "users",
                      "id": "string"
                  }
              }
        }
    },
    "jsonapi": {
        "version": "string"
    }
}

This endpoint creates a users documents.

HTTP Request

POST https://api.aet.dev/v2/users/{id}/documents

Header Type
Content-Type multipart/form-data

Query Parameters

Parameter Default Required Description
id false the Users id number .

Form upload Data

Name required
file true cookies.pdf
name true Cookie Monster
description false This is test file 2 description
docType true doi
doi false 1

Get User Document

GET https://api.aet.dev/v2/users/{id}/documents/{document_id}

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
    "data": {
        "type": "documents",
        "id": "string",
        "attributes": {
            "accountNo": "string",
            "docNo": "string",
            "createDate": "string",
            "docDescription": "string",
            "docName": "string",
            "docType": "string",
            "doiNo": "string",
            "uploadLink": "string",
            "docObject": "string",
            "createdBy": "string",
            "trfNo": "string",
            "awsKey": "string",
            "rsyncDate": "string",
            "ira": "string",
            "company": "string",
            "deleted": "boolean"
        },
        "relationships": {
              "user": {
                  "data": {
                      "type": "users",
                      "id": "string"
                  }
              }
        }
    },
    "jsonapi": {
        "version": "string"
    }
}

This endpoint gets a users Document.

HTTP Request

GET https://api.aet.dev/v2/users/{id}/documents/{document_id}

Query Parameters

Parameter Default Required Description
id false the Users id number .
document_id true the Document id number .

Get User Documents

GET https://api.aet.dev/v2/users/{id}/documents

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
    "data": [
      "type": "documents",
      "id": "string",
      "attributes": {
          "accountNo": "string",
          "docNo": "string",
          "createDate": "string",
          "docDescription": "string",
          "docName": "string",
          "docType": "string",
          "doiNo": "string",
          "uploadLink": "string",
          "docObject": "string",
          "createdBy": "string",
          "trfNo": "string",
          "awsKey": "string",
          "rsyncDate": "string",
          "ira": "string",
          "company": "string",
          "deleted": "boolean"
      },
    ],
    "meta": {
      "total": integer
    },
    "jsonapi": {
        "version": "string"
    }
}

This endpoint gets a users Documents.

The above command returns JSON structured like this:

HTTP Request

GET https://api.aet.dev/v2/users/{id}/documents

Query Parameters

Parameter Default Required Description
id false the Users id number .

Transactions

Get User Transaction

GET https://api.aet.dev/v2/users/{user_id}/accounts/{account_id}/ledgers/{ledger_id}

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
    "data": {
        "type": "generalLedgers",
        "id": "string",
        "attributes": {
            "acctName":"string",
            "transactionType":"string",
            "transactionDescription":"string",
            "assetId":"string",
            "creditAmount":"string",
            "debitAmount":"string",
            "transactionDate":"string",
            "transactionNo":"string",
            "method":"string",
            "invoiceNo":"string",
            "checkNo":"string",
            "displayRecordFlag":"string",
            "dateCreated":"string",
            "dateModified":"string"
        }
    },
    "jsonapi": {
        "version": "string"
    }
}

This endpoint gets a users Transactions.

The above command returns JSON structured like this:

HTTP Request

GET https://api.aet.dev/v2/users/{user_id}/accounts/{account_id}/ledgers/{ledger_id}

Query Parameters

Parameter Default Required Description
user_id true the users id number .
account_id true the users account id number .
ledger_id true transaction id number .

Get User Transactions

GET https://api.aet.dev/v2/users/{user_id}/accounts/{account_id}/ledgers

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
    "data":[
      {
        "type": "generalLedgers",
        "id": "string",
        "attributes": {
            "acctName":"string",
            "transactionType":"string",
            "transactionDescription":"string",
            "assetId":"string",
            "creditAmount":"string",
            "debitAmount":"string",
            "transactionDate":"string",
            "transactionNo":"string",
            "method":"string",
            "invoiceNo":"string",
            "checkNo":"string",
            "displayRecordFlag":"string",
            "dateCreated":"string",
            "dateModified":"string"
      }
    ],
    "jsonapi": {
        "version": "string"
    }
}

This endpoint gets a users Transactions.

The above command returns JSON structured like this:

HTTP Request

GET https://api.aet.dev/v2/users/{user_id}/accounts/{account_id}/ledgers

Query Parameters

Parameter Default Required Description
user_id false the users id number .
account_id true the users account id number .

Pagination Query Parameters

Parameter Default Required Description
perPage false limit per page .
page false page number .

Assets

Get User Asset

GET https://api.aet.dev/v2/users/{user_id}/accounts/{account_id}/assets/{asset_id}

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
    "data": {
        "type": "assets",
        "id": "string",
        "attributes": {
            "assetDescription": "string",
            "assetId": "string",
            "assetType":"string",
            "assetStatus": "string",
            "iraAcctNo": "string",
            "quantity": "string",
            "assetCurrentValue": "string"
        }
    },
    "jsonapi": {
        "version": "string"
    }
}

This endpoint gets a users Asset.

The above command returns JSON structured like this:

HTTP Request

GET https://api.aet.dev/v2/users/{user_id}/accounts/{account_id}/assets/{assets_id}

Query Parameters

Parameter Default Required Description
user_id true the users id number .
account_id true the users account id number .
assets_id true assets id number .

Get User Assets

GET https://api.aet.dev/v2/users/{user_id}/accounts/{account_id}/assets

Expected Headers (if accessing from client-side)

   Content-Type: "application/vnd.api+json"
   Authorization: "Bearer <jwt-token>"
   Origin : "<Your app url>"

Expected Headers (if accessing from server-side)

   Content-Type: "application/vnd.api+json"
   Origin : "<Your app url>"
   Signature: "<api-signature>"
   ApiKey:  "<api-key>"
   Timestamp: "<current-timestamp>"

Example Response

{
    "data":[
      {
        "type": "assets",
        "id": "string",
        "attributes": {
            "assetDescription": "string",
            "assetId": "string",
            "assetType":"string",
            "assetStatus": "string",
            "iraAcctNo": "string",
            "quantity": "string",
            "assetCurrentValue": "string"
        }
      }
    ],
    "jsonapi": {
        "version": "string"
    }
}

This endpoint gets a users Assets.

The above command returns JSON structured like this:

HTTP Request

GET https://api.aet.dev/v2/users/{user_id}/accounts/{account_id}/assets

Query Parameters

Parameter Default Required Description
user_id false the users id number .
account_id true the users account id number .

Pagination Query Parameters

Parameter Default Required Description
perPage false limit per page .
page false page number .

Errors

The AET API uses the following error codes:

Error Code Meaning
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Authentication failed, token or api.
401 Unauthorized -- Key is missing or wrong
404 Not found -- Profile or questions are missing
405 Method Not Allowed -- You tried to access the API with an invalid method.
406 Not Acceptable -- You requested a format that is not Acceptable.
410 Gone -- Expired Questions (after 300 sec)
422 Unprocessable Entity -- Questions Score failed (less than 100)
422 Unprocessable Entity -- The data format is wrong
424 Failed Dependency -- Error code if it is between 400-500
429 Too many request -- Retry after 24 hours
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- Configuration is missing